Революция в токенах: как Sand3d меняет правила игры
Sand3d — это библиотека на Python, построенная поверх Blender (bpy), которая решает главную проблему генерации 3D-моделей нейросетями: избыточность кода. В отличие от стандартных скриптов Blender, CadQuery или FeatureScript, где описание одной детали может занимать сотни строк, Sand3d использует семантический подход. Модель описывает как создается форма, а не просто перечисляет координаты вершин.
Ключевое преимущество — экономия контекстного окна. Одна деталь в Sand3d требует в 2–6 раз меньше токенов, чем аналогичный код на других платформах. Вся документация API умещается в ~3 600 токенов, что позволяет легко встроить её в системный промпт LLM без риска переполнения памяти модели.
Детерминизм и семантика: почему это важно для разработчиков
Библиотека отказалась от вычисления координат «вручную» в пользу именованных ссылок. Части, ребра и грани достаются по имени, что делает код читаемым для человека и предсказуемым для ИИ. Программа гарантирует детерминизм: один и тот же код всегда генерирует идентичную сетку (mesh) бит-в-бит.
Пример сложности: передняя загрузочная стиральная машина собирается из 38 строк кода. Скрипт явно описывает корпус, барабан, дверь со стеклом и ручкой, ящик для порошка и диск, а также четыре типа соединений (шарниры, оси), определяющие их движение.
Технические характеристики и экспорт
Sand3d поддерживает экспорт в основные форматы 3D-индустрии одним вызовом функции. Длина единиц измерения по умолчанию — метры, но внутренняя работа часто ведется в миллиметрах для точности.
| Формат | Что содержит | Для чего используется |
|---|---|---|
| GLB | Меш, материалы, иерархия узлов с данными о суставах | Веб-просмотр, игровые движки |
| URDF | Ссылки на движущиеся части, ограничения суставов, OBJ-меш | ROS, PyBullet, MuJoCo, Isaac |
| USDA | Дерево сцены OpenUSD (UsdGeom, UsdPhysics), материалы | NVIDIA Omniverse, Isaac Sim |
| OBJ / STL | Только меш-геометрия в текущей позе | Любые 3D-редакторы, слайсеры для 3D-печати |
Интеграция с LLM и датасеты
Разработчики рекомендуют помещать файл docs/api.md в системный промпт агента. Библиотека предлагает восемь правил сборки: сначала план, затем детали, затем части. Для обучения моделей уже подготовлены датасеты на Hugging Face (лицензия CC BY 4.0), включающие:
- sand3d-objaverse: бытовые объекты, переписанные в код.
- sand3d-cad: механические детали из публичных CAD-моделей.
- sand3d-articraft: сочлененные объекты с объявленными суставами.
- sand3d-simready: ассеты для симуляции от NVIDIA.
Установка осуществляется стандартно через pip: pip install sand3d. Библиотека требует Python 3.11 или 3.13 (рекомендуется 3.13) и совместима с Blender 5.2 LTS и 4.5 LTS.
Источник: Github ↗
