design-3d
Ce que je fais
- Reconstruit un objet d'une image de référence en modèle Three.js 100 % code (TypeScript).
- Sortie :
THREE.Groupprêt à animer (pivots, sockets,userData.tick). - Pipeline en passes avec gates qualité — jamais de mesh files, jamais de photogrammétrie.
Quand l'utiliser
- Héros de landing avec objet produit 3D (montre, casque, earbuds, appareil).
- Objet animé en boucle (rotation, idle) sur page SaaS.
- Diorama / scène isométrique (illustration de fonctionnalité).
- NE PAS l'utiliser pour : personnages photoréalistes, environnements, jeux (hors périmètre Agence Bulles).
Prérequis
- Repo cloné :
git clone https://github.com/img2threejs/img2threejs.git(sous~/.config/opencode/skills/design-3d/ou lien symbolique). - Python 3.10+ (stdlib uniquement, rien à installer).
- Invocation : image de référence fournie (fichier ou capture).
Pipeline (une passe à la fois, gates à chaque étape)
- Intake :
python3 forge/stage1_intake/probe_image.py <image>— métadonnées + problèmes techniques. - Assessment :
python3 forge/stage2_spec/new_pre_spec_assessment.py "Nom" --image <image> --out assessment.json— classifier objet, score complexité. - Detail inventory : énumérer les détails identitaires (gloss, biseaux, vis, lignes gravées, usure). Chaque détail doit être placé sur un composant réel — jamais faker.
- Spec :
python3 forge/stage2_spec/new_sculpt_spec.py "Nom" --image <image> --assessment assessment.json --out spec.jsonpuisvalidate_sculpt_spec.py spec.json --strict-quality— blocage si spec superficielle. - Build par passes :
blockout → structural → form → material → surface → lighting → interaction → optimizationviagenerate_threejs_factory.py. - Review : comparaison côte-à-côte (référence vs render) — passer uniquement si la passe matche. Ne pas avancer sans gate passé.
- Runtime : exposer pivots/sockets pour ce qui bouge +
userData.tickpour idle loop.
Matériaux
- Dériver classe de finition + stops de dégradé depuis les pixels de référence, pas de mémoire.
- Flagguer toute couleur qui ne survivra pas au tone-mapping.
- Registry de matériaux Three.js versionné (
docs/materials/README.md).
Règles
- Fidélité honnête : une image ne révèle pas les faces cachées → inférer par miroir, signaler les zones non vues comme basse confiance. « Impossible d'atteindre cette fidélité depuis cette image » est un résultat valide.
- Token-efficient : les scripts Python valident/gatent, le modèle ne juge que visuellement (une sheet de comparaison par passe). Ne pas re-lire tout le modèle à chaque itération.
- Fail-closed : le générateur bloque (
BLOCKED+ métriques + cause) plutôt que d'écrire une factory non conforme.--allow-nonstrictuniquement pour fixtures de test. - Charger
shared-eco-tokensen parallèle. - Le modèle généré est du TypeScript diffable + spec JSON — versionnable, pas de binaires multi-Mo.
Assets
- Référence pipeline :
docs/ARCHITECTURE.mddu repo img2threejs. - Scripts :
forge/(Python stdlib). - Rubrics :
grimoire/(intake, character, review, build). - Exemples : galerie live https://img2threejs.github.io/img2threejs-showcase/