Repolode
markaren

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

    Instale o pacote Python pelo PyPI

    pip install threepp
  2. 2

    Compile o backend OpenGL com CMake presets

    cmake --preset gl
  3. 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