@bitmagic/cli 0.1.66-dev.1 → 0.1.66-dev.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +37 -1
  2. package/assets/blender-level/find_blender.py +3 -1
  3. package/assets/character-rigging/SKILL.md +80 -0
  4. package/assets/character-rigging/references/articulation.md +55 -0
  5. package/assets/character-rigging/references/new-rig.md +51 -0
  6. package/assets/character-rigging/references/repairs.md +44 -0
  7. package/assets/character-rigging/references/verification.md +49 -0
  8. package/assets/character-rigging/scripts/rig_tool.py +197 -0
  9. package/assets/character-skin-authoring/SKILL.md +43 -0
  10. package/assets/character-skin-authoring/references/exporters.md +134 -0
  11. package/assets/character-skin-authoring/references/eyes.md +215 -0
  12. package/assets/character-skin-authoring/references/materials.md +115 -0
  13. package/assets/character-skin-authoring/references/playground.md +78 -0
  14. package/assets/character-skin-authoring/references/profiles.md +97 -0
  15. package/assets/character-skin-authoring/references/projection.md +190 -0
  16. package/assets/character-skin-authoring/references/regional-detail.md +72 -0
  17. package/assets/character-skin-authoring/scripts/assemble_character.py +205 -0
  18. package/assets/character-skin-authoring/scripts/authored_detail.py +47 -0
  19. package/assets/character-skin-authoring/scripts/authored_surface_patch.py +83 -0
  20. package/assets/character-skin-authoring/scripts/brow_groom.py +62 -0
  21. package/assets/character-skin-authoring/scripts/build_face_detail.py +107 -0
  22. package/assets/character-skin-authoring/scripts/build_surface_candidate.py +28 -0
  23. package/assets/character-skin-authoring/scripts/canthus_wall.py +57 -0
  24. package/assets/character-skin-authoring/scripts/character_build.py +54 -0
  25. package/assets/character-skin-authoring/scripts/eye_assets.py +333 -0
  26. package/assets/character-skin-authoring/scripts/eye_opening.py +114 -0
  27. package/assets/character-skin-authoring/scripts/eye_texture.py +35 -0
  28. package/assets/character-skin-authoring/scripts/eyelid_detail.py +34 -0
  29. package/assets/character-skin-authoring/scripts/eyelid_morph.py +171 -0
  30. package/assets/character-skin-authoring/scripts/eyelid_patch.py +173 -0
  31. package/assets/character-skin-authoring/scripts/face_atlas.py +51 -0
  32. package/assets/character-skin-authoring/scripts/geometry_repair.py +112 -0
  33. package/assets/character-skin-authoring/scripts/glb_arrays.py +13 -0
  34. package/assets/character-skin-authoring/scripts/glb_output.py +21 -0
  35. package/assets/character-skin-authoring/scripts/inspect_skin_point.py +66 -0
  36. package/assets/character-skin-authoring/scripts/normal_patch_height.py +38 -0
  37. package/assets/character-skin-authoring/scripts/prepare_face_reference.py +23 -0
  38. package/assets/character-skin-authoring/scripts/regional_atlas.py +51 -0
  39. package/assets/character-skin-authoring/scripts/select_preview.py +90 -0
  40. package/assets/character-skin-authoring/scripts/skin_views.py +267 -0
  41. package/assets/character-skin-authoring/scripts/surface_pbr_maps.py +46 -0
  42. package/assets/character-skin-authoring/scripts/texture_repair.py +98 -0
  43. package/assets/character-skin-authoring/scripts/vertex_detail_support.py +80 -0
  44. package/assets/character-skin-authoring/scripts/vision_blend_materials.py +74 -0
  45. package/assets/character-skin-authoring/scripts/vision_materials.py +276 -0
  46. package/assets/character-skin-authoring/scripts/workspace_paths.py +18 -0
  47. package/assets/metahuman/src/work/metahuman/MetaHumanActor.ts +580 -0
  48. package/assets/metahuman/src/work/metahuman/MetaHumanLabHooks.ts +122 -0
  49. package/assets/metahuman/src/work/metahuman/MetaHumanMaterials.ts +500 -0
  50. package/assets/metahuman/src/work/metahuman/MetaHumanSpeech.ts +242 -0
  51. package/assets/metahuman/src/work/metahuman/StudioEnvironment.ts +142 -0
  52. package/assets/metahuman/tools/lipsync/make_line.py +181 -0
  53. package/assets/metahuman/tools/metahuman/README.md +21 -0
  54. package/assets/metahuman/tools/metahuman/e2e/eval.mjs +34 -0
  55. package/assets/metahuman/tools/metahuman/e2e/probes/arm-pose-check.js +32 -0
  56. package/assets/metahuman/tools/metahuman/e2e/probes/bone-displacement.js +26 -0
  57. package/assets/metahuman/tools/metahuman/e2e/probes/clip-shoulder.js +41 -0
  58. package/assets/metahuman/tools/metahuman/e2e/probes/grafted-bones.js +11 -0
  59. package/assets/metahuman/tools/metahuman/e2e/probes/helper-follow-descent.js +38 -0
  60. package/assets/metahuman/tools/metahuman/e2e/probes/helper-follow-sweep.js +31 -0
  61. package/assets/metahuman/tools/metahuman/e2e/probes/helper-joints-inspect.js +10 -0
  62. package/assets/metahuman/tools/metahuman/e2e/probes/outfit-bad-vertices.js +26 -0
  63. package/assets/metahuman/tools/metahuman/e2e/probes/outfit-body-material.js +7 -0
  64. package/assets/metahuman/tools/metahuman/e2e/probes/outfit-own-skeleton.js +8 -0
  65. package/assets/metahuman/tools/metahuman/e2e/probes/shirt-bone-ownership.js +25 -0
  66. package/assets/metahuman/tools/metahuman/e2e/probes/shirt-edge-stretch.js +26 -0
  67. package/assets/metahuman/tools/metahuman/e2e/probes/shirt-long-edges.js +23 -0
  68. package/assets/metahuman/tools/metahuman/e2e/probes/walk-sampler.js +105 -0
  69. package/assets/metahuman/tools/metahuman/e2e/shot.mjs +125 -0
  70. package/assets/metahuman/tools/metahuman/e2e/walk-probe.mjs +43 -0
  71. package/assets/metahuman/tools/metahuman/merge-skeletons.mjs +69 -0
  72. package/assets/metahuman/tools/metahuman/package.json +13 -0
  73. package/assets/metahuman/tools/metahuman/prepare.sh +25 -0
  74. package/assets/metahuman/tools/metahuman/reorder-body-first.mjs +20 -0
  75. package/assets/metahuman/tools/metahuman/smooth-outfit-weights.mjs +48 -0
  76. package/assets/metahuman/tools/metahuman/strip-draco.mjs +32 -0
  77. package/assets/metahuman/tools/metahuman/transfer-skin-weights.mjs +90 -0
  78. package/dist/assets/voxelize-glb.d.ts +5 -1
  79. package/dist/assets/voxelize-glb.js +1 -0
  80. package/dist/assets/voxelize-glb.js.map +1 -1
  81. package/dist/assets/vxl-summary.js +2 -2
  82. package/dist/commands/forge.js +3 -1
  83. package/dist/commands/forge.js.map +1 -1
  84. package/dist/commands/generate.d.ts +62 -0
  85. package/dist/commands/generate.js +241 -2
  86. package/dist/commands/generate.js.map +1 -1
  87. package/dist/commands/init.js +2 -1
  88. package/dist/commands/init.js.map +1 -1
  89. package/dist/commands/judge.js +5 -0
  90. package/dist/commands/judge.js.map +1 -1
  91. package/dist/commands/verify.js +7 -0
  92. package/dist/commands/verify.js.map +1 -1
  93. package/dist/editor/asset-viewer.js +10 -5
  94. package/dist/editor/asset-viewer.js.map +1 -1
  95. package/dist/generate/audio-file.d.ts +6 -0
  96. package/dist/generate/audio-file.js +42 -0
  97. package/dist/generate/audio-file.js.map +1 -0
  98. package/dist/generate/model.js +3 -3
  99. package/dist/generate/model.js.map +1 -1
  100. package/dist/generate/music.d.ts +4 -3
  101. package/dist/generate/music.js +6 -23
  102. package/dist/generate/music.js.map +1 -1
  103. package/dist/generate/prop.d.ts +19 -1
  104. package/dist/generate/prop.js +34 -6
  105. package/dist/generate/prop.js.map +1 -1
  106. package/dist/generate/stream.d.ts +20 -0
  107. package/dist/generate/stream.js +15 -1
  108. package/dist/generate/stream.js.map +1 -1
  109. package/dist/scaffold/asset-pipeline-skill-files.js +6 -1
  110. package/dist/scaffold/asset-pipeline-skill-files.js.map +1 -1
  111. package/dist/scaffold/character-rigging-skill-files.d.ts +2 -0
  112. package/dist/scaffold/character-rigging-skill-files.js +17 -0
  113. package/dist/scaffold/character-rigging-skill-files.js.map +1 -0
  114. package/dist/scaffold/character-skin-skill-files.d.ts +2 -0
  115. package/dist/scaffold/character-skin-skill-files.js +49 -0
  116. package/dist/scaffold/character-skin-skill-files.js.map +1 -0
  117. package/dist/scaffold/metahuman-skill-files.d.ts +21 -0
  118. package/dist/scaffold/metahuman-skill-files.js +306 -0
  119. package/dist/scaffold/metahuman-skill-files.js.map +1 -0
  120. package/dist/scaffold/project-files.js +28 -19
  121. package/dist/scaffold/project-files.js.map +1 -1
  122. package/dist/scaffold/project.js +6 -0
  123. package/dist/scaffold/project.js.map +1 -1
  124. package/dist/scaffold/skill-files.js +5 -2
  125. package/dist/scaffold/skill-files.js.map +1 -1
  126. package/dist/telemetry/command-context.d.ts +23 -0
  127. package/dist/telemetry/command-context.js +11 -0
  128. package/dist/telemetry/command-context.js.map +1 -1
  129. package/dist/telemetry/report.d.ts +1 -0
  130. package/dist/telemetry/report.js +4 -1
  131. package/dist/telemetry/report.js.map +1 -1
  132. package/dist/tools/bundles.js +8 -0
  133. package/dist/tools/bundles.js.map +1 -1
  134. package/dist/verify/browser.js +25 -0
  135. package/dist/verify/browser.js.map +1 -1
  136. package/dist/verify/categories.d.ts +16 -0
  137. package/dist/verify/categories.js +51 -0
  138. package/dist/verify/categories.js.map +1 -0
  139. package/package.json +10 -7
