Модель на 4B делает low-poly ассеты для Godot и отдаёт их файлом GLB

Модель на 4B делает low-poly ассеты для Godot и отдаёт их файлом GLB

В ночь на второе ноября на Hugging Face выложили Qwen3.5-4B-GLB-3D-Coder: небольшую локальную нейросеть для генерации 3D-моделей, которая по текстовому запросу собирает сцену Three.js и отдаёт из неё файл GLB. Это не официальный релиз Qwen, модель собрал разработчик под ником CCORE. Вес Q4_K_M около 2,7 ГБ, лицензия Apache 2.0, всё считается локально.

У меня к этой новости свой интерес. Я выбираю движок для разработки игр под Яндекс Игры, и узкое место там не код. Код на Godot или Cocos пишется за вечер, а десятки пропсов для уровня рисовать некому: в инди-геймдеве один человек либо платит художнику, либо ставит серые кубы и надеется заменить их позже. Генератор плейсхолдеров закрывает именно этот этап, и 4B для него хватает.

Как текст превращается в файл

Модель пиксели не рисует и готовый меш не отдаёт: текстовая часть тянет на 4,2 млрд параметров. Модель выдаёт один HTML-файл, и уже внутри код Three.js собирает геометрию, материалы, свет и кнопку Export GLB. Страницу открываешь в браузере, крутишь сцену мышкой, проверяешь результат и жмёшь кнопку. На выходе скачивается .glb, который Godot импортирует как обычную сцену: кладёшь в проект, ждёшь импорта, ставишь на уровень.

Причина в формате. GLB бинарный, генерировать двоичные данные напрямую тяжело, поэтому модель пишет код: он строит ассет и экспортирует его в файл. Попутный плюс в том, что код можно прочитать и поправить руками: поднять крышу, убрать лишние доски, сменить цвет и экспортировать заново.

Код Three.js в Godot не переносится. Переносится сам ассет, экспортированный в GLB. Когда говорят «Модель пишет для Godot», имеют в виду, что она выдаёт файл, который Godot понимает. Код в движке не исполняется.

GLB удобнее импорта через Blender. Файл .blend Godot открывает только с установленным Blender: движок вызывает его в фоне и конвертирует сцену в glTF. GLB убирает этот шаг, файл кладётся в проект и импортируется без сторонних программ. Для потока, где ассет рождается в браузере, это минус один инструмент в цепочке.

Во что обходится генерация 3D-моделей

Одна генерация это не одна строка. Ответы в среднем около 20 тысяч токенов, обучающие примеры доходили до 72 тысяч, и в карточке прямо предупреждают: лимит вывода в 8 тысяч токенов обрывает генерацию на середине и оставляет нерабочий HTML.

Я проверил это на своём ноутбуке, без видеокарты, Q4_K_M через Ollama, системный промпт из карточки и запрос «Create a mana potion». Модель генерировала 34 минуты и выдала 14 862 токена, примерно половина ушла в рассуждения. На коротких ответах темп держался около 11 токенов в секунду, на длинном упал до 7. В итоге вышел HTML на 24,6 КБ и 895 строк: на странице зелье в гранёном флаконе, подставка, подпись и блики. Кнопка Export GLB отдала файл на 98,5 КБ, внутри валидный glTF 2.0, 16 сеток, 1 840 треугольников и 14 материалов, всё с первой попытки и без правок руками.

Модель на 4B делает low-poly ассеты для Godot и отдаёт их файлом GLB

С видеокартой те же 20 тысяч токенов проходят заметно быстрее, а на слабом ноутбуке один пропс съедает полчаса.

Превью, финальные веса и датасет

Первый чекпоинт был предварительным: обучение шло, полные веса и датасет обещали позже. Пятого ноября вышла финальная версия с весами Safetensors на 17,49 ГБ в пяти файлах, шестого выложили датасет CCORE ThreeJS-3D-GLB-Assets: 3 918 примеров в 40 категориях, с отрендеренными превью и самими сетками, под лицензией MIT.

Q4_K_M весит 2,71 ГБ, Q8_0 4,48 ГБ, плюс отдельный визуальный проектор на 644 МиБ, если на вход хочется подавать картинку-референс. За месяц модель скачали больше 43 тысяч раз, у неё 300 лайков на Hugging Face. Дообучение было полным, без LoRA, то есть обновлялись все веса модели. Проект независимый: CCORE сам оплачивает подготовку данных, валидацию и обучение, а на следующий этап собирает поддержку.

Где обещание расходится с реальностью

Первое, что вылезает на практике: часть генераций приходится повторять или править код, английские промпты работают лучше, а материалы, свет и анимация в редакторе могут отличаться от того, что показывала страница в браузере. Это черновик, который надо посмотреть глазами.

Второе, что видно в комментариях. Пользователь под ником philmarcracken заметил, что модель сильна именно в статичных ассетах. Персонажи с ригом у неё получаются хуже. Другой спросил про лишние вершины. У простых пропсов полигонов немного, у сложных сцен их заметно больше, и запас для улучшения тут ещё есть. Ещё один отзыв был коротким: «they all look meh», то есть выглядят так себе. Про фотореализм вопрос закрыт сразу: модель обучена на low-poly и другого стиля не обещает.

Третье, что я бы проверил руками: счётчик сеток. На демо-странице с осадной площадкой он показывает 607 мешей, у моего зелья вышло 16. Это объекты сцены; треугольники и вызовы отрисовки считаются отдельно, и в Godot всё видно в дереве сцены. Для веба, где каждый лишний объект ест производительность, разница принципиальная.

Независимых замеров нет. Сравнение с DeepSeek V4.1 Flash в карточке сделано на стороне проекта, и большинство примеров это тесты разработчика. Скачивания и лайки показывают любопытство; о качестве они ничего не говорят.

Кому это экономит вечер

3D-модели для игр здесь нужны в основном как плейсхолдеры для прототипа: ящики и бочки на уровне, болванки для джема, когда арт нужен сегодня. Здесь модель работает: генерация, импорт, быстрая замена серого куба на что-то с силуэтом. Если нужен единый арт-стиль, скелетная анимация и текстуры под камеру игрока, это по-прежнему работа художника.

Любопытный приём из обсуждения: один разработчик подключил модель специалистом в свой харнесс. Большая модель с vision смотрит на результат 4B, находит ошибки и просит переделать. То есть 4B делает черновик, а старший товарищ его проверяет. В агентских пайплайнах это практичнее, чем ждать идеального результата с первой попытки.

Для браузерных игр вроде тех, что собираются под Яндекс Игры, у подхода есть дополнительный смысл: low-poly ассеты для игр весят мало, а размер сборки там важнее красоты. Реальную цену сцены видно только на целевой сборке.

Дальше обещаны 100 тысяч примеров и модели, которые проверяют свою работу итерациями, а на 10 и 11 ноября анонсированы ещё две модели, обе меньше текущей. Пока это узкий инструмент с одной задачей: он превращает фразу в файл, который открывается в редакторе.

Источники:

22
11