CommunityImagegithub.com

polywright-references

Génère et rassemble les références visuelles nécessaires à un modèle 3D : vues orthographiques, turnarounds, textures sans couture et cartes PBR, avant la modélisation ou la conversion image-vers-3D.

Qu'est-ce que polywright-references ?

La compétence `polywright-references` fournit un guide structuré pour collecter et générer des références visuelles adaptées à chaque type de modèle 3D (objets réels, véhicules, bâtiments, personnages, surfaces). Elle aide à choisir les vues (orthographiques devant/côté/arrière, turnarounds A-pose, blocs peints), générer des textures sans couture et des cartes normales/hauteur/rugosité via l'outil `pw.py texture`, et valider la cohérence des vues générées par IA. Compatible avec Blender, les moteurs de rendu et les pipelines image-vers-3D, elle s'appuie sur des fichiers manifeste, des templates et des vérifications contextuelles pour éviter les erreurs de perspective, de proportions ou de licence. C'est un evergreen qui doit être consulté avant toute création de modèle 3D pour garantir des références exploitables et homogènes.

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

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-references ?

Les références déterminent la majeure partie du résultat 3D : un modèle image-vers-3D copie l'éclairage, la perspective et les erreurs de son entrée ; un modeleur ou un script bpy a besoin de dimensions et de vues. Rassemblez-les ou générez-les d'abord, placez-les dans le dossier refs/ de l'actif, enregistrez chaque référence avec pw.py manifest --add-source (les références générées précisent le modèle et la graine).

Retour au hub : ../polywright/SKILL.md. Modèles de prompts et vérifications : references/reference-kit.md.

Étape 1 : de quoi ce modèle a besoin

ModèleCollecter (réel)Générer (imaginé ou manquant)
Objet réelphotos sous 6 côtés avec une règle dans le plan, gros plans, dimensions réelles (fiche fabricant, Wikipédia, mètre)nettoyages orthographiques seulement si les photos sont médiocres
Véhicule, produit, meubleplans ou dessins CAO (vérifier une dimension connue), dimensions fabricantvues de face, côté, dessus en style dessin technique
Bâtimentempreinte au sol (OSM), hauteur ou nombre d'étages, photos de chaque face, forme du toitélévations par face, plan de toit
Lieu réelextrait de carte, altitude, photo aérienne, photos au sol des points de repèreaucune : les lieux proviennent de données (polywright-capture)
Objet imaginaireréférences de styleune image hero trois-quarts, puis face/gauche/droite/arrière à la même échelle
Personnage ou créatureréférences de style et de costumetournage : face, côté, dos, trois-quarts, pose A, barre de hauteur, fond uni
Surfaces (murs, sol, terrain)photo du matériau, plate et éclairée uniformémentalbédo tessellable sans couture, puis cartes (étape 4)

Ajoutez toujours une référence d'échelle : une dimension connue, une silhouette humaine de 1,8 m, une barre de hauteur sur la feuille.

Un pack de recherche historique (un dossier contenant answer.md, refs/index.json et anachronism.md, créé par le plugin historywright) est déjà un dossier d'actif valide : partez de celui-ci, ne refaites pas la recherche. Lisez refs/index.json : chaque référence a sa propre date, lieu, institution, numéro d'inventaire et licence. N'utilisez que les références dont object_date correspond à la période du brief. Gardez une référence avec nc: true hors d'un modèle commercial. Vérifiez chaque vue générée par rapport à anachronism.md avant de la convertir en maillage.

Étape 2 : générer les vues (règles importantes)

Demandez à l'outil d'image : un objet, centré, occupant environ les deux tiers du cadre ; fond blanc ou gris clair uni ; lumière plate, uniforme, sans ombre ; perspective peu marquée (longue focale ou aspect orthographique) ; 1024 px ou plus ; pas de texte. Les personnages sont debout dans une pose A détendue (bras à 30-45 degrés vers le bas, jambes légèrement écartées) : les poses T déforment les proportions et les poses d'action échouent dans les générateurs et les riggers. Les modèles par type sont dans le kit.

Pour obtenir des vues supplémentaires cohérentes à partir d'une seule image, un modèle d'édition d'image avec un adaptateur multi-angles (Qwen Image Edit avec un LoRA Multiples Angles, 2025-2026) conserve mieux l'identité que de générer une invite par vue ; attendez-vous à une dérive des couleurs et réalignez la couleur de chaque vue sur la vue de face. Vérifiez chaque vue générée par rapport à la vue de face : mêmes proportions, même nombre de bras, mêmes éléments, rien n'est réorienté. Jetez une vue qui dévie ; une vue arrière erronée est pire que pas de vue du tout. Nommez la couleur d'un objet réel à partir des pixels de la photo (médiane de teinte, saturation, valeur), et non à partir d'un mot : le modèle d'édition suit le mot plutôt que l'image (L-003). Les vues arrière ont tendance à copier un marquage avant sur l'arrière.

