Repolode
markaren

markaren/threepp

Biblioteca 3D multiplataforma en C++20 con una API al estilo de three.js, backends de OpenGL y Vulkan, bindings de Python y simulación de física y sensores.

Estrellas
1,208
Forks
156
Issues abiertos
3
Último commit
ayer

¿Qué es?

threepp es una biblioteca 3D en C++20 que sigue la API de alto nivel de three.js, por lo que quienes ya conocen three.js pueden escribir código de escenas con objetos similares, como Mesh, Scene, luces, cámaras y loaders. El renderizado funciona con un backend portable de OpenGL o con un renderer diferido de Vulkan que incorpora sombras trazadas por rayos, reflejos, oclusión ambiental e iluminación global; el mismo código de escena funciona con ambos.

Además del renderizado, el proyecto incluye un editor de escenas, simulación de robots y cuerpos rígidos basada en PhysX, sensores simulados como lidar, profundidad, cámara e IMU, entre otros, que pueden generar etiquetas de ground truth para datos sintéticos, y vuelos hardware-in-the-loop con ArduPilot. Los bindings de Python se publican en PyPI y ofrecen acceso a los renderers, a etiquetas en forma de arrays de NumPy y a articulaciones de PhysX.

El proyecto se presenta como adecuado para investigación, creación de prototipos y enseñanza, más que para motores de producción, y señala que las API cambian entre versiones. El backend de Vulkan requiere extensiones de ray tracing, por lo que no funciona en macOS, donde se usa en su lugar el renderer de OpenGL.

Funciones clave

  • 01API al estilo de three.js que abarca mallas, luces, cámaras, controles, animación y postprocesamiento.
  • 02Loaders para glTF, OBJ, STL, COLLADA, SVG, URDF, FBX (opcional) y formatos de imagen y HDR habituales.
  • 03Renderer diferido de Vulkan con sombras trazadas por rayos, reflejos, AO y GI.
  • 04Sensores simulados, como lidar, cámaras de profundidad y color, IMU y encoders de articulaciones.
  • 05Integración con PhysX para cuerpos rígidos, articulaciones, cuerpos blandos y vehículos.
  • 06Bindings de Python instalables desde PyPI con compatibilidad con renderizado headless.

Casos de uso

  • Crear simulaciones de robótica o sistemas autónomos que requieran modelos de sensores y física en C++.
  • Generar datos sintéticos etiquetados de imágenes y profundidad para entrenar sistemas de percepción.
  • Portar código de escenas al estilo de three.js a una aplicación nativa en C++.
  • Enseñar conceptos de gráficos 3D con una API familiar de alto nivel.

Inicio rápido

  1. 1

    Instala el paquete de Python desde PyPI

    pip install threepp
  2. 2

    Compila el backend de OpenGL con CMake presets

    cmake --preset gl
  3. 3

    Compila la versión de OpenGL

    cmake --build --preset gl

Antes de usarlo

  • El backend de Vulkan requiere GPU compatibles con trazado de rayos y no funciona en macOS; en ese sistema, usa GLRenderer.
  • El proyecto está pensado para investigación, creación de prototipos y enseñanza, no para producción, y las API cambian entre versiones.
  • La capa de simulación (Vulkan, sensores, PhysX, editor y Python) es la que evoluciona más rápido, y el visor Vulkan del editor se ofrece según el mejor esfuerzo posible.

En colecciones

Temas

Preguntas frecuentes

¿Qué es threepp?
Biblioteca 3D multiplataforma en C++20 con una API al estilo de three.js, backends de OpenGL y Vulkan, bindings de Python y simulación de física y sensores. threepp es una biblioteca 3D en C++20 que sigue la API de alto nivel de three.js, por lo que quienes ya conocen three.js pueden escribir código de escenas con objetos similares, como Mesh, Scene, luces, cámaras y loaders. El renderizado funciona con un backend portable de OpenGL o con un renderer diferido de Vulkan que incorpora sombras trazadas por rayos, reflejos, oclusión ambiental e iluminación global; el mismo código de escena funciona con ambos.
¿threepp es gratuito? ¿Qué licencia tiene?
threepp es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿threepp sigue mantenido?
Mantenimiento activo. El último commit de threepp fue el 6 nov 2026.
¿Para qué puedo usar threepp?
Crear simulaciones de robótica o sistemas autónomos que requieran modelos de sensores y física en C++. Generar datos sintéticos etiquetados de imágenes y profundidad para entrenar sistemas de percepción. Portar código de escenas al estilo de three.js a una aplicación nativa en C++. Enseñar conceptos de gráficos 3D con una API familiar de alto nivel.
¿Cómo se instala threepp?
Instala el paquete de Python desde PyPI: pip install threepp Compila el backend de OpenGL con CMake presets: cmake --preset gl Compila la versión de OpenGL: cmake --build --preset gl
¿Dónde consigo threepp?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/markaren/threepp

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados