Open3D: A Modern Library for 3D Data Processing

Overview

Open3D: A Modern Library for 3D Data Processing

Homepage | Docs | Quick Start | Compile | Python | C++ | Open3D-ML | Viewer | Contribute | Demo | Forum

Open3D is an open-source library that supports rapid development of software that deals with 3D data. The Open3D frontend exposes a set of carefully selected data structures and algorithms in both C++ and Python. The backend is highly optimized and is set up for parallelization. We welcome contributions from the open-source community.

Ubuntu CI macOS CI Windows CI Build Status

Core features of Open3D include:

  • 3D data structures
  • 3D data processing algorithms
  • Scene reconstruction
  • Surface alignment
  • 3D visualization
  • Physically based rendering (PBR)
  • 3D machine learning support with PyTorch and TensorFlow
  • GPU acceleration for core 3D operations
  • Available in C++ and Python

For more, please visit the Open3D documentation.

Python quick start

Pre-built pip and conda packages support Ubuntu 18.04+, macOS 10.14+ and Windows 10 (64-bit) with Python 3.6, 3.7 and 3.8.

# Install Open3D stable release with pip
$ pip install open3d

# Install Open3D stable release with Conda
$ conda install -c open3d-admin -c conda-forge open3d

# Test the installation
$ python -c "import open3d as o3d; print(o3d)"

To get the latest features in Open3D, install the development pip package. To compile Open3D from source, refer to compiling from source.

C++ quick start

Checkout the following links to get started with Open3D C++ API

To use Open3D in your C++ project, checkout the following examples

Open3D-Viewer app

Open3D-Viewer is a standalone 3D viewer app available on Ubuntu and macOS. Please stay tuned for Windows. Download Open3D Viewer from the release page.

Open3D-ML

Open3D-ML is an extension of Open3D for 3D machine learning tasks. It builds on top of the Open3D core library and extends it with machine learning tools for 3D data processing. To try it out, install Open3D with PyTorch or TensorFlow and check out Open3D-ML.

Communication channels

  • GitHub Issue: bug reports, feature requests, etc.
  • Forum: discussion on the usage of Open3D.
  • Discord Chat: online chats, discussions, and collaboration with other users and developers.

Citation

Please cite our work if you use Open3D.

