Как приручить нейросетевое 3D без превращения модели в монолитную глыбу
Представьте, что вы попросили нейросеть сгенерировать модель стиральной машины. На выходе вы получаете красивый, детальный... цельный кусок пластика. Дверца не открывается, барабан не крутится, кнопки — это просто неровности на текстуре. Если вам нужно что-то поправить, придется лететь в Blender и часами разрезать этот «монолит» на части вручную.
Знакомая история? Большинство современных генераторов вроде Meshy или Tripo работают именно так: они создают единую сетку (mesh), которую крайне сложно редактировать. Разработчики из RareSense решили подойти к вопросу иначе и выкатили Nova3D.
Что такое Nova3D и почему это не просто очередной генератор
Проект Nova3D — это инструмент, который создает не просто 3D-объекты, а исполняемые сценарии для их сборки. Вместо того чтобы выплевывать готовую геометрию, нейросеть пишет Python-скрипт под капотом Blender. В итоге вы получаете структурированный файл формата GLB, где каждая деталь — это отдельный объект с понятным названием.
Интересно, что авторы не стали изобретать свой велосипед для геометрии. Они используют граф сцены Blender как основу. Это дает им преимущество перед системами на базе OpenSCAD, которые хороши в чертежах, но пасуют перед органическими формами. Nova3D умеет и в то, и в другое.
Чем этот подход удобен на практике
Я часто вижу, как ИИ-генерация 3D упирается в невозможность локальных правок. Nova3D решает эту проблему за счет нескольких фишек.
Хирургическая точность правок
Если вам не нравится ручка у сгенерированной чашки, вы можете заменить или переделать только её. Вам не нужно перегенерировать всю модель целиком. Это экономит токены, время и нервы.
Честные материалы
В обычных диффузионных моделях текстуры часто «запекаются» прямо в вершины (vertex colors). Здесь же мы имеем дело с нормальным PBR-маппингом. Это значит, что металл будет блестеть как металл, а стекло будет прозрачным сразу после импорта в ваш движок.
Читаемая иерархия
Части объекта не просто разделены, они логически связаны. Если у вас есть робот, то рука будет дочерним объектом по отношению к плечу. Для разработчиков игр это критически важно: можно сразу накидывать анимацию или скрипты взаимодействия без долгой подготовки ассета.
Как это устроено внутри
Репозиторий, о котором идет речь — это клиентская часть, написанная на Flutter. Она подключается к облачному бэкенду Nova3D. Сама логика генерации «модель-в-код» довольно требовательна к ресурсам, поэтому ребята используют связку из мощных LLM.
Вы можете сами выбирать «мозги» для генерации в настройках. Поддерживаются:
- Claude 3.5 Sonnet (пожалуй, лучший вариант для написания кода);
- GPT-4o;
- Gemini 1.5 Pro.
Кстати, авторы сразу предупреждают: бесплатные ключи Gemini лучше не использовать. Процесс генерации скриптов потребляет очень много токенов, и бесплатные лимиты вылетают быстрее, чем вы успеете увидеть результат.
Как запустить проект у себя
Поскольку это Flutter-приложение, вам понадобится SDK версии 3.24 или выше. Процесс запуска стандартный:
# Клонируем и ставим зависимости
git clone https://github.com/RareSense/Nova3D.git
cd Nova3D
flutter pub get
# Запускаем локальный интерфейс
# Важно: порт 5555 нужен для корректной работы OAuth (авторизация через Google)
flutter run -d web-server --web-hostname 0.0.0.0 --web-port 5555
После запуска открываете http://127.0.0.1:5555, вбиваете свой API-ключ от OpenAI или Anthropic в настройках и можно пробовать. В комплекте идет встроенный вьювер на Three.js, где можно сразу покрутить модель, поправить материалы или проверить привязку объектов.
Сравнение с конкурентами
В README есть наглядные примеры того, как Nova3D справляется там, где пасуют другие. Например, NVIDIA PartPacker или сегментация от Tripo пытаются разрезать уже готовую «глыбу» на куски. Nova3D же изначально строит объект по деталям.
Разница в том, что при «разрезании» границы объектов часто получаются рваными и неточными. В Nova3D границы четкие, потому что это изначально разные меши.
Кому стоит на это взглянуть
Я бы посоветовал этот проект двум категориям людей. Во-первых, инди-разработчикам, которым нужно быстро наполнить сцену уникальными, но функциональными предметами (мебель, пропсы, техника). Во-вторых, тем, кто интересуется связкой LLM + CAD/Blender. Код клиента открыт, и это отличный пример того, как можно упаковать сложную нейросетевую генерацию в удобный UI.
Конечно, проект пока привязан к их бэкенду (который проприетарный), но сама концепция «генерация через код Blender» выглядит гораздо более жизнеспособной для продакшена, чем обычные облака точек или воксели.
Единственный минус на данный момент — закрытость серверной части. Но даже как инструмент для генерации чистовых ассетов через API, Nova3D дает гораздо больше контроля, чем конкуренты. По крайней мере, вам не придется объяснять художнику, почему у шкафа дверцы приварены к корпусу намертво.

