Open3D: A Modern Library for 3D Data Processing

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},
}
Owner
Intel ISL (Intel Intelligent Systems Lab)
Intel ISL (Intel Intelligent Systems Lab)
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
  • 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.

  • 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

  • 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

  • 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.

  • 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

  • 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.

  • 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

  • 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.

  • Registering challenging point clouds & random number generation

    Registering challenging point clouds & random number generation

    Hi, I use Open3D RegistrationRANSACBasedOnFeatureMatching and FastGlobalRegistration api on my c++ project, but I found the results are not that stable. I also test the data using Open3D TestRegistrationRANSAC.cpp, the results are also bad. But when I test the data using python scripts,the results are stable and correct. Can you help me out? Thanks

  • Open3D cpp interface and

    Open3D cpp interface and "make install"

    Hi, authors,

    If I want to use Open3D as a substitute for PCL to deal with 3D data manipulation and visualization (my system uses CMake for project building). What cmake instructives should I append in my CMakeLists.txt file? It'll be very useful to have an example of CMakeLists.txt and also a simple example on how to call Open3D C++ interface.

    THX!

  • How can I make my mesh appear solid from all camera angles?

    How can I make my mesh appear solid from all camera angles?

    Discussed in https://github.com/isl-org/Open3D/discussions/5226

    Originally posted by pvasired June 20, 2022 I am trying to convert a point cloud into a mesh, but I am having trouble getting the orientation of my surface normals correct for what I want.

    I want the final shape to look solid from all camera angles rather than becoming transparent as I rotate my camera angle around. An example of what I mean is below.

    badmesh

    A snippet of my code is as follows:

    pcd = o3d.geometry.PointCloud()
    pcd.points = o3d.utility.Vector3dVector(points)
    pcd.estimate_normals()
    pcd.orient_normals_towards_camera_location()
    mesh, _ = o3d.geometry.TriangleMesh.create_from_point_cloud_poisson(pcd, depth=3)
    mesh.compute_vertex_normals()
    mesh.paint_uniform_color(np.array([0,191,255])/255)
    

    I would greatly appreciate any help on this!

  • Oriented bounding box estimates are quite off

    Oriented bounding box estimates are quite off

    Checklist

    My Question

    Hi, I have a partial point cloud, and a point cloud of better quality. However, when I run the oriented bounding box by calling pcd.get_oriented_bounding_box(robust=True), and visualize the results for both point clouds, the estimation for the better point cloud are even worse than the more partial-viewed cloud. I'm curious about how this is happening. Any suggestions and ideas are greatly appreciated! image

  • Add ImGuizmo esque 3D transformation gizmos to translate, rotate, and scale objects

    Add ImGuizmo esque 3D transformation gizmos to translate, rotate, and scale objects

    Checklist

    Proposed new feature or change

    I tried to look for UI elements that perform things like this

    From ImGuizmo

    and this

    From ImGuizmo

    I couldn't find any modules or widgets under visualization to do that, nor could I find any issues that talk about those kinds of features. I was wondering how I could implement those types of UI elements in an open3d project, or if they could be implemented within Open3D.

    I know that the C++ branch of Open3D has support for Imgui widgets, but I am working from python, and it seems like ImGuizmo is not really supported in the python bindings for imgui?

    Thanks

    References

    https://github.com/CedricGuillemet/ImGuizmo

    Additional information

    No response

  • Your provided example from documentation with External Project does not work

    Your provided example from documentation with External Project does not work

    Checklist

    Steps to reproduce the issue

    this is your example that does not work:

    git clone https://github.com/intel-isl/open3d-cmake-external-project.git
    cd open3d-cmake-external-project
    mkdir build
    cd build
    cmake ..
    cmake --build . --config Release --parallel 12
    Release\Draw
    
    
    # On Ubuntu 18.04, get the latest CMake from https://apt.kitware.com/.
    cmake_minimum_required(VERSION 3.18)
    
    project(Open3DCMakeExternalProject LANGUAGES C CXX)
    
    option(GLIBCXX_USE_CXX11_ABI   "Set -D_GLIBCXX_USE_CXX11_ABI=1"       OFF)
    option(STATIC_WINDOWS_RUNTIME  "Use static (MT/MTd) Windows runtime"  ON )
    
    if(NOT CMAKE_BUILD_TYPE)
        message(STATUS "No CMAKE_BUILD_TYPE specified, default to Release.")
        set(CMAKE_BUILD_TYPE "Release")
    endif()
    
    # Option 1: Use ExternalProject_Add, as shown in this CMake example.
    # Option 2: Install Open3D first and use find_package, see
    #           http://www.open3d.org/docs/release/cpp_project.html for details.
    include(ExternalProject)
    ExternalProject_Add(
        external_open3d
        PREFIX open3d
        GIT_REPOSITORY https://github.com/intel-isl/Open3D.git
        GIT_TAG master
        GIT_SHALLOW ON
        UPDATE_COMMAND ""
        # Check out https://github.com/intel-isl/Open3D/blob/master/CMakeLists.txt
        # For the full list of available options.
        CMAKE_ARGS
            -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
            -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
            -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
            -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
            -DGLIBCXX_USE_CXX11_ABI=${GLIBCXX_USE_CXX11_ABI}
            -DSTATIC_WINDOWS_RUNTIME=${STATIC_WINDOWS_RUNTIME}
            -DBUILD_SHARED_LIBS=ON
            -DBUILD_PYTHON_MODULE=OFF
            -DBUILD_EXAMPLES=OFF
    )
    
    # Simulate importing Open3D::Open3D
    ExternalProject_Get_Property(external_open3d INSTALL_DIR)
    add_library(Open3DHelper INTERFACE)
    add_dependencies(Open3DHelper external_open3d)
    target_compile_features(Open3DHelper INTERFACE cxx_std_14)
    target_compile_definitions(Open3DHelper INTERFACE _GLIBCXX_USE_CXX11_ABI=$<BOOL:${GLIBCXX_USE_CXX11_ABI}>)
    target_include_directories(Open3DHelper INTERFACE "${INSTALL_DIR}/include" "${INSTALL_DIR}/include/open3d/3rdparty")
    target_link_directories(Open3DHelper INTERFACE "${INSTALL_DIR}/lib")
    target_link_libraries(Open3DHelper INTERFACE Open3D)
    add_library(Open3D::Open3D ALIAS Open3DHelper)
    
    add_executable(Draw)
    target_sources(Draw PRIVATE Draw.cpp)
    target_link_libraries(Draw PRIVATE Open3D::Open3D)
    
    

    Error message

    Configuring incomplete, errors occurred!
      See also "C:/IBOIS57/_Code/Software/CPP/CMAKE/super_build/open3d/open3d-cmake-external-project/build/open3d/src/external_open3d-build/CMakeFiles/CMakeOutput.log".
      See also "C:/IBOIS57/_Code/Software/CPP/CMAKE/super_build/open3d/open3d-cmake-external-project/build/open3d/src/external_open3d-build/CMakeFiles/CMakeError.log".
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Msbuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(241,5): error MSB8066: Custom build for 'C:\IBOIS57\_Code\Software\CPP\CMAKE\super_build\open3d\open3d-cmak e-external-project\build\CMakeFiles\ca89f8e359f20bc5af70afe404465490\external_open3d-mkdir.rule;C:\IBOIS57\_Code\Software\CPP\CMAKE\super_build\open3d\open3d-cmake-external-project\build\CMakeFiles\ca89f8e359f20bc5af70afe40 4465490\external_open3d-download.rule;C:\IBOIS57\_Code\Software\CPP\CMAKE\super_build\open3d\open3d-cmake-external-project\build\CMakeFiles\ca89f8e359f20bc5af70afe404465490\external_open3d-update.rule;C:\IBOIS57\_Code\Softw are\CPP\CMAKE\super_build\open3d\open3d-cmake-external-project\build\CMakeFiles\ca89f8e359f20bc5af70afe404465490\external_open3d-patch.rule;C:\IBOIS57\_Code\Software\CPP\CMAKE\super_build\open3d\open3d-cmake-external-projec t\build\CMakeFiles\ca89f8e359f20bc5af70afe404465490\external_open3d-configure.rule;C:\IBOIS57\_Code\Software\CPP\CMAKE\super_build\open3d\open3d-cmake-external-project\build\CMakeFiles\ca89f8e359f20bc5af70afe404465490\exter nal_open3d-build.rule;C:\IBOIS57\_Code\Software\CPP\CMAKE\super_build\open3d\open3d-cmake-external-project\build\CMakeFiles\ca89f8e359f20bc5af70afe404465490\external_open3d-install.rule;C:\IBOIS57\_Code\Software\CPP\CMAKE\s uper_build\open3d\open3d-cmake-external-project\build\CMakeFiles\34214f22dce59220d8a9fa5e767c76c1\external_open3d-complete.rule;C:\IBOIS57\_Code\Software\CPP\CMAKE\super_build\open3d\open3d-cmake-external-project\build\CMak eFiles\0bbeec72e5c9aedbdd02aa34c90fcaf5\external_open3d.rule;C:\IBOIS57\_Code\Software\CPP\CMAKE\super_build\open3d\open3d-cmake-external-project\CMakeLists.txt' exited with code 1. [C:\IBOIS57\_Code\Software\CPP\CMAKE\supe r_build\open3d\open3d-cmake-external-project\build\external_open3d.vcxproj]
    

    Open3D, Python and System information

    - Operating system:  Windows 10 64-bit
    - Python version: C++ I do not use Python
    - Open3D version: https://github.com/intel-isl/Open3D.git
    - System architecture: x64
    - Is this a remote workstation?:  no
    - How did you install Open3D?: CMake External Project
    - Compiler version (if built from source): "Visual Studio 17 2022"
    

    Additional information

    This is from your website: https://github.com/isl-org/open3d-cmake-external-project

    image

  • Linking error c++

    Linking error c++

    Checklist

    Steps to reproduce the issue

    I first cloned Open3D by:

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

    Then, I downloaded the c++ binaries from http://www.open3d.org/docs/release/getting_started.html and linked them to my project using the basical way.

    But when i tried to compile the example : https://github.com/isl-org/Open3D/blob/master/examples/cpp/RealSenseRecorder.cpp

    I got the error below... Can anyone help me with this, please ?

    Error message

    Error	LNK2019	unresolved external symbol "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl fmt::v8::vformat(class fmt::v8::basic_string_view<char>,class fmt::v8::basic_format_args<class fmt::v8::basic_format_context<class fmt::v8::appender,char> >)" ([email protected]@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected][email protected][email protected]@[email protected]@@[email protected]@[email protected]@@[email protected]@Z) referenced in function "private: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl open3d::utility::Logger::FormatArgs(char const *,class fmt::v8::basic_format_args<class fmt::v8::basic_format_context<class fmt::v8::appender,char> >)" ([email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected][email protected]@[email protected]@@[email protected]@[email protected]@@[email protected]@@@Z)	Open3D RealSense
    

    Open3D, Python and System information

    - Operating system:  Windows 10 64-bit
    - Python version: I am using c++
    - Open3D version: 
    - System architecture: x86 
    - Is this a remote workstation?: yes or no
    - How did you install Open3D?:http://www.open3d.org/docs/release/getting_started.html
    

    Additional information

    logging

  • Add Doppler ICP algorithm in registration pipeline and dopplers field in PointCloud

    Add Doppler ICP algorithm in registration pipeline and dopplers field in PointCloud

    We would like to contribute the implementation of our Doppler ICP algorithm for point clouds captured by FMCW LiDARs. This is the implementation of the following paper:

    @INPROCEEDINGS{Hexsel-RSS-22, 
        AUTHOR    = {Bruno Hexsel AND Heethesh Vhavle AND Yi Chen}, 
        TITLE     = {{DICP: Doppler Iterative Closest Point Algorithm}}, 
        BOOKTITLE = {Proceedings of Robotics: Science and Systems}, 
        YEAR      = {2022}, 
        ADDRESS   = {New York City, NY, USA}, 
        MONTH     = {June}, 
        DOI       = {10.15607/RSS.2022.XVIII.015} 
    }
    
    • Added new DopplerICP algorithm in open3d::pipelines::registration.
    • C++ and Python examples for Doppler ICP.
    • Added dopplers field in open3d::geometry::PointCloud class.
    • Added converged and num_iterations in RegistrationResult.

    This change is Reviewable

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 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

Jun 24, 2022
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

May 10, 2022
Spatial extrapolation algorithm: calculate the data of other regions through the data of known regions.
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

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,

Jun 10, 2022
A modern cross-platform low-level graphics library and rendering framework
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

Jun 17, 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) 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

Jun 19, 2022
🎨 Modern 2D/3D - Importer β€’ Exporter β€’ Util - Library, also called (AssetIO)
🎨 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

Jun 8, 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

Jun 20, 2022
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.

May 19, 2022
A modern C++ physically based renderer
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

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

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

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

Jun 24, 2022
Matplot++: A C++ Graphics Library for Data Visualization πŸ“ŠπŸ—Ύ
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

Jun 15, 2022
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

Jun 22, 2022
Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics
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

Jun 18, 2022
Demonstrates basic advantages of integrating the Data Distribution Service (DDS) and Time-Sensitive Networking (TSN) Ethernet.
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

Jun 3, 2022
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.

Jun 20, 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

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

May 30, 2022
Overlay Microsoft Flight Simulator (FS2020) aircraft data onto real airport charts in real-time
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

May 31, 2022