A cross-platform C++20 port of the three.js library, enabling 3D graphics rendering in C++ applications.
threepp is a C++20 port of the three.js library, providing a comprehensive 3D graphics framework for C++ developers. It enables the creation of interactive 3D applications, visualizations, and simulations with a scene graph API similar to three.js, solving the need for a modern, high-level 3D library in the C++ ecosystem.
C++ developers working on 3D graphics applications, simulations, game prototypes, or scientific visualizations who prefer a three.js-like API. It's also suitable for ROS2 users needing visualization tools and developers targeting cross-platform or web deployment via Emscripten.
Developers choose threepp because it brings the proven, intuitive API of three.js to C++, eliminating the need to build a 3D engine from scratch. Its cross-platform support, integration with tools like Dear ImGui and Assimp, and smart pointer-based memory management make it both powerful and easy to use.
C++20 port of three.js (r129+)
Builds on Windows, Linux, macOS, and even web via Emscripten, enabling seamless porting of C++ 3D applications to browsers with minimal code changes.
The API closely mirrors three.js, allowing developers experienced with the JavaScript library to quickly leverage scene graphs, materials, and controls without learning a new paradigm.
Includes built-in support for formats like GLTF and OBJ via Assimp, plus text rendering and audio, reducing the need for external dependencies in common 3D workflows.
Uses std::shared_ptr with static create functions for geometries and materials, automating disposal and simplifying resource handling in C++.
The port is still a work in progress, with animations limited to transforms and other advanced three.js capabilities potentially missing or partially implemented.
Based on three.js r129, it lacks updates, bug fixes, and new APIs from more recent releases, which may limit compatibility with modern assets or tools.
Requires CMake for building and bundles dependencies like GLFW, adding complexity for developers not versed in modern C++ toolchains or seeking lightweight setups.
Protocol Buffers - Google's data interchange format
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
JSON for Modern C++
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.