Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Game Engine Development
  3. Threepp

Threepp

MITC++

A cross-platform C++20 port of the three.js library, enabling 3D graphics rendering in C++ applications.

GitHubGitHub
781 stars91 forks0 contributors

What is Threepp?

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.

Target Audience

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.

Value Proposition

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.

Overview

C++20 port of three.js (r129+)

Use Cases

Best For

  • Creating 3D visualizations for robotics or simulation in C++
  • Building cross-platform 3D applications that can also run in browsers via WebAssembly
  • Prototyping 3D games or interactive experiences with a three.js-like workflow
  • Developing scientific or engineering simulations requiring real-time 3D rendering
  • Integrating 3D graphics into existing C++ applications with minimal boilerplate
  • Visualizing complex data or models in applications using ROS2

Not Ideal For

  • Teams relying on the latest three.js features and updates
  • Projects requiring advanced animation systems like skeletal rigging or complex keyframing
  • Environments where minimal dependencies and header-only libraries are preferred

Pros & Cons

Pros

Cross-Platform Deployment

Builds on Windows, Linux, macOS, and even web via Emscripten, enabling seamless porting of C++ 3D applications to browsers with minimal code changes.

Three.js Familiarity

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.

Integrated Loaders and Tools

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.

Smart Memory Management

Uses std::shared_ptr with static create functions for geometries and materials, automating disposal and simplifying resource handling in C++.

Cons

Incomplete Feature Set

The port is still a work in progress, with animations limited to transforms and other advanced three.js capabilities potentially missing or partially implemented.

Outdated Base Version

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.

CMake and Dependency Overhead

Requires CMake for building and bundles dependencies like GLFW, adding complexity for developers not versed in modern C++ toolchains or seeking lightweight setups.

Frequently Asked Questions

Quick Stats

Stars781
Forks91
Contributors0
Open Issues8
Last commit1 day ago
CreatedSince 2021

Tags

#emscripten#opengl#webgpu#threejs#3d-graphics#cmake#c-plus-plus#game-development#wasm#webgl#cross-platform#visualization#cpp

Built With

E
Emscripten
a
assimp
G
GLFW
c
c++20
D
Dear ImGui
m
miniaudio
C
CMake
O
OpenGL

Included in

Game Engine Development1.3k
Auto-fetched 1 day ago

Related Projects

ProtoBufProtoBuf

Protocol Buffers - Google's data interchange format

Stars71,181
Forks16,115
Last commit1 day ago
C/C++C/C++

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Stars71,074
Forks8,277
Last commit1 day ago
JSON for Modern C++JSON for Modern C++

JSON for Modern C++

Stars49,554
Forks7,381
Last commit2 days ago
BlazorBlazor

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.

Stars37,882
Forks10,636
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub