От фото к коду: новый подход к 3D-генерации
Проект img2threejs (автор hoainho) предлагает альтернативу традиционной фотограмметрии и нейросетевой генерации мешей. Система создает 3D-объекты, записывая их как процедурный код на TypeScript для библиотеки Three.js. Результат — это не бинарный файл (.obj или .gltf), а исполняемый скрипт, который рендерит геометрию, материалы и освещение прямо в браузере.
Ключевое отличие: модель готова к анимации сразу после генерации. Система выстраивает иерархию объектов (pivots, sockets, colliders), что позволяет мгновенно интегрировать объект в игровые движки или интерактивные веб-приложения без дополнительной обработки.
Пайплайн: 8 этапов «скульптинга»
Генерация не происходит в один шаг. Процесс разделен на строгие этапы (passes), каждый из которых проходит проверку «зрением» AI-агента (Claude Code, Codex или OpenCode). Если качество не соответствует порогу, система запускает самодиагностику: уточняет спецификацию или исправляет код.
| Этап (Pass) | Задача | Критерий успеха |
|---|---|---|
| 1. Blockout | Базовые пропорции и форма | Соответствие габаритам референса |
| 2. Structural | Сборка компонентов | Правильные соединения частей |
| 3. Form refinement | Детализация форм | Наличие скруглений, фасок, выемок |
| 4. Material | PBR-материалы | (Metallic/Roughness)Разделение каналов, отсутствие артефактов |
| 5. Surface | Текстуры и следы износа | Передача царапин, грязи, паттернов |
| 6. Lighting | (Lighting)Освещение и тени | Реалистичные блики и отражения |
| 7. Interaction | Анимационные узлы | Наличие точек вращения и коллизий |
| 8. Optimization | Очистка кода | Минимальный размер токенов и файлов |
Токен-эффективность: почему это выгодно
Основная проблема AI-генерации 3D — огромные затраты контекста. img2threejs решает это за счет разделения труда:
- Python-скрипты берут на себя рутину: валидацию JSON, чтение PNG (через стандартные библиотеки
structиzlib), создание сравнительных листов (side-by-side sheets) и управление состоянием пайплайна. Никакихpipилиnumpy. - AI-модель тратит токены только на визуальную оценку: смотрит на один сгенерированный скриншот сравнения и принимает решение «проход/непроход».
- Пошаговая генерация: Код генерируется только для текущего этапа. Модель не перечитывает весь проект при каждой итерации, что резко снижает стоимость запроса.
Примеры и технические детали
Проект поддерживает два основных типа объектов: hard-surface (техника, оружие, предметы) и characters (персонажи с анатомической привязкой). Для персонажей есть опциональный режим «projection-first», который проецирует текстуры с фото на параметрический шаблон для максимального сходства.
В галерее проекта представлены такие объекты, как:
- Sony WF-1000XM3 (наушники + кейс)
- Дробовик ISSACA 12 Gauge
- Нож Gerber Paracord
- Изометрическая диорама дома Дораэмона
Для запуска требуется Python 3.10+. Установка сводится к клонированию репозитория в папку /.claude/skills/ и вызову команды /img2threejs с указанием пути к изображению.
Источник: Github ↗