Un workflow prêt pour un hôte Z-Image Turbo : references/zimage-reference.api.json (espace réservé {SUBJECT} ; testé le 2026-10-11).

Étape 2b : la fiche d'un objet conçu provient du modèle

Quand l'objet est conçu (une arme, un outil, une pièce de véhicule décrite en mots ou sur une feuille de fan) et que les invites textuelles ne donnent que la moitié de la forme, arrêtez de générer : construisez-le avec un script bpy (recette polywright-blender "Un objet conçu à partir d'une description écrite") et générez la fiche à partir du modèle, vue de côté et de dessus orthographique sur fond gris moyen, Cycles sur CPU quand le GPU est occupé. Un modèle est exact, se re-rend en quelques secondes après chaque note, et le même fichier composera plus tard l'objet dans une image (hub : "Composer un modèle dans une image"). Élevez la caméra de côté de 10 à 15 degrés lorsque des pièces viennent en paires miroir, ou qu'une se cache derrière l'autre.

Étape 3 : vues à partir d'une maquette (quand les vues ne cessent de diverger)

Construisez une maquette grossière (primitives, ou un premier maillage généré côté face uniquement), générez-la avec pw.py render <fichier> --out refs/blockout --views front,right,back,left --color clay, puis faites repeindre chaque rendu gris par un modèle d'édition d'image dans les couleurs et les détails du sujet (image-to-image avec le rendu comme première référence et la vue de face comme seconde). Seule la caméra bouge, donc rien ne peut être réorienté ni gagner de membres supplémentaires ; l'arrière ne peut montrer que ce que la maquette implique. Alimentez l'ensemble repeint dans la génération multi-vues.

Étape 4 : textures et matériaux

  • Préférez un matériau CC0 (Poly Haven, ambientCG) plutôt qu'un matériau généré.
  • Tessellable généré : demandez "sans couture, tessellable, vue de dessus, lumière plate et uniforme" à une puissance de deux, puis pw.py texture <img> --out refs/tex --seamless (mixage de décalage) et examinez un carrelage 2x2.
  • Cartes rapides à partir d'une photo ou d'un albédo : pw.py texture <img> --out refs/tex [--convention opengl|directx] écrit les cartes de hauteur, normale et rugosité dérivées de la luminance. Convient pour les objets et le terrain, incorrect pour les matériaux mesurés. Cartes normales : OpenGL (Y+) pour Blender, Unity, Godot, glTF, three.js, Roblox ; DirectX (Y-) pour Unreal.
  • La lumière cuite dans une photo devient la lumière cuite dans l'albédo : corrigez en amont avec une lumière plate, ou ajoutez --delight (divise les gradients larges ; les ombres portées nettes restent, repeignez-les). Les cartes normales ne modifient que l'ombrage : les silhouettes restent plates et les grandes formes se brisent aux angles rasants, donc modélisez les grandes formes et cartographiez uniquement les petits détails.

Étape 5 : mettez-les au travail

  • Dans Blender : images de référence comme empties dans les vues de face, droite et dessus, mises à l'échelle selon une dimension connue (les rendus orthographiques de pw.py render signalent metres_per_px) ; recette dans polywright-blender.
  • Pour image-vers-3D : carré, rempli, 1024 px ; pw.py gen remplit et supprime les fonds lui-même. Jugez l'image avant le lancement GPU, et ce qu'il faut corriger dans celle-ci plutôt que dans le maillage : references/images-for-3d.md.
  • Sur un tableau (PureRef 2.1) pour un humain : groupez par vue, notez les dimensions sur le tableau.

Maintenance

Evergreen, tier fast. Fichiers 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-generate

Use whenever an imagined or hypothetical 3D model must be made from a prompt, a drawing, concept art, photos or a blockout: image-to-3D through ComfyUI (TRELLIS.2, Pixal3D, Hunyuan3D-2 via pw.py gen) or hosted (Meshy, Tripo, Rodin), or code (bpy, build123d, CadQuery, OpenSCAD) when it has dimensions; then texturing and the licence record. Use on 'make me a 3D model of a dragon', 'turn this drawing or concept art into 3D', 'image to 3D', 'text to 3D', 'TRELLIS', 'Hunyuan3D', 'Meshy', 'model a...

Skills associés