CommunityImagegithub.com

m4bwav/polywright-generate

Génère des modèles 3D à partir de prompts, dessins, concepts ou photos : soit par code (build123d, CadQuery, OpenSCAD, bpy) pour des pièces dimensionnées, soit par générateurs (ComfyUI avec TRELLIS.2, Pixal3D, Hunyuan3D-2) pour des formes organiques, avec texturing et enregistrement de licence.

Qu'est-ce que polywright-generate ?

Cette compétence est conçue pour les agents IA comme Claude Code, Cursor, Codex ou tout assistant de développement spécialisé dans la modélisation 3D. Elle offre une approche duale : la génération par **code** (build123d, CadQuery, OpenSCAD pour les modèles exacts, dimensionnés et imprimables ; bpy pour les kits de jeux et bâtiments) et par **générateurs** (TRELLIS.2, Pixal3D, Hunyuan3D-2 via ComfyUI, ou API hébergées comme Meshy, Tripo, Rodin) pour les formes organiques ou sculpturales. Le point d'entrée principal est `pw.py gen`, avec support de workflows ComfyUI personnalisés. La compétence guide l'agent dans le choix du moteur selon l'objet (table de décision intégrée), l'étape de texturing (TRELLIS.2, Pixal3D, StableGen) et l'enregistrement des licences (MIT, communauté Tencent, etc.) via `pw.py manifest`. Elle inclut des garde-fous : vérification des dimensions, des épaisseurs de paroi, et rattrapage des erreurs de forme par rendus et mesures. Les sorties brutes sont toujours à retravailler (redimensionnement, finition, impression).

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/m4bwav/polywright/tree/HEAD/skills/polywright-generate

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait polywright-generate ?

Deux moteurs fabriquent des modèles imaginés : le code (exact, éditable, net, dimensionné) et les générateurs (organiques, rapides, approximatifs, topologie brouillonne). Choisissez selon l'objet, pas par habitude. Retour au hub : ../polywright/SKILL.md. Tableau des modèles avec licences et VRAM : references/generators.md. Modèles de code : references/code-modeling.md.

Étape 1 : code ou générateur ?

ObjetMoteur
Possède des dimensions, s'emboîte avec quelque chose, est principalement des plans et des cylindres (support, boîtier, étagère, bâtiment, panneau, caisse)code : build123d, CadQuery ou OpenSCAD pour les pièces imprimables et CAO ; bpy pour les kits de jeux et bâtiments
De nombreuses variantes d'une même chose (clôtures, maisons, rochers, une forêt)code procédural (bpy, Geometry Nodes) à partir de quelques assets héroïques
Pièce unique organique ou sculpturale (statue, créature, personnage, tronc d'arbre, nourriture)générateur à partir d'une image de référence ou d'un ensemble multi-vues
Personnage qui s'animeragénérateur pour la forme, puis retopologie et armature (polywright-finish)
Un objet réel dont vous avez une photoessayez d'abord polywright-capture ; un générateur devine les faces cachées

Les diffusions arrondissent les bords nets et inventent des dimensions ; le code ne peut pas sculpter un visage de lion. De nombreux bons modèles sont les deux : un piédestal codé avec un bec de lion généré assemblé par booléen.

Étape 2 : générateurs

  1. Références d'abord (polywright-references) : une image propre sur fond blanc, lumière plate, peu de perspective, 1024 px ; pour les personnages une pose en A ; pour un meilleur dos, un jeu avant/gauche/arrière/droite à la même échelle.
  2. python ../polywright/scripts/pw.py doctor montre les hôtes ComfyUI et leurs checkpoints 3D.
  3. Lancez-en un :
    • Hunyuan3D-2 intégré (forme uniquement, environ 100 s sur une carte 16 Go à 30 pas, octree 256) : pw.py gen --image refs/front.png [--left L --back B --right R] --out work/raw.glb [--seed N]
    • Tout autre workflow ComfyUI, au format API ou sauvegardé par l'éditeur (un fichier modèle fonctionne tel quel ; pw.py le convertit avec les définitions de nœuds de l'hôte) : pw.py gen --image refs/front.png --workflow <fichier> --out work/raw.glb. TRELLIS.2 et Pixal3D avec textures PBR : le modèle ComfyUI 3d_pixal3d_trellis2_image_to_model.json (dans le dossier comfyui_workflow_templates_json/templates de l'installation ComfyUI) ; son commutateur sélectionne Pixal3D par défaut, donc ajoutez --set 316.value=true pour TRELLIS.2. Sur une carte 16 Go (temps GPU) : TRELLIS.2 377 s à froid (73 à 190 s à chaud), à l'endroit, le meilleur détail ; Pixal3D 329 s, dans le cadre de la caméra (incliné : pw.py convert IN OUT --level) ; tous deux environ 700k triangles avec des textures PBR 4096 px ; Hunyuan3D-2 99 s, forme uniquement. --set NODE.input=VALUE modifie n'importe quelle entrée.
    • API hébergées (Meshy a la grille tarifaire publique la plus claire ; Tripo, Rodin, Hunyuan 3.x) : via leur propre API ou MCP, ou les nœuds partenaires ComfyUI. Dites le coût avant de dépenser.
  4. Chaque exécution écrit <out>.gen.json (hôte, modèle, graine, étapes). Enregistrez le modèle et sa licence : pw.py manifest <dossier> --add-tool "<modèle>" --tool-version <v>.
  5. Regardez : pw.py inspect work/raw.glb puis pw.py render work/raw.glb --out renders/raw. Comparez la feuille avec la référence : le dos et le dessous sont des suppositions ; les membres supplémentaires, les parties fines fondues et les espaces fusionnés sont courants. Régénérez avec une autre graine ou de meilleures vues avant de corriger à la main. Les lettres et chiffres peints se transforment en bavures et les couleurs dérivent : pw.py mark efface et redessine le marquage et déplace la couleur vers celle de la photo (L-003 ; figures pour vidéo).

La sortie brute n'est pas mise à l'échelle, est dense (centaines de milliers de triangles), souvent non-manifold, sans UV, Y-up. Elle n'est jamais prête pour le jeu ni pour l'impression telle quelle : mettez-la à l'échelle et finissez-la (polywright-finish, polywright-print).

Étape 3 : code

Écrivez un script qui construit l'objet à partir de pièces nommées avec des dimensions réelles, exécutez-le, regardez-le, corrigez-le :

  • bpy : pw.py bpy build.py -- --out work/model.blend (piège selon la version de Blender : polywright-blender).
  • build123d ou CadQuery (Python) ou OpenSCAD (openscad -o out.stl model.scad, backend Manifold) pour les solides : étanches par construction, exporte STEP pour la CAO et STL ou 3MF pour l'impression.

Mettez des vérifications dans le script (taille globale, jeux entre pièces, épaisseur de paroi, nombre de pièces) et imprimez-les ; les agents corrigent bien les crashs provenant des tracebacks, mais les erreurs de forme uniquement à partir des mesures et des rendus. Deux tentatives sur un traceback, puis repensez.

Étape 4 : textures pour un maillage généré ou codé

TRELLIS.2 et Pixal3D intègrent les textures PBR dans leur workflow. Pour un maillage sans texture : l'étape de texturation conditionnée par la forme de TRELLIS.2, StableGen (extension Blender sur un backend ComfyUI, GPLv3) projetant SDXL, Flux ou Qwen Image 2.1 depuis des caméras (0.4.0 ajoute la retexturation régionale masquée et l'auto-armature SkinTokens ; Qwen Image 2.1 et FIBO 2.0 Edit sont non commerciaux, MOSS Image est Apache-2.0), ou des matériaux simples issus de bibliothèques CC0 (polywright-references). La peinture Hunyuan 2.1 nécessite environ 21 Go.

