@genex-ai/cli-demo 1.19.0-dev.601 → 1.20.0-dev.602

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genex-ai/cli-demo",
3
- "version": "1.19.0-dev.601",
3
+ "version": "1.20.0-dev.602",
4
4
  "description": "Set up your project's agent workspace (.claude/.codex/.cursor in the game folder), authorize, create a game project, generate AI assets, and publish (genex CLI).",
5
5
  "type": "module",
6
6
  "bin": {
@@ -23,7 +23,8 @@ export interface MeshyCharacterManifest {
23
23
  characterId: string;
24
24
  revision: number;
25
25
  manifestVersion: number;
26
- rig: "meshy-biped";
26
+ /** `meshy-biped`, or `uthana-biped` for a body imported with `genex character import` (same manifest shape). */
27
+ rig: "meshy-biped" | "uthana-biped";
27
28
  controllerPack?: {
28
29
  key: string;
29
30
  version: number;
@@ -95,7 +96,7 @@ function validateManifest(value: unknown): MeshyCharacterManifest {
95
96
  if (
96
97
  !manifest ||
97
98
  manifest.schema !== 1 ||
98
- manifest.rig !== "meshy-biped" ||
99
+ (manifest.rig !== "meshy-biped" && manifest.rig !== "uthana-biped") ||
99
100
  !manifest.model?.url ||
100
101
  !manifest.model.skeletonSignature ||
101
102
  !Array.isArray(manifest.clips) ||
@@ -101,12 +101,13 @@ they crop well to a portrait and read as one set across the cast.
101
101
  npx genex character preview <concept-id> --candidate <1|2|3> --user-approved
102
102
  ```
103
103
 
104
- Meshy Image-to-3D first produces an unremeshed high-detail model. Show its
105
- front, back, left, and right views and report its measured face count.
106
- Preserve that model in R2. The 10,000-face triangle remesh—not the
107
- high-detail source—is rigged and animated. In the default lane, proceed to
108
- the remesh directly; when the player explicitly requested a custom character,
109
- ask for their explicit approval first. (For the custom lane's approvals, use
104
+ Meshy 7 Image-to-3D (Ultra, 4k textures by default) first produces an
105
+ unremeshed high-detail model. Show its front, back, left, and right views and
106
+ report its measured face count. Preserve that model in R2. A triangle remesh
107
+ at the face budget you approve—not the high-detail source—is rigged and
108
+ animated. In the default lane, proceed to the remesh directly; when the player
109
+ explicitly requested a custom character, ask for their explicit approval
110
+ first. (For the custom lane's approvals, use
110
111
  your question tool when you have one; if you have none, a short numbered list
111
112
  in chat.)
112
113
 
@@ -122,10 +123,10 @@ npx genex character finalize <preview-id> \
122
123
  --animation <action-id>
123
124
  ```
124
125
 
125
- `--animation` is repeatable. Finalization uses Meshy 6, creates the approved
126
- 10k triangle remesh, rigs it, adds the immutable preview-reviewed neutral-v3
127
- idle/walk/run/crouch/jump controller pack, and stores the source, remesh, rig,
128
- and clips at permanent Genex asset URLs. It prints the complete Genex-credit
126
+ `--animation` is repeatable. Finalization creates the approved triangle
127
+ remesh from the Meshy 7 preview, rigs it, adds the immutable preview-reviewed
128
+ neutral-v3 idle/walk/run/crouch/jump controller pack, and stores the source,
129
+ remesh, rig, and clips at permanent Genex asset URLs. It prints the complete Genex-credit
129
130
  quote before enqueueing. The Meshy API key remains server-side; never ask the
130
131
  user for one or call Meshy directly from game code.
131
132
 
@@ -133,18 +134,40 @@ Meshy's public API performs automatic rigging. The manual joint-marker step
133
134
  shown in Meshy Web is not exposed through that API, so do not claim that this
134
135
  part of the hosted workflow is reproduced.
135
136
 
136
- The legacy one-shot text workflow is explicit and does not masquerade as the
137
- reviewed image-first path:
137
+ The one-shot text workflow is explicit and does not masquerade as the
138
+ reviewed image-first path. It runs the same Meshy 7 (Ultra, 4k) — the only
139
+ thing it skips is the review:
138
140
 
139
141
  ```bash
140
142
  npx genex character "compact fantasy knight" --direct-text
141
143
  ```
142
144
 
145
+ ## The quality knobs are yours to set
146
+
147
+ Every lane runs Meshy 7 with Ultra and 4k textures unless you say otherwise,
148
+ and every knob is priced in the quote the command prints before enqueueing.
149
+ Choose per role, and say the choice in one line of chat:
150
+
151
+ - `--approve-remesh <faces>` (finalize) / `--polycount <faces>` (one shot):
152
+ the rigging copy's face budget, 10000-100000. **10000** for anything seen
153
+ in a crowd or at a distance; **20000-30000** for the player's body in a
154
+ third-person game; **50000+** only for a hero seen in close-up cutscenes.
155
+ Mobile budgets favour the low end. The number moves no cost.
156
+ - `--texture 2k|4k|8k` (preview / one shot): 4k is the default; 8k (+5
157
+ credits) only for a body the camera sits on in close-up; 2k for crowds.
158
+ - `--no-ultra` (preview / one shot): −5 credits and less surface detail —
159
+ crowd enemies and stand-ins, never the player's body.
160
+ - `--pose a-pose|t-pose` (one shot): the preferred rest pose; the other
161
+ stays the structural-QA fallback.
162
+ - `--height <metres>`: 0.5-3, default 1.7.
163
+
143
164
  Useful options:
144
165
 
145
166
  ```bash
146
- npx genex character finalize <preview-id> --user-approved --approve-remesh 10000 --height 1.7
167
+ npx genex character preview <concept-id> --candidate 2 --user-approved --texture 8k
168
+ npx genex character finalize <preview-id> --user-approved --approve-remesh 30000 --height 1.7
147
169
  npx genex character finalize <preview-id> --user-approved --approve-remesh 10000 --animation 466 --no-wait
170
+ npx genex character "market guard" --direct-text --polycount 10000 --no-ultra --texture 2k
148
171
  npx genex wait <generation-id>
149
172
  ```
150
173
 
@@ -153,10 +176,10 @@ npx genex wait <generation-id>
153
176
  compatibility path. The guided parity workflow always installs neutral-v3.
154
177
  `--no-wait` returns a generation id for `genex wait`; it does not create a
155
178
  second paid request. In the default lane, `--user-approved` and
156
- `--approve-remesh 10000` record the pick you made and announced after showing
179
+ `--approve-remesh <faces>` record the pick you made and announced after showing
157
180
  the real images. When the player explicitly requested a custom character,
158
181
  never add `--user-approved` until they have actually seen and selected the
159
- candidate, and never add `--approve-remesh 10000` until they have seen the
182
+ candidate, and never add `--approve-remesh <faces>` until they have seen the
160
183
  four high-detail views and measured face count.
161
184
 
162
185
  Before handoff, capture idle, walk, run, crouch-idle, crouch-move, and jump.
@@ -165,6 +188,35 @@ shrugging palms-up poses, permanently raised elbows, or a gait whose
165
188
  upper-body style contradicts the requested character. “No T-pose” is not
166
189
  an animation-quality check.
167
190
 
191
+ ## Import a character the player already has (`character import`)
192
+
193
+ When the player hands you a humanoid mesh — their own Blender character, a
194
+ bought asset, an export from another tool — **import it, never regenerate
195
+ it**. The upload is free; Uthana then auto-rigs it (one paid call, finger
196
+ joints included) and it becomes a character of theirs:
197
+
198
+ ```bash
199
+ npx genex character import ./assets/knight.glb --height 1.8
200
+ npx genex character animate <character-id> --locomotion --no-wait # the 16-clip walk/run set
201
+ npx genex controller character --character <character-id> # once locomotion lands
202
+ ```
203
+
204
+ What Uthana needs: a **biped humanoid** in a **T- or A-pose, feet on the
205
+ ground, facing +Z**, as a `.glb` under **30 MB** (textures are the bulk —
206
+ shrink them, not the mesh). Non-biped bodies go through `npx genex model
207
+ import` + `npx genex model rig` (7 body plans) instead. `--no-fingers` skips
208
+ finger joints when the hands are blobs (Uthana warns poor finger geometry
209
+ lowers rig quality).
210
+
211
+ An imported character is **Uthana-rigged**: `character animate` in plain
212
+ words, `--locomotion` and `--video` all work on it, and the manifest reads
213
+ `rig: "uthana-biped"`. The Meshy catalog (`--animation <id>`) and the
214
+ neutral-v3 controller pack do **not** apply — those are Meshy-rig clips — so
215
+ run `--locomotion` before installing the controller, or the body stands
216
+ still. `--texture`, `--no-ultra`, `--pose` and `--polycount` are Meshy
217
+ generation knobs and are refused here: an import keeps the mesh exactly as it
218
+ is.
219
+
168
220
  ## Search first; use action IDs
169
221
 
170
222
  ```bash
@@ -66,6 +66,26 @@ URL passes through. The prompt becomes optional (it's recorded for the ledger,
66
66
  the provider works from the image alone). A clear, single-object image on a
67
67
  plain background converts best.
68
68
 
69
+ ## Bring your own mesh (`model import`)
70
+
71
+ A model the player already has — a Blender export, a bought asset, a file
72
+ from another tool — is **imported, never rebuilt**. Importing is free and
73
+ makes it a model of theirs, so every id-only lane works on it: `model rig`,
74
+ `model animate`, `model segment`, `blender import`, and "Use in game" on the
75
+ dashboard.
76
+
77
+ ```bash
78
+ npx genex model import ./assets/hero-cart.glb
79
+ ```
80
+
81
+ - `.glb` only (binary glTF 2.0), up to 64 MB. A `.gltf` + `.bin` pair or an
82
+ FBX is exported as one `.glb` first — in Blender, File → Export → glTF 2.0
83
+ with format "glTF Binary".
84
+ - The file is checked (magic, version, triangle geometry) before the row
85
+ completes; a bad file is refused and nothing is charged.
86
+ - A humanoid that should walk goes through `$genex-ai-character`'s
87
+ `character import` instead — same upload, plus a Uthana auto-rig.
88
+
69
89
  ## Split into parts (`model segment`)
70
90
 
71
91
  ```bash
@@ -256,6 +276,18 @@ scene is a ghost: players and objects pass straight through it.
256
276
 
257
277
  - `--image <path|url>` — build from a reference image (local file ≤4 MB, or a
258
278
  generated-asset URL); the prompt becomes optional.
279
+ - **Quality knobs** (Tripo H3.1; each is priced in the quote, choose per
280
+ asset and say it in one line): `--texture standard|detailed|none` (detailed
281
+ is the default and +10 credits over standard; `none` is geometry only, for
282
+ something you texture in code), `--geometry detailed` (+20 — a hero prop
283
+ the camera sits on; never for a crate), `--quad` (+5, quad-dominant mesh
284
+ for anything you will deform or edit further; face limit ≤150000),
285
+ `--low-poly` (+10, smart low-poly topology — the game-ready choice for
286
+ props that appear in numbers), `--parts` (+20, separated named parts at
287
+ generation — cheaper than `model segment` when you know up front you need
288
+ doors, wheels, magazines), `--face-limit <n>` (1000-2000000, default
289
+ 150000; the raw cap — the game still loads the @2048/@1024 rungs),
290
+ `--auto-size` (real-world metres by AI estimate).
259
291
  - `--granularity simple|balanced|detailed` — (`model segment`) part granularity.
260
292
  - `--type <plan>` — (`model rig`) body plan; omit to let the free rig-check pick.
261
293
  - `--preset walk[,run,…]` — (`model animate`) clips to retarget; billed per clip.
@@ -139,6 +139,7 @@ vendored code from memory of another engine.
139
139
  | stable large-world shadows, cascades, clipmaps, cached updates | `$genex-threejs-shadow-systems` |
140
140
  | eye adaptation, tone mapping, output color, LUT grading, and proven static grain | `$genex-threejs-exposure-color-grading` |
141
141
  | fixed-view screenshots, input direction, facing, temporal and budget evidence | `$genex-threejs-visual-validation` |
142
+ | **a model the player already has** — a `.glb` they exported, bought or made elsewhere: it is IMPORTED, never rebuilt. `npx genex model import <file.glb>` (free) for props and non-biped bodies (then `model rig`/`model animate`), `npx genex character import <file.glb>` for a humanoid that should walk (Uthana auto-rig, then `character animate --locomotion`) | `$genex-ai-model` · `$genex-ai-character` |
142
143
  | the default for a concrete object the player looks at up close: a generated GLB for a prop, vehicle, building, or object — from text or a reference image (`--image`); split into named parts (`model segment`); rig + animate any mesh (`model rig` / `model animate`). A space routed to code above does NOT settle these: a village's ground plan can be code while the forge you walk up to is generated | `$genex-ai-model` |
143
144
  | generated surface or terrain texture with real-world UV scale | `$genex-ai-texture` |
144
145
  | sky, skybox, horizon, time of day, weather mood, night or space backdrop | build it in code in the scene—there is no sky command and no owning skill, so pick the technique this game needs |
@@ -355,13 +356,14 @@ your pick. The announced pick carries the lane:
355
356
 
356
357
  `npx genex character preview <concept-id> --candidate <1|2|3> --user-approved`
357
358
 
358
- Meshy Image-to-3D first produces an unremeshed high-detail model. Show its
359
+ Meshy 7 Image-to-3D first produces an unremeshed high-detail model. Show its
359
360
  front, back, left, and right views and report its measured face count.
360
- Preserve that model in R2. The 10,000-face triangle remesh—not the high-detail
361
- source—is rigged and animated. In the default lane, the pick authorizes that
362
- remesh:
361
+ Preserve that model in R2. A triangle remesh at the face budget you approve
362
+ (10000-100000; 10000 for crowds, 20000-30000 for a third-person player
363
+ body)—not the high-detail source—is rigged and animated. In the default lane,
364
+ the pick authorizes that remesh:
363
365
 
364
- `npx genex character finalize <preview-id> --user-approved --approve-remesh 10000 [--animation <action-id>…]`
366
+ `npx genex character finalize <preview-id> --user-approved --approve-remesh <faces> [--animation <action-id>…]`
365
367
 
366
368
  When the player explicitly requested a custom character, keep the existing
367
369
  two stops: wait for their explicit candidate selection before Image-to-3D,
@@ -85,7 +85,8 @@ npx genex controller character --character <character-id>
85
85
 
86
86
  Meshy Image-to-3D first produces an unremeshed high-detail model. Show its
87
87
  front, back, left, and right views and report its measured face count. Preserve
88
- that model in R2. The 10,000-face triangle remesh—not the high-detail
88
+ that model in R2. The triangle remesh at the approved face budget (10,000
89
+ by default; up to 100,000 for a hero)—not the high-detail
89
90
  source—is rigged and animated. In the default lane proceed to it directly;
90
91
  for a player-requested custom character, ask for their explicit approval
91
92
  first (question tool when you have one; a short numbered list in chat
@@ -29,6 +29,10 @@ the rig). Route by silhouette:
29
29
  locomotion clips for exactly the shapes Meshy refuses — see
30
30
  `$genex-ai-model` for the full flow, presets, and honest limits (avian rigs
31
31
  have no preset clips; drive those bones in code).
32
+ - **A mesh the player already has** (their own creature file): `npx genex
33
+ model import <file.glb>` first — free — then the same routing by
34
+ silhouette: biped → `npx genex character import` (Uthana auto-rig),
35
+ anything else → `npx genex model rig`. Never rebuild what they handed you.
32
36
  - **Everything outside both** (swarms, blobs, amorphous things — no body plan
33
37
  to rig): the **static + procedural lane** — `npx genex model` for the body,
34
38
  motion authored in code. Say it honestly in the Assets table:
@@ -53,7 +57,10 @@ npx genex creature "hulking bone seraph, tattered wing membranes, upright stance
53
57
  ```
54
58
 
55
59
  Each creature is one Assets-table row (visible spend — the usual budget
56
- rules). The result is a rigged GLB whose clips play on a standard
60
+ rules). It runs Meshy 7 like the player body; the knobs are yours: a crowd
61
+ enemy is `--polycount 10000 --no-ultra --texture 2k`, a boss seen in close-up
62
+ `--polycount 30000` (`--texture 8k` if the camera lingers), `--pose t-pose`
63
+ when a rig keeps failing structural QA in a-pose. The result is a rigged GLB whose clips play on a standard
57
64
  `THREE.AnimationMixer`; Meshy limb rotations play unchanged — never apply
58
65
  post-mixer limb corrections. Prompt the body UPRIGHT and unpropped (held
59
66
  props fuse into bodies); prompt "facing the viewer" but never trust it —
@@ -37,7 +37,8 @@ overlapping props or straps can fuse into the character or hide a limb.
37
37
 
38
38
  Meshy Image-to-3D first produces an unremeshed high-detail model. Show its
39
39
  front, back, left, and right views and report its measured face count. Preserve
40
- that model in R2. The 10,000-face triangle remesh—not the high-detail
40
+ that model in R2. The triangle remesh at the approved face budget (10,000
41
+ by default; up to 100,000 for a hero)—not the high-detail
41
42
  source—is rigged and animated. In the default lane the remesh proceeds
42
43
  directly; for a player-requested custom character, wait for their explicit
43
44
  approval first (question tool when you have one; a short numbered list in
@@ -24,13 +24,28 @@ npx genex character preview <concept-id> --candidate 2 --user-approved
24
24
  # → a 3D preview of that one, four views. Show it; wait for approval.
25
25
 
26
26
  npx genex character finalize <preview-id> --user-approved --approve-remesh 10000
27
- # → the rigged, game-ready character.
27
+ # → the rigged, game-ready character at that face budget.
28
28
  ```
29
29
 
30
30
  Each step needs the previous step's generation id. The approval flags are not
31
31
  ceremony: they record that a person actually looked and chose, and each step
32
32
  costs credits.
33
33
 
34
+ ## The knobs (Meshy 7 on every lane)
35
+
36
+ Ultra and 4k textures are the defaults; every knob is priced in the quote.
37
+ Pick per role and say so in one line:
38
+
39
+ - `--approve-remesh <faces>` (finalize) / `--polycount <faces>` (one shot):
40
+ the rigging copy's face budget, 10000-100000 — 10000 for crowds and
41
+ distance, 20000-30000 for a third-person player body, 50000+ only for a
42
+ close-up hero. Moves no cost.
43
+ - `--texture 2k|4k|8k` (preview / one shot): 8k is +5 credits, for close-ups.
44
+ - `--no-ultra` (preview / one shot): −5 credits, less surface detail — stand-ins
45
+ and crowd enemies.
46
+ - `--pose a-pose|t-pose` (one shot): the preferred rest pose.
47
+ - `--height <metres>`: 0.5-3, default 1.7.
48
+
34
49
  ## One shot
35
50
 
36
51
  When nobody is choosing — a background NPC, a quick test:
@@ -41,7 +56,21 @@ npx genex creature "hulking bone seraph, upright stance"
41
56
  ```
42
57
 
43
58
  `creature` is the same lane with enemy defaults: no approval steps, no player
44
- controller pack. Biped-shaped bodies only.
59
+ controller pack (and priced without one). Biped-shaped bodies only. The knobs
60
+ above apply: a crowd enemy is `--polycount 10000 --no-ultra --texture 2k`.
61
+
62
+ ## Import a character the user already has
63
+
64
+ ```bash
65
+ npx genex character import ./knight.glb --height 1.8 # free upload + Uthana auto-rig (finger joints; --no-fingers skips them)
66
+ npx genex character animate <id> --locomotion # then the walk/run set — an import has no clips yet
67
+ ```
68
+
69
+ Biped humanoid, T- or A-pose, feet on the ground, facing +Z, `.glb` ≤ 30 MB.
70
+ **Never rebuild a mesh the user gives you** — import it. The result is a
71
+ Uthana-rigged body: verbs, `--locomotion` and `--video` work; the Meshy
72
+ catalog and controller pack do not. Non-biped bodies: `npx genex model
73
+ import` + `npx genex model rig`.
45
74
 
46
75
  ## Animating it
47
76
 
@@ -75,9 +104,11 @@ look here first — a library clip costs nothing to generate.
75
104
 
76
105
  ## Cost
77
106
 
78
- Typical: **15** concept · **20** preview · **30** finalize · **50** one-shot
79
- character · **26 per clip** for a generated move · **free** for a library
80
- search. Live prices and your balance: `npx genex doctor`.
107
+ Typical: **32** concept · **41** preview · **29** finalize · **64** one-shot
108
+ character · **46** creature · **18** import (Uthana auto-rig; the upload is
109
+ free) · **46 per clip** for a generated move · **free** for a library search
110
+ (1 credit = $0.01). `--texture 8k` adds 6, `--no-ultra`
111
+ takes 6 off. Live prices and your balance: `npx genex doctor`.
81
112
 
82
113
  ## Waiting
83
114
 
@@ -21,6 +21,17 @@ npx genex model --image ./reference-photo.jpg # build it FROM an image; pr
21
21
  Blocks until ready, saves the GLB into `./assets`, and prints the path. Wire the
22
22
  local path; the URL printed beside it is provenance, not hosting.
23
23
 
24
+ ## Bring your own mesh
25
+
26
+ ```bash
27
+ npx genex model import ./hero-cart.glb # free — a file you already have becomes a model of yours
28
+ ```
29
+
30
+ `.glb` only, ≤ 64 MB (export a `.gltf`/FBX as one binary `.glb` first). The
31
+ import is free and checked before it completes; after it, `segment`, `rig`,
32
+ `animate` and `character import` all take its id. **Never rebuild a mesh the
33
+ user hands you** — import it.
34
+
24
35
  ## Mesh lanes
25
36
 
26
37
  Each takes the **generation id** of a previous model — never a URL.
@@ -38,15 +49,17 @@ npx genex model animate <rig-id> --preset walk,run
38
49
  ## Options
39
50
 
40
51
  - `--image <path|url>` — build the model from a reference image (local file ≤ 4 MB, or a previous generation's URL). The prompt becomes optional.
52
+ - **Quality knobs** (Tripo H3.1, each priced in the quote — pick per asset, say it in one line): `--texture standard|detailed|none` (detailed default, +10 over standard; none = geometry only), `--geometry detailed` (+20, hero pieces only), `--quad` (+5, for meshes you will edit; face limit ≤150000), `--low-poly` (+10, game-ready topology for props in numbers), `--parts` (+20, named parts at generation), `--face-limit <n>` (1000-2000000, default 150000), `--auto-size` (real-world metres).
41
53
  - `--out-dir <dir>` — where the file lands (default `./assets`).
42
54
  - `--no-download` — print the URL only.
43
55
  - `--no-wait` — enqueue and return; pick it up with `npx genex wait <id>`.
44
56
 
45
57
  ## Cost
46
58
 
47
- From **35 credits** a model (**46** from a reference image) · **46** segment ·
48
- **29** rig · **12 per clip** for animate (1 credit = $0.01). Live prices and your
49
- balance: `npx genex doctor`.
59
+ From **35 credits** a model (**46** from a reference image; `--texture standard`
60
+ **23**, `--geometry detailed` **58**, `--low-poly` **46**, `--parts` **58**) ·
61
+ **46** segment · **29** rig · **12 per clip** for animate (1 credit = $0.01).
62
+ Live prices and your balance: `npx genex doctor`.
50
63
 
51
64
  ## Waiting
52
65