Engine de renderização em tempo real com base física para Android, iOS, Linux, macOS, Windows e WebGL2, projetada para ser pequena e eficiente no Android.
markaren/threepp
Biblioteca 3D multiplataforma em C++20 com API no estilo three.js, backends OpenGL e Vulkan, bindings para Python e simulação de física e sensores.
- Estrelas
- 1,208
- Forks
- 156
- Issues abertas
- 3
- Último commit
- ontem
O que é?
threepp é uma biblioteca 3D em C++20 que segue a API de alto nível do three.js. Assim, desenvolvedores familiarizados com three.js podem escrever código de cenas usando objetos semelhantes, como Mesh, Scene, luzes, câmeras e loaders. A renderização funciona com um backend OpenGL portátil ou com um renderer Vulkan diferido, que adiciona sombras com ray tracing, reflexos, oclusão de ambiente e iluminação global; o mesmo código de cena funciona em ambos.
Além da renderização, o projeto inclui um editor de cenas, simulação de robôs e corpos rígidos baseada em PhysX, sensores simulados como lidar, profundidade, câmera, IMU e outros, que podem gerar rótulos ground truth para dados sintéticos, e voo hardware-in-the-loop com ArduPilot. Os bindings para Python são publicados no PyPI e disponibilizam os renderers, rótulos como arrays NumPy e articulações PhysX.
O projeto se descreve como adequado para pesquisa, prototipagem e ensino, não para engines de produção, e observa que as APIs mudam entre versões. O backend Vulkan exige extensões de ray tracing, por isso não funciona no macOS, onde se usa o renderer OpenGL.
Recursos principais
- 01API no estilo three.js que abrange meshes, luzes, câmeras, controles, animação e pós-processamento.
- 02Loaders para glTF, OBJ, STL, COLLADA, SVG, URDF, FBX (opcional) e formatos comuns de imagem e HDR.
- 03Renderer Vulkan diferido com sombras com ray tracing, reflexos, AO e GI.
- 04Sensores simulados, como lidar, câmeras de profundidade e coloridas, IMU e encoders de juntas.
- 05Integração com PhysX para corpos rígidos, articulações, corpos flexíveis e veículos.
- 06Bindings para Python instaláveis pelo PyPI, com suporte a renderização headless.
Casos de uso
- Criar simulações de robótica ou sistemas autônomos que precisem de modelos de sensores e física em C++.
- Gerar dados sintéticos de imagem e profundidade com rótulos para treinamento de percepção.
- Portar código de cenas no estilo three.js para uma aplicação nativa em C++.
- Ensinar conceitos de computação gráfica 3D com uma API de alto nível familiar.
Início rápido
- 1
Instale o pacote Python pelo PyPI
pip install threepp - 2
Compile o backend OpenGL com CMake presets
cmake --preset gl - 3
Compile a versão OpenGL
cmake --build --preset gl
Antes de usar
- O backend Vulkan requer GPUs compatíveis com ray tracing e não funciona no macOS; nesse caso, use o GLRenderer.
- O projeto foi desenvolvido para pesquisa, prototipagem e ensino, não para produção, e as APIs mudam entre versões.
- A camada de simulação (Vulkan, sensores, PhysX, editor e Python) evolui mais rapidamente, e a viewport Vulkan do editor é oferecida no melhor esforço possível.
Em coleções
Tópicos
Perguntas frequentes
- O que é threepp?
- Biblioteca 3D multiplataforma em C++20 com API no estilo three.js, backends OpenGL e Vulkan, bindings para Python e simulação de física e sensores. threepp é uma biblioteca 3D em C++20 que segue a API de alto nível do three.js. Assim, desenvolvedores familiarizados com three.js podem escrever código de cenas usando objetos semelhantes, como Mesh, Scene, luzes, câmeras e loaders. A renderização funciona com um backend OpenGL portátil ou com um renderer Vulkan diferido, que adiciona sombras com ray tracing, reflexos, oclusão de ambiente e iluminação global; o mesmo código de cena funciona em ambos.
- threepp é gratuito? Qual é a licença?
- threepp é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- threepp ainda é mantido?
- Manutenção ativa. O último commit de threepp foi em 6 de nov. de 2026.
- Para que posso usar threepp?
- Criar simulações de robótica ou sistemas autônomos que precisem de modelos de sensores e física em C++. Gerar dados sintéticos de imagem e profundidade com rótulos para treinamento de percepção. Portar código de cenas no estilo three.js para uma aplicação nativa em C++. Ensinar conceitos de computação gráfica 3D com uma API de alto nível familiar.
- Como instalar threepp?
- Instale o pacote Python pelo PyPI: pip install threepp Compile o backend OpenGL com CMake presets: cmake --preset gl Compile a versão OpenGL: cmake --build --preset gl
- Onde consigo threepp?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/markaren/threepp
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Software de planetário 3D gratuito e de código aberto que reproduz um céu noturno realista em tempo real em computadores desktop.
Coleção de skills e plugins para Claude Code que ensinam Claude a usar Three.js, GSAP, React Three Fiber, Framer Motion, Babylon.js e outras ferramentas de 3D e animação para a web.
OGRE é um mecanismo de renderização modular em C++ que abstrai Vulkan, Direct3D e OpenGL para criar aplicações 3D em C++ e Python.
Gerador de loaders que cria bindings para C/C++ e outras linguagens para OpenGL, Vulkan, EGL, GLX e WGL com base nas especificações oficiais.
Um framework de UI multiplataforma em C++17, com backends de janela GLFW/SDL2 e renderização OpenGL/Vulkan, baseado em uma DSL declarativa.