@@ -0,0 +1,306 @@
1
+ /**
2
+ * The `importing-metahumans` skill: an Epic MetaHuman glTF export (UE 5.7, the smorchj/metahuman-to-glb
3
+ * pipeline) brought in as the engine's high-res player — the GLB preparation, the retarget and
4
+ * helper-joint fixes, the material upgrades, lip-sync, and the numeric verification. Distilled from a
5
+ * lab game (Epic's "Bo" preset, September 2026) whose agent met every failure the skill now names by
6
+ * symptom: a model that loads as nothing (Draco), a face and body animating apart (three skeleton
7
+ * copies), arms crossed into the chest (A-pose bind vs Mixamo's T-pose), a shirt torn at the armpits
8
+ * (pose-driven helper joints), hair left behind by a head turn (unskinned cards), tinted skin (rig
9
+ * masks in COLOR_0) and black eyes (the eye shell's UVs).
10
+ *
11
+ * Same contract as `blender-level-skill-files.ts`: a pure function returning file contents,
12
+ * registered in `SHIPPED_SKILLS` (project.ts). The code the skill relies on — the runtime module
13
+ * (`src/work/metahuman/`), the GLB scripts, the lip-sync tool and the verification rig — ships in the
14
+ * package's `assets/metahuman/` and lands at the project root through `bitmagic tools install
15
+ * metahuman` (`tools/bundles.ts`), so the skill only ever names files the package holds
16
+ * (`__tests__/metahuman-assets.test.ts` checks that).
17
+ *
18
+ * Backticks and `${` are escaped for the template literal; `project-files.test.ts` checks the rendered
19
+ * frontmatter and that no escape leaks into the output.
20
+ */
21
+ export function renderMetaHumanSkill() {
22
+ return `---
23
+ name: importing-metahumans
24
+ description: Bring an Epic MetaHuman (a UE 5.7 glTF export) into this game as the playable, animated, talking high-fidelity character without voxelizing it — prepare the GLB (Draco, one skeleton, body mesh first, garment weights), load it as the engine's high-res player, fix the A-pose retarget and the pose-driven helper joints, keep the hair on the head, upgrade skin / hair / eye materials, add life and lip-sync, and verify with numbers. Use it when a creator asks for a MetaHuman, an Unreal character, a "photoreal" or "highest fidelity" character — or when such a character shows floating hair, crossed arms, split legs, a torn shirt, tinted skin, black eyes, slumped shoulders or sliding feet.
25
+ ---
26
+
27
+ # Importing a MetaHuman
28
+
29
+ A MetaHuman export is a 40–80 MB skinned GLB with 51 ARKit blendshapes, hair as textured cards and a
30
+ UE5 skeleton with hundreds of pose-driven helper joints. The engine can load it as the player's
31
+ **high-res character** and drive it with its own Mixamo locomotion — but the raw export loads as
32
+ nothing (Draco), animates in pieces (three skeleton copies), stands with its arms crossed into its
33
+ chest (A-pose bind), tears its shirt at the armpits (helper joints), leaves its hair behind when it
34
+ turns its head (unskinned cards), and renders with tinted skin and black eyes (rig masks, eye shell).
35
+ Every one of those was met and fixed on Epic's "Bo" preset in a lab game (September 2026); this
36
+ skill is that path, in order, with the tools that do it. Everything it names ships with the CLI:
37
+
38
+ \`\`\`
39
+ bitmagic tools install metahuman
40
+ \`\`\`
41
+
42
+ lands, at the project root:
43
+
44
+ | Path | Does |
45
+ |---|---|
46
+ | \`src/work/metahuman/MetaHumanActor.ts\` | adopts the engine-loaded player model, re-parents the hair cards, fixes the arm retarget, applies the helper-joint policy, blinks / saccades / breathing / head look-at, morph access |
47
+ | \`src/work/metahuman/MetaHumanMaterials.ts\` | upgrades every material by name: skin SSS, hair/brow card atlas, lashes, eyes; hides the export's helper meshes |
48
+ | \`src/work/metahuman/MetaHumanSpeech.ts\` | plays a line and drives the ARKit mouth shapes from mouth cues (+ amplitude fallback); clock-driven mode for the frame recorder |
49
+ | \`src/work/metahuman/StudioEnvironment.ts\` | HDRI image-based lighting that survives the engine's ambient-lighting re-applies; optional separate sky map |
50
+ | \`src/work/metahuman/MetaHumanLabHooks.ts\` | installs \`window.__lab\`, the handle the rigs below drive |
51
+ | \`tools/metahuman/prepare.sh\` + five \`.mjs\` scripts | the GLB preparation, one command (needs Node ≥ 18; \`npm install\` runs on first use) |
52
+ | \`tools/metahuman/e2e/\` | \`shot.mjs\`, \`eval.mjs\`, \`walk-probe.mjs\` and \`probes/\` — headless Chrome stills and measurements |
53
+ | \`tools/lipsync/make_line.py\` | TTS audio → forced alignment → mouth cues (\`assets/speech/<id>.{m4a,json}\`) |
54
+
55
+ Nothing in them is character-specific: the scripts find meshes by the export's naming
56
+ (\`SKM_<name>_FaceMesh\`, \`SKM_<name>_BodyMesh\`, \`<name>_Outfits\`) and the actor classifies materials
57
+ by name. \`tools/metahuman/README.md\` is the index.
58
+
59
+ ## 0. Before you start
60
+
61
+ - **WebGPU.** The skin, hair and eye upgrades are TSL node materials on three's WebGPU build (the
62
+ engine default). The WebGL fallback keeps plain glTF PBR with scalar tweaks — acceptable, not
63
+ photoreal. \`bitmagic verify\` prints which backend booted.
64
+ - **Licence.** Since June 2025 Epic allows MetaHumans in non-Unreal products; the export pipeline
65
+ below is MIT. Record both in an \`assets/LICENSES.md\` and check the current MetaHuman terms before
66
+ a commercial release.
67
+ - **Budget.** One character is ~45 MB of GLB plus two 4K atlases. Publish uploads it (step 8). The
68
+ whole cast goes highres with it — highres and block characters never coexist.
69
+ - **Nothing else changes.** \`artStyle\` in \`game.json\` stays whatever the game is; a MetaHuman is a
70
+ loaded file, not a generated asset, and costs no sparks.
71
+
72
+ ## 1. Get an export
73
+
74
+ The exports come from **smorchj/metahuman-to-glb** (UE 5.7 MetaHuman → Blender → Draco GLB with the
75
+ 51 ARKit blendshapes). Ready-made characters sit in that repo under \`docs/5.7/characters/<name>/\`
76
+ (bo 41 MB, bruce 79 MB; \`docs/characters/\` holds ada and taro from the older 5.6 pipeline). Fetch
77
+ through \`raw.githubusercontent.com\` — they are plain files, not LFS. An export folder holds:
78
+
79
+ - \`<name>.glb\` — Draco-compressed; meshes \`SKM_<name>_FaceMesh\` (face skin, teeth, eyes, eye shell,
80
+ lacrimal fluid, lashes, an \`M_Hide\` helper), \`<name>_Outfits\` (garments), \`SKM_<name>_BodyMesh\`
81
+ (body skin — **no torso or upper thighs under the clothing**, the export culls them), plus the
82
+ hair / eyebrow / beard \`*_CardsMesh_*\` card meshes;
83
+ - \`textures/<Hair|Eyebrows>_*_CardsAtlas_Attribute.png\` — 4K card atlases, R = coverage, G = root→tip,
84
+ B = per-strand seed; \`T_Eyelashes_*_Coverage.png\` — the lash mask;
85
+ - \`mh_materials.json\` — the pipeline's material sheet (base colours, alpha channels, roughness).
86
+ Reference only.
87
+
88
+ What is inside, and why every step below exists: **three copies of the skeleton** (the face skin's
89
+ 875 joints incl. \`FACIAL_*\`, the outfit's 342, the body's 342 — same names, same rest pose), the
90
+ face skin **stops at the upper arms**, the cards are **unskinned meshes posed at the head's rest
91
+ pose**, \`COLOR_0\` on every mesh is a **rig mask** (not albedo), the bind pose is an **A-pose**, and
92
+ the corrective joints (\`*_correctiveRoot_*\`, \`*_twistCor_*\`, bicep/tricep, clavicle scap/out/pec,
93
+ latissimus, wrist, ankle, finger helpers) are **pose-driven** in Unreal by RBF drivers the export
94
+ cannot carry.
95
+
96
+ ## 2. Prepare the GLB — one command
97
+
98
+ \`\`\`
99
+ tools/metahuman/prepare.sh <export>/<name>.glb assets/metahuman/<name>/<name>.glb
100
+ mkdir -p assets/metahuman/<name>/textures
101
+ cp <export>/textures/*CardsAtlas_Attribute.png <export>/textures/T_Eyelashes_*Coverage.png assets/metahuman/<name>/textures/
102
+ \`\`\`
103
+
104
+ | Step | Script | Why | Without it |
105
+ |---|---|---|---|
106
+ | 1 | \`tools/metahuman/strip-draco.mjs\` | \`engine.loader\` is a plain GLTFLoader — no Draco, no KTX2 | the model never appears |
107
+ | 2 | \`tools/metahuman/merge-skeletons.mjs\` | grafts the limb subtrees from the body hierarchy onto the face hierarchy (asserts identical rest transforms) and re-points every skin at the one skeleton | each mesh follows its own copy: the face and body animate apart |
108
+ | 3 | \`tools/metahuman/reorder-body-first.mjs\` | the engine's \`CharacterLoader\` captures a rig's bind pose from the **first** skinned mesh it traverses, and the face skin has no forearms or legs | split legs, twisted forearms and hands (10 bones corrected instead of 52) |
109
+ | 4 | \`tools/metahuman/smooth-outfit-weights.mjs\` (shorts 6 × λ 0.5, shirt 12 × λ 0.6) | Laplacian-smooths the garment weights so hard seams (torso latissimus helper beside arm twist correctives) become gradients | 26 cm shards at the armpits under every arm swing |
110
+ | 5 | \`tools/metahuman/transfer-skin-weights.mjs\` (full ≤ 2 cm, blend to 4.5 cm) | gives garment vertices the skin's weights wherever skin lies under them (adds the face's neck joints to the outfit skin) | skin pokes through the shirt |
111
+
112
+ \`SHORT_RE\` / \`SHIRT_RE\` override the garment material regexes (the export names them
113
+ \`MID_..._Short_NN\` / \`MID_..._Shirt_NN\`); \`KEEP_STEPS=1\` keeps the intermediates. The tuned numbers
114
+ came from a torn-edge metric on the CPU-skinned outfit at the Mixamo idle (8038 torn edges raw →
115
+ ≈300 after steps 3–5 plus the helper policy). Check the result: the scripts print the scene order
116
+ (\`SKM_<name>_BodyMesh → <name>_Outfits → SKM_<name>_FaceMesh\`), the skins and their joint counts, and
117
+ throw if a joint is unreachable or a duplicate does not match its twin.
118
+
119
+ ## 3. Load it as the player
120
+
121
+ \`src/work/world.json\`, in \`worldProfileData\`:
122
+
123
+ \`\`\`json
124
+ "characterUrl": "/assets/metahuman/bo/bo.glb",
125
+ "useHighResCharacter": true,
126
+ "characterConfig": { "height": 1.83, "walkSpeed": 1.4, "runSpeed": 2.4, "fastRunSpeed": 4 }
127
+ \`\`\`
128
+
129
+ and three animation assets in \`assets[]\` — the Mixamo viewer set — because the engine's \`generated\`
130
+ animation library plays the authored Idle but swaps Walk and Run for motion-captured clips whose
131
+ neutral shoulders sit ~20° lower (a visible slump on ANY character, only while walking):
132
+
133
+ \`\`\`json
134
+ { "id": "mMixamoIdleViewer", "type": "animation", "locomotionState": "idle", "url": "https://mini.bitmagic.ai/worlds/v3/animations_brotli/NewIdle.glb" },
135
+ { "id": "mMixamoWalkViewer", "type": "animation", "locomotionState": "walk", "url": "https://mini.bitmagic.ai/worlds/v3/animations_brotli/NewWalk.glb" },
136
+ { "id": "mMixamoRunViewer", "type": "animation", "locomotionState": "run", "url": "https://mini.bitmagic.ai/worlds/v3/animations_brotli/NewRun.glb" }
137
+ \`\`\`
138
+
139
+ \`src/work/Game.ts\`: after \`setupPlayerController()\` and \`playerLoader.enablePlayerGravity()\`, adopt
140
+ the model the engine loaded (do NOT await slow downloads first — see fix 10), install the hooks, and
141
+ update the actor every frame:
142
+
143
+ \`\`\`ts
144
+ import { MetaHumanActor } from './metahuman/MetaHumanActor.js';
145
+ import { DEFAULT_HAIR, DEFAULT_BROWS } from './metahuman/MetaHumanMaterials.js';
146
+ import { installMetaHumanLabHooks } from './metahuman/MetaHumanLabHooks.js';
147
+
148
+ const bloomOn = this.worldProfileData.bloomConfig?.enabled ?? false;
149
+ const actor = new MetaHumanActor(this.engine, {
150
+ url: '/assets/metahuman/bo/bo.glb',
151
+ yawOffset: 0, // the export faces +Z = engine gameplay-forward
152
+ materials: {
153
+ hairAtlasUrl: '/assets/metahuman/bo/textures/Hair_S_SideSweptFringe_CardsAtlas_Attribute.png',
154
+ browAtlasUrl: '/assets/metahuman/bo/textures/Eyebrows_M_Wide_CardsAtlas_Attribute.png',
155
+ lashCoverageUrl: '/assets/metahuman/bo/textures/T_Eyelashes_S_Sparse_Coverage.png',
156
+ hair: { ...DEFAULT_HAIR }, brows: { ...DEFAULT_BROWS },
157
+ msaa: !bloomOn, // alpha-to-coverage only on the direct MSAA canvas
158
+ },
159
+ life: { blink: true, saccades: true, breathing: true, lookAtCamera: true, maxHeadTurn: 0.55 },
160
+ });
161
+ const root = this.playerLoader.getSkinnedSkeletonRoot();
162
+ if (root) actor.adopt(root, root, this.playerLoader); // engine-driven locomotion
163
+ else { this.engine.getPlayerVisibility().hide(); await actor.load(); actor.attachToPlayer(this.player, this.playerLoader.getFeetOffsetY()); }
164
+ this.metaHuman = actor;
165
+ installMetaHumanLabHooks({ engine: this.engine, actor, playerLoader: this.playerLoader, player: this.player, cameraController: this.cameraController, playerController: this.playerController });
166
+ // in update(deltaTime):
167
+ this.metaHuman?.update(deltaTime, this.engine.getDefaultCamera().position);
168
+ \`\`\`
169
+
170
+ Facts the wiring leans on: the engine faces the player toward −Z (camera behind) — use
171
+ \`actor.getFacing()\` for face cameras and turn \`ThirdPersonCamera.setAutoFollow(false)\` off while one
172
+ is on; the export faces +Z so \`yawOffset\` is 0; the engine picks walk or run by speed
173
+ (\`walkToRunThreshold\`) and never rescales a clip, so anything that drives the character by script
174
+ (cinematics, NPC copies) must move at the clip's stride speed — \`characterConfig.runSpeed\` 2.4 m/s
175
+ here — or the feet slide.
176
+
177
+ ## 4. The fixes, by symptom
178
+
179
+ Each is a method of \`MetaHumanActor\` or a preparation step; know which one you are looking at.
180
+
181
+ 1. **Hair, brows or beard stay behind when the head turns** → the cards are unskinned →
182
+ \`attachCardsToHead\` re-parents every non-skinned mesh onto the \`head\` bone with \`Object3D.attach\`
183
+ at load, while the skeleton is at rest. Any new load path must keep it.
184
+ 2. **Split legs, twisted forearms and hands** → bind captured from the face skin → preparation step 3.
185
+ 3. **Arms 45° too low, crossed into the torso** → the engine's per-bone correction \`inv(B_src)·B_rig\`
186
+ assumes the rig binds in the clip's rest pose; MetaHumans bind in an A-pose, Mixamo rests in a
187
+ T-pose → \`patchArmRetarget\` rewrites the loader's cached \`skinnedRetargetDeltas\` with a virtual
188
+ T-pose per arm segment (thumbs forward). Check: upper-arm and forearm world directions equal the
189
+ Mixamo rig's, hands at x ≈ ±0.30 m beside the thighs (\`tools/metahuman/e2e/probes/arm-pose-check.js\`).
190
+ 4. **Shirt tears at the armpits and shoulders** → pose-driven helper joints swing rigidly with the
191
+ limb → \`applyHelperJointPolicy\`: each helper family follows only a fraction of its parent's
192
+ rotation delta from bind (\`helperFollow\`, families shoulder / thigh / elbow / knee / twistCor /
193
+ muscle / clavicle / lat / wrist / ankle / finger; tuned by coordinate descent on the torn-edge
194
+ metric, \`tools/metahuman/e2e/probes/helper-follow-descent.js\`) — plus preparation steps 4–5.
195
+ 5. **Skin shows through the garment** → the outfit's weights differ from the skin's under it →
196
+ preparation step 5 (smoothing alone made this WORSE; transfer fixed it).
197
+ 6. **Skin is tinted / blotchy** → \`COLOR_0\`/\`COLOR_1\` are rig masks → every material gets
198
+ \`vertexColors = false\` (\`MetaHumanMaterials\`).
199
+ 7. **Eyes are black** → the export's eye shell has UVs that are not eye-centred, so any occlusion
200
+ gradient blacks the eye out → the shell, lacrimal fluid and \`M_Hide\` are hidden
201
+ (\`eyeShellOcclusion: 0\`).
202
+ 8. **Far-side hair shows through the skin over the ear** → the hair depth bias was too strong →
203
+ polygon offset factor −0.5 / units −1, not −4 / −16.
204
+ 9. **Hair edges alias or halo** → alpha-to-coverage needs the direct MSAA canvas, which only exists
205
+ while bloom / post-FX are off → \`msaa: !bloomOn\`; with post-FX on, the cards use the blended fringe.
206
+ 10. **Hair or helpers detached, only on slow machines** → rest data was read from bones that were
207
+ already animating → capture every rest quantity from the skins' inverse bind matrices and adopt
208
+ BEFORE awaiting the HDRI or atlases.
209
+ 11. **Shoulders slump only while walking** → the animation library, not the rig → section 3's
210
+ Mixamo assets. Compare raw clip tracks across states (\`tools/metahuman/e2e/probes/clip-shoulder.js\`)
211
+ before touching rig code.
212
+ 12. **Feet slide** when moved by script → speed below the clip's stride → section 3.
213
+
214
+ ## 5. What the materials do
215
+
216
+ \`upgradeMetaHumanMaterials(root, options)\` classifies each material by name (\`classifyMaterial\`)
217
+ and replaces it in place — geometry untouched:
218
+
219
+ - **skin** (\`MI_Face_Skin_*\`, \`MI_Body_*\`): roughness floor and a wrap-lighting subsurface term in a
220
+ \`PhysicalLightingModel\` subclass (light through ears, nose, lips);
221
+ - **hair / brow cards**: the 4K atlas drives coverage (alpha-to-coverage or blended fringe clone),
222
+ root darkening, per-strand tint and roughness variance, a normal-based self-occlusion;
223
+ \`DEFAULT_HAIR\` / \`DEFAULT_BROWS\` are the dials (colour, anisotropy, blend mode);
224
+ - **lashes**: the 2K coverage mask, alpha-blended;
225
+ - **eyes**: wet cornea (near-mirror roughness + clearcoat);
226
+ - **hidden**: \`M_Hide\`, lacrimal, eye edge, saliva, the eye shell.
227
+
228
+ Typing note for edits: \`@types/three\` types TSL nodes as \`Node<'vec3'>\` etc. while the engine's
229
+ lighting-model inputs are bare \`Node\` — cast; and \`three\` resolves to the WebGPU build.
230
+
231
+ ## 6. Life and speech
232
+
233
+ - \`life\` options blink, saccade, breathe and turn the head toward the camera as deltas on top of the
234
+ animated pose (rest-frame world-axis rotations). \`setSpeechEnergy\` adds brow lift and nods.
235
+ - **Lip-sync**: \`MetaHumanSpeech\` maps Rhubarb-style mouth shapes (A closed, B teeth, C open, D wide,
236
+ E rounded, F puckered, G F/V, H L, X rest) to ARKit weights with 60 ms co-articulation, jaw scaled
237
+ by loudness, amplitude-driven jaw when a line has no cues. Lines live in \`assets/speech/lines.json\`
238
+ (\`MetaHumanSpeech.loadLines\`), \`speak(line)\` plays one, \`update(dt)\` every frame,
239
+ \`actor.setSpeechEnergy(speech.getEnergy())\` for the accents.
240
+ - **Making a line**: \`tools/lipsync/make_line.py <id> "<transcript>" --audio <tts.mp3>\` — PocketSphinx
241
+ forced alignment in a venv (\`python3 -m venv tools/lipsync/.venv && tools/lipsync/.venv/bin/pip
242
+ install pocketsphinx\`), unknown words via its \`EXTRA_WORDS\` table. Make the audio with
243
+ \`bitmagic generate speech --text "<the line>" --voice <voice> --out <line>.mp3 --no-world\` —
244
+ \`--no-world\` because a lip-sync line is an input to this tool, not a world.json asset the game
245
+ plays on its own, and \`--out\` writes the MP3 \`make_line.py --audio\` expects. Any provider's file
246
+ works too. macOS \`say\` is a placeholder the creator will hear immediately; never ship it. For an
247
+ exact pause between sentences generate them separately and join with silence.
248
+ - **Under the frame recorder** (\`bitmagic trailer record\`) the game runs slower than real time:
249
+ \`speech.setClockDriven(true)\` advances the cues on the engine delta, log a \`speech-start\` game
250
+ event when the cue clock starts, and mux the audio afterwards at that frame.
251
+
252
+ ## 7. Verify with numbers, not thumbnails
253
+
254
+ Thumbnails hid crossed arms, detached hair and a "fix" whose before/after frames were identical.
255
+ Crop and zoom the contact region, and cross-check one measured quantity. The rigs drive the GAME
256
+ page (the game port in \`.bitmagic/dev.json\`, one below the dev shell's) through the system Chrome;
257
+ \`npm install\` in \`tools/metahuman/\` once:
258
+
259
+ - \`node tools/metahuman/e2e/shot.mjs <port>\` — stills: wide, front, face, three-quarter, profile,
260
+ hair, eye macro, life on, head-turn; asserts the hair↔head distance is unchanged across a turn and
261
+ that holding W moves the player;
262
+ - \`node tools/metahuman/e2e/eval.mjs tools/metahuman/e2e/probes/<probe>.js <port>\` with
263
+ \`arm-pose-check.js\`, \`bone-displacement.js\`, \`shirt-edge-stretch.js\`, \`shirt-long-edges.js\`,
264
+ \`outfit-bad-vertices.js\`, \`shirt-bone-ownership.js\`, \`helper-follow-sweep.js\`,
265
+ \`helper-follow-descent.js\`, \`helper-joints-inspect.js\`, \`clip-shoulder.js\`, \`grafted-bones.js\`,
266
+ \`outfit-own-skeleton.js\`, \`outfit-body-material.js\`;
267
+ - \`node tools/metahuman/e2e/walk-probe.mjs <port>\` — walks for a few seconds and prints idle-vs-walk
268
+ statistics (\`walk-sampler.js\`: bone heights, skin-under-shirt penetration, clip shoulders);
269
+ - in the page: \`__lab.retargetInfo()\` and \`__lab.boneMap()\` dump the engine's pose map, bind
270
+ corrections and name resolution (52 bones should be corrected);
271
+ - \`bitmagic verify\` last — it boots the real browser and reports the backend and fps.
272
+
273
+ ## 8. Ship it
274
+
275
+ Every \`/assets/...\` URL the game fetches works only under \`bitmagic dev\` and 404s in a published
276
+ bundle: register the GLB with \`bitmagic assets add assets/metahuman/<name>/<name>.glb --keep-glb\`
277
+ and point \`characterUrl\` at the returned URL; do the same for the atlases, the lash mask, the HDRI
278
+ and the speech files, or inline them. This is the one step written from the CLI's rules rather
279
+ than from having done it — the lab game was never published.
280
+
281
+ ## 9. Engine internals this depends on (re-check after \`bitmagic upgrade\`)
282
+
283
+ Written against engine 3.1173: \`PlayerLoader.getSkinnedSkeletonRoot()\`, \`CharacterLoader\`'s alias
284
+ map (resolves UE / Manny bone names) and its private \`skinnedRetargetDeltas\` / \`skinnedBind\` that
285
+ \`patchArmRetarget\` rewrites, \`engine.getPlayerVisibility()\`, the \`generated\` animation library. After
286
+ an upgrade run the probes in section 7 before trusting a screenshot.
287
+
288
+ ## Known gaps
289
+
290
+ Shoulder / armpit fidelity (the RBF pose drivers are not in the export — real emulation or a
291
+ re-skin of the garment to the primary bones would fix it), scalp visible under thin hair cards, no
292
+ eye-socket occlusion, fingers keep the A-pose curl under Mixamo hand poses, the WebGL path is plain
293
+ PBR.
294
+
295
+ ## Checklist
296
+
297
+ - [ ] export fetched, licence recorded in \`assets/LICENSES.md\`
298
+ - [ ] \`bitmagic tools install metahuman\`; \`tools/metahuman/prepare.sh\` ran clean: body mesh first, one skeleton, garment weights done
299
+ - [ ] atlases + lash mask copied; \`characterUrl\` + \`useHighResCharacter\` + Mixamo animation assets in world.json
300
+ - [ ] actor adopted BEFORE slow loads; hooks installed; \`actor.update\` every frame
301
+ - [ ] \`bitmagic check\`; shots + probes: hair follows the head, arms level with the Mixamo rig, ≈300 torn edges, no skin through the shirt
302
+ - [ ] \`bitmagic verify\` on WebGPU; speech line from a real TTS voice
303
+ - [ ] before publish: every \`/assets/...\` URL registered with \`bitmagic assets add\`
304
+ `;
305
+ }
306
+ //# sourceMappingURL=metahuman-skill-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metahuman-skill-files.js","sourceRoot":"","sources":["../../src/scaffold/metahuman-skill-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,UAAU,oBAAoB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0RR,CAAC;AACF,CAAC"}
@@ -813,9 +813,9 @@ If you are unsure whether one is already running, \`bitmagic reload\` says so an
813
813
  they stay current with it. Every one is plain markdown at
814
814
  \`${PRIMARY_SKILLS_DIR}/<name>/SKILL.md\`, readable whether or not your harness loads skills by
815
815
  itself: \`planning-a-game/\` (what to build first), \`finding-engine-apis/\` (engine docs),
816
- \`generating-assets/\`, \`choosing-asset-pipelines/\`, \`working-with-the-creator/\`,
817
- \`theming-the-hud/\`, \`publishing-a-game/\`, \`judging-quality/\`, \`checking-usage/\`,
818
- \`making-a-trailer/\`, \`converting-unity-levels/\`, \`building-levels-in-blender/\`.${mirrorClause}
816
+ \`generating-assets/\`, \`choosing-asset-pipelines/\`, \`working-with-the-creator/\`, \`theming-the-hud/\`,
817
+ \`publishing-a-game/\`, \`judging-quality/\`, \`checking-usage/\`, \`making-a-trailer/\`,
818
+ \`converting-unity-levels/\`, \`building-levels-in-blender/\`, \`importing-metahumans/\`.${mirrorClause}
819
819
  \`upgrade\` rewrites every copy, so edits to them are lost; skills you add yourself are never
820
820
  touched.
821
821
  - \`.claude/settings.json\` — **Claude Code only, and yours**: seeded with one Stop hook that runs
@@ -1083,8 +1083,8 @@ bitmagic character generate --name guard --prompt "..." [--apply-to-player] [--
1083
1083
  bitmagic generate animation --family gait --name LimpStride --based-on walk [--dial limpSide=right]
1084
1084
  bitmagic generate animation --spec clip.json # melee and oneShot clips: a spec file
1085
1085
  bitmagic generate video --prompt "the castle gates swing open" [--duration 5] [--image cover.png]
1086
- bitmagic generate model --prompt "a mossy stone arch" [--height 3]
1087
- bitmagic generate vehicle --prompt "a rusty orange pickup" | --preset VAN
1086
+ bitmagic generate model --prompt "a mossy stone arch" [--height 3] # any NEW object or prop (a lantern, a crate, a sign): ~3 sparks — never hand-build one in code
1087
+ bitmagic generate vehicle --preset ? # lists the FREE presets; then --preset PICKUP, or --prompt "a rusty orange pickup" for a bespoke look
1088
1088
  \`\`\`
1089
1089
 
1090
1090
  Run \`bitmagic generate <type> --help\` for the full flags of any one, or \`bitmagic character <verb> --help\` — characters are their own group, where \`generate\` costs sparks and \`search\`/\`add\` are free because they use the ready-made library instead of forging.
@@ -1104,12 +1104,12 @@ Three lanes make a 3D object, and the wrong one wastes a generation: \`generate
1104
1104
  asset, \`generate prop --asset <id>\` UPGRADES a placeholder, \`assets add <file>\` uploads your own.
1105
1105
  Splats, video and \`.vox\`/\`.fbx\` still need the web editor; never reference an asset you did not
1106
1106
  make. Which lane fits which NEED — rough sparks and minutes, and when to ask first — is
1107
- \`${PRIMARY_SKILLS_DIR}/choosing-asset-pipelines/SKILL.md\`; flags, reference-image rules and refusals, \`${PRIMARY_SKILLS_DIR}/generating-assets/SKILL.md\`.
1107
+ \`${PRIMARY_SKILLS_DIR}/choosing-asset-pipelines/SKILL.md\`; flags, reference-image rules and refusals, \`${PRIMARY_SKILLS_DIR}/generating-assets/SKILL.md\`. For local Blender rigging and repairs, read \`${PRIMARY_SKILLS_DIR}/rigging-characters/SKILL.md\`. For vision-led exposed-skin maps and material review, read \`${PRIMARY_SKILLS_DIR}/character-skin-authoring/SKILL.md\`.
1108
1108
 
1109
1109
  ## Forging a whole level
1110
1110
 
1111
1111
  \`\`\`
1112
- bitmagic forge --prompt "a ruined desert temple with a central courtyard"
1112
+ bitmagic forge --prompt "a ruined desert temple with a central courtyard" # the level's SHAPE — a circuit, a dungeon, a slope — is forged, never painted onto the baseline in code
1113
1113
  \`\`\`
1114
1114
 
1115
1115
  This designs a scene, builds its geometry, bakes it to voxels and writes the finished level —
@@ -1118,7 +1118,7 @@ terrain, props, spawn points — into \`src/work/world.json\`. \`bitmagic levels
1118
1118
  \`--city\`, \`--dungeon\`, \`--platformer\`, \`--freeform\` or \`--vessel\` (a ship as the level) — at most
1119
1119
  one — for a different kind of place; omit them all for natural terrain. A place designed part by
1120
1120
  part — an interior, a station, a stylised set — can instead be scripted in Blender: \`${PRIMARY_SKILLS_DIR}/building-levels-in-blender/SKILL.md\`,
1121
- whose first section says when that path is yours (a frontier model, Blender installable). All the level lanes side by side, with costs: \`${PRIMARY_SKILLS_DIR}/choosing-asset-pipelines/SKILL.md\`.
1121
+ whose first section says when that path is yours (a frontier model — Claude Opus/Fable, GPT-6 class — with Blender 4.2+; any other model, or one not sure it is one, forges instead). All the level lanes side by side, with costs: \`${PRIMARY_SKILLS_DIR}/choosing-asset-pipelines/SKILL.md\`.
1122
1122
 
1123
1123
  **Art style is a declared switch.** \`"artStyle": "low-poly"\` in \`src/work/game.json\` (or
1124
1124
  \`bitmagic init --art-style low-poly\`) makes a Blender level a low-poly GAME: \`cover\`/\`reference\`
@@ -1242,8 +1242,8 @@ animations and NPC use, while a generated mesh is a mesh. Generate when the look
1242
1242
  ("a flaming katana with a skull hilt") — that is what the \`generating-assets\` skill is for.
1243
1243
 
1244
1244
  Drivable vehicles are the one exception worth knowing: the physics and AI are built in, but a
1245
- good-looking car comes from \`bitmagic generate vehicle\`, and \`--preset VAN\` builds a standard one
1246
- without calling the designer when the request needs no bespoke look. Spawn it with
1245
+ good-looking car comes from \`bitmagic generate vehicle\`: \`--preset ?\` lists the free presets and
1246
+ \`--preset VAN\` builds one without calling the designer when the request needs no bespoke look. Spawn it with
1247
1247
  \`engine.getVehicleSpawner().spawnAndEnterFromAsset(...)\`.
1248
1248
 
1249
1249
  ## Step 3 — write \`mechanics-plan.md\`
@@ -1313,11 +1313,12 @@ ${PLANNING_SKILL_REFERENCE_STEP4}4. \`bitmagic cover\` — **now**, not later. I
1313
1313
  **One forge, and only when the terrain IS the mechanic.** \`bitmagic forge\` runs for many minutes,
1314
1314
  so it sets how long the human waits for slice 1. It belongs in slice 1 for a game that cannot be
1315
1315
  played without its shape — skiing, racing on a real circuit, open-world driving, an enclosed dungeon
1316
- interior. For everything else the baseline's procedural voxel terrain is a fine slice-1 world and the
1317
- forge is backlog item 1, run once the loop is proven. A designed place — an interior, a station, a
1316
+ interior. Those are forged (\`bitmagic forge\`, tens of sparks — ask first when the purpose is unsaid),
1317
+ never painted onto the baseline terrain in code. For everything else the baseline's procedural voxel
1318
+ terrain is a fine slice-1 world and the forge is backlog item 1, run once the loop is proven. A designed place — an interior, a station, a
1318
1319
  stylised set the creator has a picture of — has a second route, building it in Blender from a
1319
- script (\`${PRIMARY_SKILLS_DIR}/building-levels-in-blender/SKILL.md\`, gated on the model and on
1320
- Blender being available). That route is a low-poly game: set \`artStyle: "low-poly"\` in game.json first.
1320
+ script (\`${PRIMARY_SKILLS_DIR}/building-levels-in-blender/SKILL.md\`, gated on a frontier model —
1321
+ Claude Opus/Fable, GPT-6 class — and on Blender 4.2+ being installed; any other model takes the forge). That route is a low-poly game: set \`artStyle: "low-poly"\` in game.json first.
1321
1322
  The level lanes and every other asset lane side by side, with costs and when to ask the creator:
1322
1323
  \`${PRIMARY_SKILLS_DIR}/choosing-asset-pipelines/SKILL.md\`.
1323
1324
 
@@ -1536,19 +1537,27 @@ The \`bitmagic\` CLI generates content directly into this project. Eleven types
1536
1537
  | \`bitmagic generate skybox --description "..."\` | a 360° environment | \`worldProfileData.skyboxUrl\` |
1537
1538
  | \`bitmagic generate background --description "..."\` | a flat 2D backdrop | \`worldProfileData.skyboxUrl\` |
1538
1539
  | \`bitmagic generate block-type --name <id> --description "..."\` | a custom voxel block | \`worldProfileData.customBlockTypes[]\` |
1539
- | \`bitmagic generate sound --prompt "..."\` | a sound effect | \`assets[]\` |
1540
- | \`bitmagic generate music --prompt "..." [--duration 30]\` | a music track (loops by default; billed per second) | \`assets[]\` (or a file with \`--out <mp3> --no-world\`) |
1540
+ | \`bitmagic generate sound --prompt "..."\` | a sound effect — for a jump blip or UI tick, Web Audio in code is free and better | \`assets[]\` |
1541
+ | \`bitmagic generate music --prompt "..." [--duration 30]\` | a music track (loops by default; billed per second) — say the assumption line first (below); a 30 s loop is decided, not discussed | \`assets[]\` (or a file with \`--out <mp3> --no-world\`) |
1541
1542
  | \`bitmagic generate image --name <id> --prompt "..."\` | a 2D image | \`assets[]\` |
1542
1543
  | \`bitmagic character generate --name <id> --prompt "..."\` | a rigged character; substitutes a close-enough ready-made one when the library has it (\`--fresh\` always forges). \`character search --prompt "..."\` then \`character add --name <id> --id <sid>\` instead is **free** and never forges — prefer it when any plausible body will do | \`assets[]\` |
1543
1544
  | \`bitmagic generate animation --family gait ...\` or \`--spec <file>\` | an animation clip | \`assets[]\` |
1544
1545
  | \`bitmagic generate video --prompt "..." [--duration 5] [--image <png>]\` | a short 720p clip for a cutscene (billed per second) | \`assets[]\`, played with \`engine.playVideo("<id>")\` |
1545
1546
  | \`bitmagic generate model --prompt "..."\` | a new 3D model | \`assets[]\` |
1546
- | \`bitmagic generate vehicle --prompt "..."\` | a drivable vehicle | \`assets[]\` |
1547
+ | \`bitmagic generate vehicle --preset <NAME>\` (free; \`--preset ?\` lists the names) or \`--prompt "..."\` for a bespoke look | a drivable vehicle | \`assets[]\` |
1547
1548
 
1548
1549
  \`--help\` on any subcommand lists its full flags. Which of these — or a forge, a Blender build, a
1549
1550
  built-in, or a file of the creator's own — fits a given need, with rough sparks and minutes:
1550
1551
  \`${PRIMARY_SKILLS_DIR}/choosing-asset-pipelines/SKILL.md\`.
1551
1552
 
1553
+ ## Before a paid generation: say the assumption, ask only when it is expensive
1554
+
1555
+ State one line, then run: \`Assuming prototype: using <route> (~N sparks, ~T); say polished and I
1556
+ will use <alt>.\` Ask first — recommended option first, answerable in a word — ONLY when the route
1557
+ is tens of sparks or many minutes (a forge, a long music track, a low-poly character, a bespoke
1558
+ vehicle) AND the creator has said neither prototype nor polished. Never ask about a free or
1559
+ seconds-long option; a 30-second music loop or a 3-spark model is decided, not discussed.
1560
+
1552
1561
  **Every \`bitmagic\` command takes \`--original-prompt "<the creator's request, verbatim>"\` —
1553
1562
  always pass it**, on the everyday loop (\`build\`, \`verify\`, \`dev\`, \`reload\`, \`publish\`) as much as
1554
1563
  on the generators. It never reaches a generator, so it cannot change the output; it is what the
@@ -1580,8 +1589,8 @@ browser blocks autoplay and the clip silently does not run. See \`video-cutscene
1580
1589
 
1581
1590
  \`vehicle\` is the one that needs more than a prompt to be useful. It creates a NEW asset (it does
1582
1591
  not upgrade an existing one), it needs Chrome and a free port between 3000 and 3199 because only
1583
- the engine can voxelize, and \`--preset VAN\` builds a standard vehicle without calling the designer
1584
- at all — faster, and the right choice when the request does not need a bespoke look. Once it lands,
1592
+ the engine can voxelize, \`--preset ?\` lists the free presets, and \`--preset VAN\` builds a standard
1593
+ vehicle without calling the designer at all — faster, and the right choice when the request does not need a bespoke look. Once it lands,
1585
1594
  spawn it by name:
1586
1595
 
1587
1596
  \`\`\`js
@@ -1 +1 @@
1
- {"version":3,"file":"project-files.js","sourceRoot":"","sources":["../../src/scaffold/project-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-files.js","sourceRoot":"","sources":["../../src/scaffold/project-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAiB,MAAM,gCAAgC,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,YAAY,GAEb,MAAM,oBAAoB,CAAC;AAK5B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;IAkBnC,CAAC;AAEL;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,2BAA2B,EAAE,SAAS;IACtC,2BAA2B,EAAE,SAAS;IACtC,kBAAkB,EAAE,QAAQ;IAC5B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,kCAAkC,EAAE,QAAQ;IAC5C,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,UAAU;IACjB,4FAA4F;IAC5F,6FAA6F;IAC7F,4CAA4C;CACZ,CAAC;AAEnC,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,aAAa,EAAE,UAAU;IACzB,cAAc,EAAE,UAAU;IAC1B,8FAA8F;IAC9F,cAAc,EAAE,QAAQ;IACxB,4FAA4F;IAC5F,mFAAmF;IACnF,eAAe,EAAE,SAAS;IAC1B,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,QAAQ;IACd,wBAAwB,EAAE,QAAQ;CACnC,CAAC;AAEF,qEAAqE;AACrE,SAAS,aAAa,CAAC,IAA+B;IACpD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAS,MAAM,CAAC,IAA+B;IAC7C,OAAO,kBAAkB,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAElC;;;GAGG;AACH,MAAM,kBAAkB,GAAG,yBAAyB,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;AAE7E;;;;GAIG;AACH,MAAM,YAAY,GAAG,GAAG,SAAS,SAAS,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAG;IACjB,uBAAuB;IACvB,eAAe,YAAY,IAAI;IAC/B,6BAA6B,SAAS,2CAA2C;IACjF,yBAAyB,SAAS,uCAAuC;IACzE,2BAA2B,SAAS,wCAAwC;CAC7E,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,2FAA2F;IAC3F,4FAA4F;IAC5F,4FAA4F;IAC5F,KAAK,EAAE,UAAU;IACjB,cAAc,EAAE,YAAY;IAC5B,WAAW,EAAE,GAAG,SAAS,MAAM;IAC/B,2FAA2F;IAC3F,6FAA6F;IAC7F,+FAA+F;IAC/F,4FAA4F;IAC5F,6FAA6F;IAC7F,6FAA6F;IAC7F,eAAe,EAAE,GAAG,kBAAkB,UAAU;IAChD,qBAAqB,EAAE,GAAG,kBAAkB,gBAAgB;IAC5D,QAAQ,EAAE,GAAG,SAAS,GAAG;IACzB,2BAA2B,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAChE,2BAA2B,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAChE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;IAC1B,kCAAkC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC9E,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;CACzB,CAAC;AAEF,sFAAsF;AACtF,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,UAAU,CAAC;QAChB,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,MAAM;SACZ;QACD,YAAY,EAAE,YAAY;QAC1B,eAAe,EAAE,gBAAgB;QACjC,2FAA2F;QAC3F,8FAA8F;QAC9F,6FAA6F;QAC7F,qFAAqF;QACrF,EAAE;QACF,8EAA8E;QAC9E,2FAA2F;QAC3F,yFAAyF;QACzF,IAAI,EAAE,EAAE,wBAAwB,EAAE,CAAC,SAAS,CAAC,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,CAAC;QAChB,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;YACtB,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,aAAa,EAAE;YACtB,gBAAgB,EAAE,SAAS;YAC3B,MAAM,EAAE,IAAI;YACZ,wBAAwB,EAAE,IAAI;YAC9B,0BAA0B,EAAE,KAAK;YACjC,oBAAoB,EAAE,IAAI;YAC1B,eAAe,EAAE,IAAI;YACrB,eAAe,EAAE,OAAO;YACxB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,IAAI;YACrB,4BAA4B,EAAE,IAAI;YAClC,gCAAgC,EAAE,IAAI;YACtC,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI;YACvB,SAAS,EAAE,IAAI;YACf,wFAAwF;YACxF,yFAAyF;YACzF,wFAAwF;YACxF,0FAA0F;YAC1F,sFAAsF;YACtF,yFAAyF;YACzF,gFAAgF;YAChF,KAAK,EAAE,CAAC,eAAe,CAAC;YACxB,SAAS,EAAE,CAAC,cAAc,EAAE,qBAAqB,EAAE,wCAAwC,CAAC;SAC7F;QACD,OAAO,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;QACpC,uFAAuF;QACvF,uFAAuF;QACvF,oFAAoF;QACpF,wFAAwF;QACxF,wDAAwD;QACxD,OAAO,EAAE;YACP,cAAc;YACd,MAAM;YACN,qBAAqB;YACrB,0BAA0B;YAC1B,kBAAkB;YAClB,uBAAuB;YACvB,oBAAoB;YACpB,2FAA2F;YAC3F,6FAA6F;YAC7F,2FAA2F;YAC3F,2FAA2F;YAC3F,gEAAgE;YAChE,wBAAwB;SACzB;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,gBAAgB,GACpB,iGAAiG;IACjG,+FAA+F;IAC/F,+FAA+F;IAC/F,gGAAgG;IAChG,gGAAgG;IAChG,gGAAgG;IAChG,gGAAgG;IAChG,uEAAuE,CAAC;AAE1E,MAAM,UAAU,eAAe;IAC7B,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,YAAY,EAAE,CAAC;IACpD,6FAA6F;IAC7F,yFAAyF;IACzF,MAAM,gBAAgB,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,iBAAiB,CAAC;IACrE,0FAA0F;IAC1F,0FAA0F;IAC1F,wFAAwF;IACxF,2FAA2F;IAC3F,mDAAmD;IACnD,OAAO;;;;;;gBAMO,eAAe,uCAAuC,gBAAgB;;;;;;;;;;;;;;;;;;;;;EAqBpF,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;;iCAG5B,gBAAgB;;;CAGhD,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB;IACzB,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,OAAO,MAAM,GAAG,CAAC;SACrD,IAAI,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;EAWP,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BrB,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE5E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CACvC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAClF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,oBAAoB;IAC3B,MAAM,OAAO,GAAG,sBAAsB,EAAE;SACrC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;SAC1E,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO;;;;;;;;;;;;;;;;;;;EAmBP,OAAO;;;;;;;;;;;;;;;;;;;;;;CAsBR,CAAC;AACF,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,wBAAwB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;CAsBR,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCR,CAAC;AACF,CAAC;AAED,iGAAiG;AACjG,MAAM,6BAA6B,GAAG;;;;;0EAKoC,CAAC;AAE3E;;;;;;;;GAQG;AACH,MAAM,+BAA+B,GAAG;;;;;2EAKmC,CAAC;AAE5E,oFAAoF;AACpF,MAAM,0BAA0B,GAAG;;;CAGlC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,mBAAmB,CAAC,IAA0B;IACrD,MAAM,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC;IAC3B,OAAO;;;;;;;;;;;;;;;;;EAiBP,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,uBAAuB,EAAE;EAC7D,wBAAwB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6C1B,kBAAkB,EAAE;;;;;iGAK2E,GAAG,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,EAAE;;;;EAI1K,GAAG,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,+BAA+B;;;EAGrE,GAAG,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE;iCACN,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wCAAwC;;;kBAGlE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;;;;;;CAMxD,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iCAAiC;IAC/C,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC;AAuDD,MAAM,UAAU,kBAAkB,CAAC,QAAyB;IAC1D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,sBAAsB,CAAC,WAAwC;IACtE,MAAM,IAAI,GACR,WAAW,KAAK,SAAS;QACvB,CAAC,CAAC;;;YAGI;QACN,CAAC,CAAC,4BAA4B,WAAW,+FAA+F,CAAC;IAE7I,OAAO;;;;;;EAMP,IAAI;;;;;;;;;wCASkC,CAAC;AACzC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,WAAwC,EACxC,YAA+B,YAAY,CAAC,aAAa,CAAC;IAE1D,iGAAiG;IACjG,iGAAiG;IACjG,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC,UAAU,CAAC;IAChD,iGAAiG;IACjG,+DAA+D;IAC/D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IACrG,MAAM,YAAY,GAChB,OAAO,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,yFAAyF;YACzF,OAAO,WAAW,CAAC,OAAO,CAAC,oDAAoD,CAAC;IACtF,OAAO;;;;;;;;;;;sCAW6B,UAAU;;gDAEA,UAAU;;;;;;;;;kBASxC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2B9B,kBAAkB;;MAElB,kBAAkB;;;;6FAIqE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgDrG,kBAAkB;;;;;;;;;;;;;IAalB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BpB,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6FzB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;IAuBlB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+BlB,kBAAkB;;;;;;;;;;;;aAYT,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuC3B,kBAAkB,sFAAsF,kBAAkB,gFAAgF,kBAAkB,gGAAgG,kBAAkB;;;;;;;;;;;;;wFAa1P,kBAAkB;wOAC8H,kBAAkB;;;;;;;;;;;;;;;;;;;;EAoBxP,sBAAsB,CAAC,WAAW,CAAC;CACpC,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;EAoBP,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyH9B,8BAA8B;;;;;;;;;;;;;;;;;;;YAmBpB,kBAAkB;;;IAG1B,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BrB,CAAC;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6JR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;IAyBL,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFpB,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDjC,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DR,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmER,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAa,EAAE,QAAmB;IACnE,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3B,4FAA4F;IAC5F,iGAAiG;IACjG,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS;QACzC,CAAC,CAAC;;;gDAG0C;QAC5C,CAAC,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC;8FAC2D,CAAC;IAC7F,OAAO;;EAEP,KAAK;QACH,CAAC,CAAC,8GAA8G;QAChH,CAAC,CAAC,0KAA0K;;;;EAI9K,KAAK,IAAI,iEAAiE;;;;;;;;;;EAU1E,0BAA0B;;;;EAI1B,YAAY;;;;;CAKb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCR,CAAC;AACF,CAAC"}
@@ -5,9 +5,12 @@ import { aliasSourceDir } from './aliases.js';
5
5
  import { renderPackageJson, renderTsconfig, renderIndexHtml, renderViteConfig, renderVitePublishConfig, renderVitePublishStandaloneConfig, renderGitignore, renderBitmagicJson, renderAgentsMd, renderGameDesignMd, renderClaudeMd, renderJudgeSkill, renderThemingSkill, renderGenerateSkill, renderPlanningSkill, renderEngineApiSkill, renderUsageSkill, } from './project-files.js';
6
6
  import { renderCreatorCollaborationSkill, renderPublishingSkill, renderKiroSteering, renderSkillsReadme, renderTrailerSkill, renderTrailerCraftReference, } from './skill-files.js';
7
7
  import { renderAssetPipelinesSkill } from './asset-pipeline-skill-files.js';
8
+ import { renderMetaHumanSkill } from './metahuman-skill-files.js';
8
9
  import { renderUnityLevelsSkill, renderUnityLevelsTrapsReference, renderUnityLevelsFbxReference, renderUnityLevelsPhysicsReference, renderUnityLevelsVerificationReference, } from './unity-skill-files.js';
9
10
  import { renderBlenderLevelsSkill, renderBlenderConventionsReference, renderBlenderAuditsReference, renderBlenderPassesReference, renderBlenderEngineHandoffReference, } from './blender-level-skill-files.js';
10
11
  import { ALWAYS_AGENTS, dedupeAgents, skillDirsFor } from './agent-targets.js';
12
+ import { CHARACTER_RIGGING_SKILLS } from './character-rigging-skill-files.js';
13
+ import { CHARACTER_SKIN_SKILLS } from './character-skin-skill-files.js';
11
14
  import { hashAgentsMd } from './agents-md.js';
12
15
  import { CLAUDE_SETTINGS_FILE, renderClaudeSettings } from './claude-settings.js';
13
16
  /**
@@ -162,6 +165,8 @@ export function writeProjectFile(root, relativePath, contents) {
162
165
  * directory rather than each renderer being written twice.
163
166
  */
164
167
  export const SHIPPED_SKILLS = [
168
+ ...CHARACTER_RIGGING_SKILLS,
169
+ ...CHARACTER_SKIN_SKILLS,
165
170
  ['README.md', renderSkillsReadme],
166
171
  ['generating-assets/SKILL.md', renderGenerateSkill],
167
172
  ['choosing-asset-pipelines/SKILL.md', renderAssetPipelinesSkill],
@@ -184,6 +189,7 @@ export const SHIPPED_SKILLS = [
184
189
  ['building-levels-in-blender/references/audits-and-review.md', renderBlenderAuditsReference],
185
190
  ['building-levels-in-blender/references/level-design-passes.md', renderBlenderPassesReference],
186
191
  ['building-levels-in-blender/references/engine-handoff.md', renderBlenderEngineHandoffReference],
192
+ ['importing-metahumans/SKILL.md', renderMetaHumanSkill],
187
193
  ];
188
194
  /**
189
195
  * Files a particular agent needs that are not skills, written only for a project that named it.
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"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"}
@@ -88,7 +88,7 @@ ${alsoWritten}
88
88
  \`planning-a-game/\`, \`finding-engine-apis/\`, \`generating-assets/\`, \`choosing-asset-pipelines/\`,
89
89
  \`checking-usage/\`, \`judging-quality/\`, \`theming-the-hud/\`, \`making-a-trailer/\`,
90
90
  \`publishing-a-game/\`, \`working-with-the-creator/\`, \`converting-unity-levels/\`,
91
- \`building-levels-in-blender/\` — and this README — are shipped by the Bitmagic CLI and **re-rendered by \`bitmagic upgrade\`**. They
91
+ \`building-levels-in-blender/\`, \`rigging-characters/\`, \`character-skin-authoring/\`, \`importing-metahumans/\` — and this README — are shipped by the Bitmagic CLI and **re-rendered by \`bitmagic upgrade\`**. They
92
92
  describe what the CLI and the engine can do, so they have to stay current with both; edits to them
93
93
  are lost on the next upgrade.
94
94
 
@@ -96,6 +96,8 @@ are lost on the next upgrade.
96
96
  |---|---|
97
97
  | \`planning-a-game/\` | starting a game, a genre, or anything touching more than one gameplay feature — scoping the first playable slice and writing \`mechanics-plan.md\` |
98
98
  | \`finding-engine-apis/\` | you need an engine API and do not know its name or signature, or \`bitmagic check\` cannot resolve a symbol |
99
+ | \`rigging-characters/\` | rigging or repairing a character in local Blender, including skin weights, fingers and optional appendages |
100
+ | \`character-skin-authoring/\` | mapping exposed skin on a generated or imported character with local-agent vision, reviewing face and body detail, or diagnosing skin material boundaries before optical eye work |
99
101
  | \`generating-assets/\` | the game needs a skybox, a background, a custom block type, sound, music, image, character, animation or vehicle |
100
102
  | \`choosing-asset-pipelines/\` | deciding HOW to make something — which command, skill, file or free built-in fits a level, character, prop, vehicle, weapon, sky, block, image, animation, audio or cutscene need, roughly what it costs in sparks and minutes, and when to ask the creator before an expensive one |
101
103
  | \`checking-usage/\` | asked what sparks were spent on, how much Pro allowance is left, or whether there is enough left to keep generating |
@@ -105,7 +107,8 @@ are lost on the next upgrade.
105
107
  | \`publishing-a-game/\` | shipping the game to bitmagic.ai — the verify gate, public vs private, thumbnails, category tags, and every way \`bitmagic publish\` can refuse |
106
108
  | \`working-with-the-creator/\` | they are editing alongside you — gizmo drags into \`world.json\`, a pasted frame from their game, \`.bitmagic/edit/events.jsonl\`, their phone |
107
109
  | \`converting-unity-levels/\` | a creator wants a Unity scene or game ported, replicated or "brought over" — reusing its prefabs, FBX models and colliders — or a converted level has pieces rotated, mis-scaled, walls that do not collide, an empty corner |
108
- | \`building-levels-in-blender/\` | a hand-designed low-poly world — an interior, a station, a stylised set, "not voxels", "in Blender" — built from a Python script into one GLB the engine's MeshLevel loads, and the \`artStyle: "low-poly"\` switch in game.json that makes the cover, asset and judge defaults follow; or such a level has walls you fall through, doors that do not open, z-fighting, an empty world after publish. Its first section says when the path is yours |
110
+ | \`building-levels-in-blender/\` | a hand-designed low-poly world — an interior, a station, a stylised set, "not voxels", "in Blender" — for a frontier model (Claude Opus/Fable, GPT-6 class) with Blender 4.2+, any other model forges instead; built from a Python script into one GLB the engine's MeshLevel loads, and the \`artStyle: "low-poly"\` switch in game.json that makes the cover, asset and judge defaults follow; or such a level has walls you fall through, doors that do not open, z-fighting, an empty world after publish. Its first section says when the path is yours |
111
+ | \`importing-metahumans/\` | a creator wants an Epic MetaHuman, an Unreal character, a "photoreal" or "highest fidelity" character brought in as the playable high-res player — the GLB preparation (\`bitmagic tools install metahuman\`), the retarget / helper-joint / hair fixes, materials, lip-sync — or such a character has floating hair, crossed arms, split legs, a torn shirt, tinted skin, black eyes, slumped shoulders |
109
112
 
110
113
  Every other directory here is yours. \`upgrade\` never opens a skill it does not ship, and never
111
114
  deletes anything under a skills directory. Put project-specific guidance in a skill of your own, or
@@ -1 +1 @@
1
- {"version":3,"file":"skill-files.js","sourceRoot":"","sources":["../../src/scaffold/skill-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAsB;IAC7E,2FAA2F;IAC3F,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IAC7F,6FAA6F;IAC7F,0EAA0E;IAC1E,MAAM,WAAW,GACf,QAAQ,CAAC,MAAM,KAAK,CAAC;QACnB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,8FAA8F;YAC9F,mEAAmE;YACnE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5C,iFAAiF,CAAC;IAExF,OAAO;;sBAEa,SAAS,SAAS,iBAAiB,CAAC,SAAS,CAAC;;;EAGlE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BZ,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6JR,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/F,OAAO,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HR,CAAC;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B;IAC7C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkER,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"skill-files.js","sourceRoot":"","sources":["../../src/scaffold/skill-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAsB;IAC7E,2FAA2F;IAC3F,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IAC7F,6FAA6F;IAC7F,0EAA0E;IAC1E,MAAM,WAAW,GACf,QAAQ,CAAC,MAAM,KAAK,CAAC;QACnB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,8FAA8F;YAC9F,mEAAmE;YACnE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5C,iFAAiF,CAAC;IAExF,OAAO;;sBAEa,SAAS,SAAS,iBAAiB,CAAC,SAAS,CAAC;;;EAGlE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BZ,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6JR,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/F,OAAO,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HR,CAAC;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B;IAC7C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkER,CAAC;AACF,CAAC"}