Licences (enregistrer par exécution)

TRELLIS.2, Pixal3D, TripoSG, PartCrafter : MIT. Poids ouverts Hunyuan3D : licence communautaire Tencent (non autorisée dans l'UE, le Royaume-Uni ou la Corée du Sud ; plafond de 1M MAU ; les sorties ne peuvent pas entraîner d'autres modèles). SF3D et SPAR3D : licence communautaire Stability (gratuite en dessous de 1 M USD de revenus). Hébergé : les conditions du plan. Poids de recherche uniquement (PartPacker, Lyra, CHORD) restent en dehors de tout ce qui est expédié. Les magasins exigent la divulgation de l'IA (polywright route la référence).

Maintenance

Unité persistante, niveau fast (les modèles et les licences changent chaque mois). Compagnons : RESEARCH.md, CHANGELOG.md, LEARNINGS.md, TESTS.md avec evals/evals.json, MAINTENANCE.md, état dans evergreen.json. Lisez evergreen.json à chaque utilisation ; rafraîchissez quand nécessaire.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

m4bwav/polywright

Start here whenever a task needs a 3D model and no sibling below clearly owns it: a model of a real or imagined thing for a game (Unity, Roblox, Unreal, three.js), a 3D print, AI video or AR, or another plugin asking for a mesh. Picks the route (find, capture, generate, code), scaffolds the asset folder and manifest other plugins read, and runs pw.py (inspect, render a sheet, convert, check a budget, bpy headless, match a picture's camera, army blockouts with depth and pose passes for AI...

m4bwav/polywright-blender

Use whenever Blender is scripted, automated or debugged, before writing any bpy code: headless runs that report errors (pw.py bpy), the bpy API traps models still write in Blender 5.x (removed importers, renamed sockets, EEVEE names), tested recipes (modifiers, booleans, remesh, UVs, bakes, turntables, depth passes, batch exports), Blender MCP servers and their risks, and other 3D tools per OS. Use on 'write a Blender script', 'automate Blender', 'batch export .blend', any bpy traceback or...

m4bwav/polywright-finish

Use whenever a mesh must be made ready for a game engine, the web or AR: is it game-ready, too many polygons, LODs, retopology, UVs, baking, PBR and normal-map conventions, collision, rigging, and axis, unit and format export for Roblox, Unity, Unreal, Godot, three.js (meshopt, KTX2), USDZ and video blockouts. Use on 'is this game-ready', 'make this work in Roblox/Unity', 'optimise for the web', 'reduce polygons', 'add LODs', 'retopologise', 'bake normals', 'imports sideways or tiny', 'flip...

m4bwav/polywright-references

Use whenever reference images, views or textures for a 3D model are needed, before modelling or image-to-3D: orthographic front, side and back views with a height bar, A-pose turnarounds, multi-view sets, blockout renders repainted into consistent views, seamless textures and quick normal/height/roughness maps (pw.py texture). Use on 'what references do I need', 'reference sheet', 'front side back views', 'turnaround', 'seamless texture', 'PBR maps from this photo'. Not for flat graphic...

Skills associés