Движок физически корректного рендеринга в реальном времени для Android, iOS, Linux, macOS, Windows и WebGL2, рассчитанный на компактность и эффективность на Android.
markaren/threepp
Кроссплатформенная 3D-библиотека на C++20 с API в стиле three.js, бэкендами OpenGL и Vulkan, привязками к Python, а также симуляцией физики и датчиков.
- Звёзды
- 1,208
- Форки
- 156
- Открытые issues
- 3
- Последний коммит
- вчера
Что это?
threepp — это 3D-библиотека на C++20 с высокоуровневым API, повторяющим three.js. Разработчики, знакомые с three.js, могут создавать сцены с похожими объектами: Mesh, Scene, источниками света, камерами и загрузчиками. Для рендеринга можно использовать переносимый бэкенд OpenGL или отложенный рендерер Vulkan с трассировкой лучей для теней и отражений, а также с затенением окружающего света и глобальным освещением. Один и тот же код сцены работает с обоими бэкендами.
Помимо рендеринга, проект включает редактор сцен, симуляцию роботов и твёрдых тел на базе PhysX, а также симуляцию lidar, датчиков глубины, камер, IMU и других датчиков, способных формировать эталонные метки для синтетических данных. Кроме того, поддерживается управление полётом с аппаратурой в контуре через ArduPilot. Привязки к Python опубликованы на PyPI и предоставляют доступ к рендерерам, меткам в виде массивов NumPy и артикуляциям PhysX.
Проект позиционируется как решение для исследований, прототипирования и обучения, а не как основа для production-движков; также отмечается, что API меняется от релиза к релизу. Для бэкенда Vulkan нужны расширения трассировки лучей, поэтому на macOS он не работает — вместо него используется рендерер OpenGL.
Ключевые возможности
- 01API в стиле three.js для работы с мешами, источниками света, камерами, контроллерами, анимацией и постобработкой.
- 02Загрузчики для glTF, OBJ, STL, COLLADA, SVG, URDF, FBX (подключается отдельно), а также распространённых графических форматов и HDR.
- 03Отложенный рендерер Vulkan с трассировкой лучей для теней и отражений, а также с AO и GI.
- 04Симуляция датчиков, включая lidar, камеры глубины и цвета, IMU и энкодеры суставов.
- 05Интеграция PhysX для твёрдых и мягких тел, артикуляций и транспортных средств.
- 06Привязки к Python, которые можно установить через PyPI; поддерживается безоконный рендеринг.
Сценарии использования
- Создание симуляций робототехники или автономных систем на C++ с моделями датчиков и физикой.
- Генерация размеченных синтетических изображений и данных о глубине для обучения систем восприятия.
- Перенос кода сцен в стиле three.js в нативное приложение на C++.
- Обучение основам 3D-графики с помощью знакомого высокоуровневого API.
Быстрый старт
- 1
Установите пакет Python из PyPI
pip install threepp - 2
Соберите бэкенд OpenGL с помощью CMake presets
cmake --preset gl - 3
Скомпилируйте сборку OpenGL
cmake --build --preset gl
Что важно знать
- Для бэкенда Vulkan требуются GPU с поддержкой трассировки лучей; на macOS он не работает. В этом случае используйте GLRenderer.
- Проект предназначен для исследований, прототипирования и обучения, а не для промышленной эксплуатации; API меняются от релиза к релизу.
- Слой симуляции (Vulkan, датчики, PhysX, редактор, Python) развивается быстрее всего, а поддержка Vulkan-вьюпорта редактора предоставляется по возможности.
В подборках
Темы
Частые вопросы
- Что такое threepp?
- Кроссплатформенная 3D-библиотека на C++20 с API в стиле three.js, бэкендами OpenGL и Vulkan, привязками к Python, а также симуляцией физики и датчиков. threepp — это 3D-библиотека на C++20 с высокоуровневым API, повторяющим three.js. Разработчики, знакомые с three.js, могут создавать сцены с похожими объектами: Mesh, Scene, источниками света, камерами и загрузчиками. Для рендеринга можно использовать переносимый бэкенд OpenGL или отложенный рендерер Vulkan с трассировкой лучей для теней и отражений, а также с затенением окружающего света и глобальным освещением. Один и тот же код сцены работает с обоими бэкендами.
- threepp можно использовать бесплатно? Какая у него лицензия?
- threepp распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- threepp всё ещё поддерживается?
- Активно поддерживается. Последний коммит в threepp — 6 нояб. 2026 г..
- Для чего можно использовать threepp?
- Создание симуляций робототехники или автономных систем на C++ с моделями датчиков и физикой. Генерация размеченных синтетических изображений и данных о глубине для обучения систем восприятия. Перенос кода сцен в стиле three.js в нативное приложение на C++. Обучение основам 3D-графики с помощью знакомого высокоуровневого API.
- Как установить threepp?
- Установите пакет Python из PyPI: pip install threepp Соберите бэкенд OpenGL с помощью CMake presets: cmake --preset gl Скомпилируйте сборку OpenGL: cmake --build --preset gl
- Где скачать threepp?
- Исходный код и инструкции по установке — на GitHub: https://github.com/markaren/threepp
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Бесплатный планетарий с открытым исходным кодом, который в реальном времени показывает реалистичное 3D-небо на компьютере.
Подборка навыков и плагинов для Claude Code, обучающих Claude работе с Three.js, GSAP, React Three Fiber и другими инструментами для веб-3D и анимации.
OGRE — модульный движок рендеринга на C++, который объединяет Vulkan, Direct3D и OpenGL для создания 3D-приложений на C++ и Python.
Генератор загрузчиков для C/C++ и других языков на основе официальных спецификаций OpenGL, Vulkan, EGL, GLX и WGL.
Кроссплатформенный UI-фреймворк на C++17 с GLFW/SDL2 для окон и OpenGL/Vulkan для рендеринга, построенный вокруг декларативного DSL.