markaren/threepp

A cross-platform C++20 3D library with Python bindings and the high-level API of three.js.

它解决了什么问题

threepp 是一个跨平台的 C++20 3D 库,将 three.js 高阶且易用的 API 带入 C++ 生态系统。它为需要 Web 风格 3D API 灵活性,但同时要求 C++ 性能与硬件访问能力的开发者提供了一个统一的场景图,包含先进的渲染后端以及用于机器人研究的集成物理与传感器模拟。

运作原理

该库使用单一场景图,可通过两种不同的后端进行渲染:可移植 OpenGL 渲染器与延迟渲染 Vulkan 渲染器。Vulkan 后端支持光线追踪阴影、反射与全局照明等高阶功能。在模拟方面,它集成了用于刚体与关节模拟的 PhysX,以及用于软体/颗粒地面模拟的 NVIDIA Warp。它同时提供 Python 绑定,让用户能在 Python 中创建 3D 场景并执行模拟,同时保持 C++ 的性能。

目标客群

它主要为机器人与 AI 领域的研究人员、学生与原型开发者设计,特别是那些正在构建数字孪生、用于感知传感器(激光雷达、声纳、事件相机)的合成数据生成,以及在模拟环境中训练 RL 代理的开发者。

特色亮点

  • three.js 同步性: 实现了 three.js API 的全面移植,包含网格 (meshes)、灯光、相机与加载器 (glTF, OBJ, STL 等)。
  • 先进渲染: 具备光线追踪、DLSS/FSR 3.1 升频与体积雾的 Vulkan 后端。
  • 机器人模拟: 集成 PhysX 用于机器人关节 (URDF/xacro) 模拟,以及具备合成数据地面真值标签的模拟传感器。
  • Python 集成: 完整的 Python 绑定,并包含用于强化学习的 GPU 向量化 PPO 堆栈。
  • 硬件在环 (Hardware-in-the-Loop): 支持与 ArduPilot 的同步飞行模拟。
  • 高斯泼溅 (Gaussian Splatting): 支持渲染 .ply 与 SOG 扫描,并能将扫描烘焙为物理表面。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目