@article{Zhou2018,
    author    = {Qian-Yi Zhou and Jaesik Park and Vladlen Koltun},
    title     = {{Open3D}: {A} Modern Library for {3D} Data Processing},
    journal   = {arXiv:1801.09847},
    year      = {2018},
}
Comments
  • Missing install rules

    Missing install rules

    PLEASE DO NOT MERGE YET! I still plan to remove all the dependencies

    Kindly read before merge:

    • Commits should not be squashed! Each commit represent a different logical change.
    • #307 should be merged first, to any avoid possible conflicts due to headers relocation.

    This PR:

    • resolves #130 [A hello world app would be introduced later]
    • resolves #238
    • is related to #310
    • resolves #311
    • resolves #312
    • resolves #313
    • resolves #314

    Changes:

    1. Install the library according to the following tree:
    • ${CMAKE_INSTALL_PREFIX}/
      • bin/... for experimental binaries
      • include/Open3D/... for Open3D internal header files
      • lib/... for Open3D dynamic/static libraries
      • python/
        • lib/
          • py3d.[py2|py3][platform].[ext] The python library
        • Tutorial/... The python tutorials
      • test
        • bin/... The test execs
        • TestData/... The test data
    1. Provided -DOPEN3D_INSTALL_EXTERNALS=ON to optinally install the 3rdparty library headers ${CMAKE_INSTALL_PREFIX}/include/ (Eigen, GL, GLFW, libjpeg, libpng)
    2. Reorganized the tests sources into separate folders with each having own CMakeLists
    3. Updated the TestData path in various scripts
    4. Reorganize the source and header files into src and include/Open3D directories
      • Corrected inclusion paths accordingly
      • All inclusion paths are prefixed with Open3D
    opened by ghost 51
  • Support for RGB-D cameras

    Support for RGB-D cameras

    The support for RGB-D data has three aspects:

    1. Offline read RGB-D data and process them
    2. Stream RGB-D data from a camera and record it to disk
    3. Stream RGB-D data from a camera and process it on-the-fly

    Currently Open3D partially support (1) by allowing reading RGB-D image pairs. It support formats from a few different datasets. However, some other formats like the legacy ONI format (http://qianyi.info/scenedata.html http://redwood-data.org/indoor/tutorial.html) are not supported.

    I think (2) is important too. But I don't know if there is a "mainstream" sensor that is worth developing a UI for it.

    I tried to develop a recorder for the RealSense DS4 sensor a long time ago (https://github.com/IntelVCL/Open3D/blob/master/src/Test/TestRealSense.cpp). DS4's driver was not well supported by Linux and caused lots of headache. Also, I am not happy about the quality of the images produced by DS4 (significantly worse than Primesense).

    Primesense can only be bought from black market now 5 years after the acquisition by Apple. Both OpenNI and OpenNI2 drivers have not been maintained for years.

    KinectOne is heavy. The calibration between color and depth camera has many issues. It is never considered to be a good camera for SLAM.

    Structure sensor + iPad is a good combination. But the recording requires iOS programming. I have implemented an app for this purpose. I don't think I can integrate it easily to Open3D. Also I could not find a standard format that can support fast recording while being easily parse-able.

    I had lots of experience with Tango, both phone and tablet. But rumor said that Google had shut it down.

    I am very open to adding support to RGB-D cameras. I think it helps a lot if we can have a convenient tool to collect RGB-D data for SLAM. But I am struggling in finding a good mainstream RGB-D setup. Suggestions are very welcome.

    question 
    opened by qianyizh 49
  • Segmentation Fault after registeration process in Reconstruction pipeline

    Segmentation Fault after registeration process in Reconstruction pipeline

    I am trying to run reconstruction pipeline with the python scripts provided. I recorded my data using realsense d435i. When I run the script it is able to register the fragment but just after this phase it gives me segmentation fault.

    To Reproduce I used the sample dataset sequence 16 as provided in the tutorial. If you try to run the pipeline it should give segmentation fault. The below screenshot is however of my custom data but the results were same in both cases.

    **python run_system.py config/realsense.json --make --register --refine --integrate ** Expected behavior Segmentation fault

    Screenshots If applicable, add screenshots to help explain your problem. image

    I am running in in conda base environment

    • Operating system: (Ubuntu 18.04)
    • Python version: (e.g. Python 2.7)
    • Open3D version:0.9
    • Is this remote workstation?: no
    • How did you install Open3D?: (build from source)
    • Compiler version (if built from source): (e.g. gcc 7.5)

    Additional context

    bug 
    opened by zainmehdi 43
  • GLFW Error: GLX: Failed to create context: GLXBadFBConfig

    GLFW Error: GLX: Failed to create context: GLXBadFBConfig

    I'm trying to see the results of (https://github.com/fregu856/3DOD_thesis) 3d object detection on kitti data set.In this, open3d is used for the visualization part of 3d bounding boxes. I'm getting the below mentioned error while running visualize_eval_test.py:

    part of code creating error: inside visualize_eval_test.py: def draw_geometries_dark_background(geometries): print("inside draw_geometries_dark_background") vis = open3d.visualization.Visualizer() vis.create_window() opt = open3d.visualization.RenderOption() opt.background_color = np.asarray([0, 0, 0]) for geometry in geometries: vis.add_geometry(geometry) vis.run() vis.destroy_window()

    error: $python visualization/visualize_eval_test.py GLFW Error: GLX: Failed to create context: GLXBadFBConfig Failed to create window Segmentation fault (core dumped)

    Environment:

    • OS: Ubuntu 16.04 [e.g. OSX Mojave, Ubuntu 16.04, Windows 10.0]
    • Python version: Python 3.5.2
    • Open3D version:0.5.0.0
    • I'm using a GPU using SSH.
    • How did you install Open3D?: pip

    Any solution for this?

    Regards Abhi

    question 
    opened by AbhiDarisi 36
  • Headless OpenGL rendering

    Headless OpenGL rendering

    This can be useful in scenarios where users want to render a (long) video. It can also be useful when Open3D is deployed in a remote server and window creation is a problem.

    Some information regarding GLFW: https://github.com/glfw/glfw/issues/648

    opened by qianyizh 35
  • draw geometry seg fault

    draw geometry seg fault

    IMPORTANT: Please use the following template to report the bug.


    Describe the bug A clear and concise description of what the bug is. set fault when drawing geometry To Reproduce Steps to reproduce the behavior: code:

    #include <iostream>
    #include <memory>
    #include <thread>
    
    #include <open3d/Open3D.h>
    
    // A simplified version of examples/Cpp/Visualizer.cpp to demonstrate linking
    // an external project to Open3D.
    int main(int argc, char *argv[]) {
        using namespace open3d;
    
    
            auto cloud_ptr = std::make_shared<geometry::PointCloud>();
          io::ReadPointCloud("/path/to/pcd.pcd", *cloud_ptr);
    
            cloud_ptr->NormalizeNormals();
            std::cout << cloud_ptr->points_.size() << std::endl;
            visualization::DrawGeometries({cloud_ptr}, "PointCloud", 1600, 900);
    
    
        return 0;
    }
    

    Expected behavior nice geometry,

    in python works though...

    Environment (please complete the following information):

    • Operating system: ubuntu 18.04
    • Open3D version: 0.10.1 (tip of master)
    • Is this remote workstation?: yes or no
    • How did you install Open3D?: build from source with abi = 1
    • Compiler version (if built from source): gcc 9

    Additional context Add any other context about the problem here.

    possible bug 
    opened by femust 34
  • Refactor CMake buildsystem

    Refactor CMake buildsystem

    This PR is part of issue #1770 to make it easier to package Open3D for (Linux) distributions.

    The old CMake scripts made heavy use of variables to propagate dependencies. Actually, CMake has pretty decent capabilities to do this on its own, which is why I reframed the whole build configuration in terms of CMake targets.

    EDIT: I believe the PR is ready for review. Here is why think it should be merged:

    • Exports a single Open3D::Open3D CMake target for convenient library usage. Takes care of include paths, preprocessor macros and links all dependencies.
    • Source tree is embedding-friendly. Just use add_subdirectory(path/to/open3d/sources) in a project that depends on Open3D, and the Open3D::Open3D target becomes available.
    • Distribution-friendly dependency management. (Almost) all dependencies can be switched between the vendored version in 3rdparty and the system version. Thanks to CMake targets, this is transparent to Open3D developers and users.
    • No meddling with FLAGS variables and almost no more hidden dependencies on CMake variables.

    This change is Reviewable

    opened by roehling 34
  • Failed when import py3d on Windows 10

    Failed when import py3d on Windows 10

    Hello @syncle , thank you and your team with magnificent works in computer vision and graphic processing. I have compiled Open3D with specified Python 3.5 and VS 2017 (CMake use std:c++14 when compile). Then I built INSTALL and it successfully created py3d.cp35-win_amd64.pyd on C:\Users\...\Python\Python 3.5\site-packages\, but when I use Python IDLE 3.5 (64-bit) to import py3d, it get no module named error. I checked the system variables and make new var named PYTHONPATH (as it doesn't exist), assigned the path of .pyd to it but that seems not getting better. I also found the same .pyd in build\lib\Python\Release and run python interpreter to import it, received ImportError again. Did you know about anything caused this error or what info you need more to understand the problem here?


    Info: OS: Windows 10 64-bit (Ver 1803, Build 17134.112) VS 2017: MSVC 14.4 and CMake auto-find OpenMP, Python Python 3.5 (64-bit) and dependencies is along with Open3D (src\External folder) Thanks in advance.

    possible bug 
    opened by HaiDang2001VN 33
  • Multiple viewports per window

    Multiple viewports per window

    A common use case is comparing multiple point clouds side-by-side. In PCL, this could be done by creating multiple viewports in the same window. However, Open3D Visualizer only provides a single window with a single viewport and a single ViewControl.

    Feature request to extend the API to be able to attach multiple viewports to a window.

    With the current API, a workaround is to create multiple windows with multiple Visualizer instances:

    vis = o3d.Visualizer()
    vis.create_window(window_name='TopLeft', width=960, height=540, left=0, top=0)
    vis.add_geometry(pcd)
    
    vis2 = o3d.Visualizer()
    vis2.create_window(window_name='TopRight', width=960, height=540, left=960, top=0)
    vis2.add_geometry(pcd)
    
    while True:
        vis.update_geometry()
        if not vis.poll_events():
            break
        vis.update_renderer()
    
        vis2.update_geometry()
        if not vis2.poll_events():
            break
        vis2.update_renderer()
    
    vis.destroy_window()
    vis2.destroy_window()
    
    feature request 
    opened by sammo2828 30
  • global registration issue

    global registration issue

    I have a simalar issue as Integration Issue #633. I tried to run against the standford burghers, I limit it to the first 4000 images. If I run setting
    "n_frames_per_fragment": 1000 then it works and give me a final integrated image.

    if I run setting "n_frames_per_fragment": 100 ( as is the default) then the resulting integrated image is garbage.

    I am not sure why setting the frames per fragment should have this effect.

    I tried this both ways for the complete burghers image dataset and it results in garbage regardless weather it is 100 or 1000.

    There seems to be something wrong global integration.

    This error can be reproduced by using the first 4000 images of the dataset and run with frames per fragment for 100 and then again for 1000.

    Below is an image opened in Meshlab that show the result of the whole burghers dataset run with frams per fragment set to 1000.

    screenshot from 2019-01-25 22-25-12

    question 
    opened by rnunziata 30
  • Instructions for installing without sudo

    Instructions for installing without sudo

    Can we please have instructions for installing Open3D without sudo permissions, likely on a remote server where visualization is not needed either. #264 is related but would prefer some clearer and comprehensive steps listed in the README.

    question 
    opened by tejaskhot 30
  • Support CUDA 12.0 build.

    Support CUDA 12.0 build.

    Fix #5827.

    Fix the build error below.

    1. error: namespace "thrust" has no member "device"
    2. *** No rule to make target '/usr/local/cuda/lib64/liblapack_static.a'

    This change is Reviewable

    opened by NobuoTsukamoto 1
  • Convert Uint8 image to float32 get all 0 array data.

    Convert Uint8 image to float32 get all 0 array data.

    Checklist

    My Question

    I want to convert uint8 image to float32 image for tsdf, I use following code for converting ,but it didn't work.

    I = o3d.t.io.read_image("./0000.jpg")
    I2 = I.to(o3d.core.Dtype.Float32)
    I : Image[size={2160,3840}, channels=3, UInt8, CPU:0]
    I2 : Image[size={2160,3840}, channels=3, Float32, CPU:0]
    np.unique(I2) == 0
    

    In I2 image data array, there are all zeros. I have tested on windowds/ubuntu 、cpu/cuda、open3d version 0.15.1/0.15.2 ,so it's my callback probem or IPP/kenel failed to copy data?

    question 
    opened by zhixiongzuo 0
  • Cannot build on Ubuntu 22 with CUDA 12

    Cannot build on Ubuntu 22 with CUDA 12

    Checklist

    Steps to reproduce the issue

    I first cloned Open3D by:

    git clone https://github.com/isl-org/Open3D.git
    cd Open3D
    

    Then, I build Open3D (on Ubuntu 22.04, with CUDA 12.0) with:

    mkdir build
    cd build
    cmake -DBUILD_CUDA_MODULE=ON ..
    make -j$(nproc)
    

    Error message

    [ 81%] Building CXX object cpp/open3d/CMakeFiles/Open3D.dir/Open3DConfig.cpp.o
    [ 81%] Linking CXX static library ../../lib/Release/libOpen3D.a
    [ 81%] Built target Open3D
    make[2]: *** No rule to make target '/usr/local/cuda/lib64/liblapack_static.a', needed by 'bin/GLInfo'.  Stop.
    make[2]: *** Waiting for unfinished jobs....
    make[2]: *** No rule to make target '/usr/local/cuda/lib64/liblapack_static.a', needed by 'bin/ViewGeometry'.  Stop.
    make[2]: *** Waiting for unfinished jobs....
    make[2]: *** No rule to make target '/usr/local/cuda/lib64/liblapack_static.a', needed by 'bin/MergeMesh'.  Stop.
    make[2]: *** Waiting for unfinished jobs....
    make[2]: *** No rule to make target '/usr/local/cuda/lib64/liblapack_static.a', needed by 'Open3D/Open3D'.  Stop.
    make[2]: *** Waiting for unfinished jobs....
    make[2]: *** No rule to make target '/usr/local/cuda/lib64/liblapack_static.a', needed by 'bin/ManuallyCropGeometry'.  Stop.
    make[2]: *** Waiting for unfinished jobs....
    make[2]: *** No rule to make target '/usr/local/cuda/lib64/liblapack_static.a', needed by 'bin/ConvertPointCloud'.  Stop.
    make[2]: *** Waiting for unfinished jobs....
    make[2]: *** No rule to make target '/usr/local/cuda/lib64/liblapack_static.a', needed by 'OfflineReconstruction/OfflineReconstruction'.  Stop.
    make[2]: *** Waiting for unfinished jobs....
    make[2]: *** No rule to make target '/usr/local/cuda/lib64/liblapack_static.a', needed by 'bin/examples/CameraPoseTrajectory'.  Stop.
    make[2]: *** Waiting for unfinished jobs....
    

    Open3D, Python and System information

    - Operating system: Ubuntu 22.04
    - Python version: Python 3.10.6
    - Open3D version: latest
    - System architecture: x86
    - Is this a remote workstation?: no
    - How did you install Open3D?: build from source
    - Compiler version (if built from source): gcc 11.3
    

    Additional information

    Looking at the CUDA libraries, it appears that CUDA 12 does not have liblapack_static.a, and it now instead has libcusolver_lapack_static.a.

    build/install issue 
    opened by ghfue 1
  • Casting rays on points

    Casting rays on points

    Checklist

    My Question

    is it possible to cast rays on a pointcloud and know if a ray has hit a point in the point cloud or even what point? or do I need to turn all the points to triangle meshes to achieve this?

    question 
    opened by yaelbenoren 0
  • 400x200 VoxelGrid UpdateGeometry very slow

    400x200 VoxelGrid UpdateGeometry very slow

    I'm generating a 400x200x1 voxel grid and based on the occupancy of each voxel, I'm recoloring the voxels and then calling UpdateGeometry() in the render loop.

    Based on my timing analysis, UpdateGeometry() step takes a lot of time (~x100 the time it takes to update the entire voxel grid color):

    updating voxel grid: 0.00397033 sec. calling UpdateGeometry: 0.115679 sec.

    Here's my setup:

    Initialize the visualier:

        // Voxel
        voxelGrid_              = std::make_shared<open3d::geometry::VoxelGrid>();
        voxelGrid_->origin_     = Eigen::Vector3d(0.0, 0.0, 0.0);
        voxelGrid_->voxel_size_ = GRID_RESOLUTION_;
    
        for (int col = 0; col < NUM_COLS_; col++)
        {
            for (int row = 0; row < NUM_ROWS_; row++)
            {
                Eigen::Vector3i voxelIdx(col, row, 0);
                Eigen::Vector3d color(0.5, 0.5, 0.5);
                voxelGrid_->AddVoxel(open3d::geometry::Voxel(voxelIdx, color));
            }
        }
        gridViz_.AddGeometry(voxelGrid_);
    

    Main perception loop:

        for (auto &voxel : voxelGrid_->voxels_)
             voxel.second.color_ = assigned_color;
    

    Render loop:

        gridViz_.UpdateGeometry(voxelGrid_);
        gridViz_.PollEvents();
        gridViz_.UpdateRender();
    

    As I mentioned, Render loop's UpdateGeometry step seems to be the culprit. But I'm sure updating a 400x200x1 voxel grid should not take so much time. Can somebody point me to what I might be missing?

    Hardware: AMD Ryzen 5 2600x, Nvidia GTX1660Ti, 16GB RAM

    question 
    opened by goksanisil23 0
  • Cannot compile on Ubuntu 20.04 (ppc64le) with CUDA 11.6

    Cannot compile on Ubuntu 20.04 (ppc64le) with CUDA 11.6

    Checklist

    Steps to reproduce the issue

    I first cloned Open3D by:

    git clone https://github.com/isl-org/Open3D.git
    cd Open3D
    

    Then, I build Open3D (on Ubuntu 20.04, with CUDA 11.6) with:

    mkdir build
    cd build
    cmake  ..
    
    successful till above.
    make -j$(nproc)
    
    returns the following error
    

    Error message

    fatal error: too many errors emitted, stopping now [-ferror-limit=]
    20 errors generated.
    make[5]: *** [CMakeFiles/UVAtlas.dir/build.make:77: CMakeFiles/UVAtlas.dir/cmake_pch.hxx.pch] Error 1
    make[4]: *** [CMakeFiles/Makefile2:83: CMakeFiles/UVAtlas.dir/all] Error 2
    make[3]: *** [Makefile:136: all] Error 2
    make[2]: *** [CMakeFiles/ext_uvatlas.dir/build.make:86: uvatlas/src/ext_uvatlas-stamp/ext_uvatlas-build] Error 2
    make[1]: *** [CMakeFiles/Makefile2:1760: CMakeFiles/ext_uvatlas.dir/all] Error 2
    20 errors generated.
    make[5]: *** [common/simd/CMakeFiles/simd.dir/build.make:76: common/simd/CMakeFiles/simd.dir/sse.cpp.o] Error 1
    make[4]: *** [CMakeFiles/Makefile2:291: common/simd/CMakeFiles/simd.dir/all] Error 2
    make[4]: *** Waiting for unfinished jobs....
    20 errors generated.
    make[5]: *** [common/sys/CMakeFiles/sys.dir/build.make:174: common/sys/CMakeFiles/sys.dir/mutex.cpp.o] Error 1
    20 errors generated.
    make[5]: *** [common/sys/CMakeFiles/sys.dir/build.make:90: common/sys/CMakeFiles/sys.dir/alloc.cpp.o] Error 1
    20 errors generated.
    make[5]: *** [common/sys/CMakeFiles/sys.dir/build.make:202: common/sys/CMakeFiles/sys.dir/barrier.cpp.o] Error 1
    20 errors generated.
    make[5]: *** [common/sys/CMakeFiles/sys.dir/build.make:132: common/sys/CMakeFiles/sys.dir/thread.cpp.o] Error 1
    20 errors generated.
    make[5]: *** [common/tasking/CMakeFiles/tasking.dir/build.make:76: common/tasking/CMakeFiles/tasking.dir/taskschedulerinternal.cpp.o] Error 1
    make[4]: *** [CMakeFiles/Makefile2:344: common/tasking/CMakeFiles/tasking.dir/all] Error 2
    20 errors generated.
    make[5]: *** [common/sys/CMakeFiles/sys.dir/build.make:146: common/sys/CMakeFiles/sys.dir/string.cpp.o] Error 1
    20 errors generated.
    make[5]: *** [common/sys/CMakeFiles/sys.dir/build.make:76: common/sys/CMakeFiles/sys.dir/sysinfo.cpp.o] Error 1
    make[4]: *** [CMakeFiles/Makefile2:239: common/sys/CMakeFiles/sys.dir/all] Error 2
    make[3]: *** [Makefile:156: all] Error 2
    make[2]: *** [CMakeFiles/ext_embree.dir/build.make:86: embree/src/ext_embree-stamp/ext_embree-build] Error 2
    make[1]: *** [CMakeFiles/Makefile2:1890: CMakeFiles/ext_embree.dir/all] Error 2
    make: *** [Makefile:156: all] Error 2
    

    Open3D, Python and System information

    - Operating system: Ubuntu 20.04 
    - Python version: Python 3.10 
    - Open3D version: couldn't install
    - System architecture: ppc64le
    - Is this a remote workstation?: yes 
    - How did you install Open3D?: build from source
    - Compiler version (if built from source): gcc 9.4.0 / clang 10.0.0-4ubuntu1
    

    Additional information

    No response

    build/install issue 
    opened by purplebutterfly79 0
Releases(v0.16.0)
Owner
Intel ISL (Intel Intelligent Systems Lab)
Intel ISL (Intel Intelligent Systems Lab)
Vizzu is a free, open-source Javascript/C++ library for animated data visualizations and data stories.

Vizzu is a free, open-source Javascript/C++ library utilizing a generic dataviz engine that generates many types of charts and seamlessly animates between them

Vizzu 1.6k Jan 3, 2023
Source Codes for Injective Deformation Processing (IDP) with Incremental Potential Contact (IPC)

Source Codes for Injective Deformation Processing Reference This repository provides source code for: Yu Fang*, Minchen Li* (equal contribution), Chen

null 41 Dec 6, 2022
Spatial extrapolation algorithm: calculate the data of other regions through the data of known regions.

Spatial interpolation Author : csl E-Mail : [email protected] OverView Spatial interpolation is often used to convert the measured data of discrete po

null 1 Oct 18, 2021
Modern C++14 library for the development of real-time graphical applications

CI Community Support bs::framework is a C++ library that aims to provide a unified foundation for the development of real-time graphical applications,

null 1.7k Jan 2, 2023
A modern cross-platform low-level graphics library and rendering framework

Diligent Engine A Modern Cross-Platform Low-Level 3D Graphics Library Diligent Engine is a lightweight cross-platform graphics API abstraction library

Diligent Graphics 2.6k Dec 30, 2022
Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal

Low Level Graphics Library (LLGL) Documentation NOTE: This repository receives bug fixes only, but no major updates. Pull requests may still be accept

Lukas Hermanns 1.5k Jan 8, 2023
🎨 Modern 2D/3D - Importer • Exporter • Util - Library, also called (AssetIO)

Brand-new modern 3D asset importer, exporter library. This library will include common 3D utils funcs. It is written with C99 but C++ wrappers or othe

Recep Aslantas 162 Dec 21, 2022
A library for high-performance, modern 2D graphics with SDL written in C.

SDL_gpu, a library for making hardware-accelerated 2D graphics easy. by Jonathan Dearborn SDL_gpu is licensed under the terms of the MIT License. See

Jonathan Dearborn 1.1k Jan 5, 2023
SoL (for Speed of Light, or sun in Spanish) is a Physically-based rendering library written in modern C++

SoL (for Speed of Light, or sun in Spanish) is a small rendering library written in C++20. Its goal is to strike a good balance between performance and usability, and allow easy experimentation for rendering researchers.

Arsène Pérard-Gayot 10 May 19, 2022
A modern C++ physically based renderer

The Dakku Renderer Warning: This project is currently under developing and does not guarantee any consistency. About Dakku is a physically based rende

xehoth 6 Apr 15, 2022
A modern, feature-rich single header C++ interface system for GLFW

A modern, feature-rich single header C++ interface system for GLFW

Vortex 3 Dec 27, 2021
The official Open-Asset-Importer-Library Repository. Loads 40+ 3D-file-formats into one unified and clean data structure.

Open Asset Import Library (assimp) A library to import and export various 3d-model-formats including scene-post-processing to generate missing render

Open Asset Import Library 8.6k Jan 4, 2023
Matplot++: A C++ Graphics Library for Data Visualization 📊🗾

Matplot++ A C++ Graphics Library for Data Visualization Data visualization can help programmers and scientists identify trends in their data and effic

Alan de Freitas 3k Jan 4, 2023
Lightweight and modular C++11 graphics middleware for games and data visualization

Magnum — Lightweight and modular C++11/C++14 graphics middleware for games and data visualization Looking for an open-source library that gives you gr

Vladimír Vondruš 4.3k Dec 30, 2022
Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics

Yocto/GL: Tiny C++ Libraries for Data-Oriented Physically-based Graphics Yocto/GL is a collection of small C++17 libraries for building physically-bas

Fabio Pellacini 2.4k Dec 27, 2022
Demonstrates basic advantages of integrating the Data Distribution Service (DDS) and Time-Sensitive Networking (TSN) Ethernet.

ROS2-DDS-TSN integration demo This repository demonstrates basic advantages of integrating the Data Distribution Service (DDS) and Time-Sensitive Netw

NXP 60 Jan 6, 2023
Polyscope is a C++/Python viewer and user interface for 3D data such as meshes and point clouds

Polyscope is a C++/Python viewer and user interface for 3D data such as meshes and point clouds. It allows you to register your data and quickly generate informative and beautiful visualizations, either programmatically or via a dynamic GUI.

Nicholas Sharp 1.3k Dec 30, 2022
Alpha Plot is a free application for Scientific Data Analysis and Visualization for Windows, Linux and Mac OS X

Alpha Plot is a free application for Scientific Data Analysis and Visualization for Windows, Linux and Mac OS X (probably BSD also). Web Link Website

Arun Narayanankutty 171 Dec 26, 2022
Overlay Microsoft Flight Simulator (FS2020) aircraft data onto real airport charts in real-time

FLIGHTSIM CHARTS Introduction Overlay Microsoft Flight Simulator (FS2020) aircraft data onto real airport charts in real-time. Instantly teleport to a

Scott Vincent 3 May 31, 2022