@genex-ai/cli-demo 0.71.0 → 0.74.0-dev.190

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 (42) hide show
  1. package/dist/index.js +354 -8
  2. package/package.json +2 -1
  3. package/templates/controllers/character/follow-camera.ts +15 -4
  4. package/templates/controllers/character/vrm/vrm-loader.ts +74 -11
  5. package/templates/controllers/quality/governor.ts +147 -0
  6. package/templates/controllers/quality/pick-asset.ts +57 -0
  7. package/templates/controllers/quality/tier.ts +170 -0
  8. package/templates/skills/genex-ai-hud/SKILL.md +11 -2
  9. package/templates/skills/genex-ai-menu/SKILL.md +18 -2
  10. package/templates/skills/genex-ai-skybox/SKILL.md +15 -4
  11. package/templates/skills/genex-ai-texture/SKILL.md +1 -1
  12. package/templates/skills/genex-ai-video/SKILL.md +1 -1
  13. package/templates/skills/genex-explore/SKILL.md +1 -1
  14. package/templates/skills/genex-getting-started/SKILL.md +2 -2
  15. package/templates/skills/genex-threejs-adaptive-quality/SKILL.md +141 -0
  16. package/templates/skills/genex-threejs-adaptive-quality/references/adaptive-quality.md +105 -0
  17. package/templates/skills/genex-threejs-bloom/SKILL.md +4 -1
  18. package/templates/skills/genex-threejs-bloom/references/bloom.md +1 -1
  19. package/templates/skills/genex-threejs-camera-direction/SKILL.md +62 -12
  20. package/templates/skills/genex-threejs-camera-direction/references/camera-rigs.md +62 -0
  21. package/templates/skills/genex-threejs-character-controller/references/wiring.md +9 -3
  22. package/templates/skills/genex-threejs-embed-auth/SKILL.md +4 -1
  23. package/templates/skills/genex-threejs-game-feel/SKILL.md +4 -1
  24. package/templates/skills/genex-threejs-game-ui/SKILL.md +113 -30
  25. package/templates/skills/genex-threejs-game-ui/references/style-capsules.md +4 -1
  26. package/templates/skills/genex-threejs-image-pipeline/SKILL.md +5 -0
  27. package/templates/skills/genex-threejs-image-pipeline/references/image-pipeline.md +1 -1
  28. package/templates/skills/genex-threejs-lighting-design/SKILL.md +5 -1
  29. package/templates/skills/genex-threejs-multiplayer/SKILL.md +7 -1
  30. package/templates/skills/genex-threejs-multiplayer/references/host-physics.md +6 -3
  31. package/templates/skills/genex-threejs-physics-rapier/references/colliders-from-assets.md +1 -0
  32. package/templates/skills/genex-threejs-screen-space-ambient-occlusion/references/ambient-occlusion.md +1 -1
  33. package/templates/skills/genex-threejs-shadow-systems/SKILL.md +6 -0
  34. package/templates/skills/genex-threejs-shadow-systems/references/shadow-systems.md +1 -1
  35. package/templates/skills/genex-threejs-skill-router/SKILL.md +26 -5
  36. package/templates/skills/genex-threejs-skill-router/references/routing-map.md +25 -9
  37. package/templates/skills/genex-threejs-spectral-ocean/references/spectral-ocean.md +1 -1
  38. package/templates/skills/genex-threejs-touch-controls/SKILL.md +11 -0
  39. package/templates/skills/genex-threejs-vehicle-controllers/references/enter-exit.md +7 -0
  40. package/templates/skills/genex-threejs-visual-validation/SKILL.md +36 -12
  41. package/templates/skills/genex-threejs-water-optics/references/water-optics.md +1 -1
  42. package/templates/skills/genex-updates/SKILL.md +1 -1
@@ -72,9 +72,17 @@ everything twice.
72
72
  skill's "Self-testing a draft" section) — so you see the game, not the
73
73
  sign-in gate.
74
74
  2. Press each documented control once (keys, pointer); assert a **visible
75
- response** to every onethe player moves, the camera turns, the button
76
- fires. For an animated character, capture idle, walk, run, crouch-idle,
77
- crouch-move, and jump. Inspect shoulders, elbows, wrists, and hands as well
75
+ response in its labeled direction** this is the input-direction pass, and
76
+ it is part of THIS check, not an extra testing loop. Hold `KeyD`/ArrowRight
77
+ ~0.5s and screenshot-diff: the controlled thing moves or turns toward
78
+ screen-RIGHT (for a pan camera the viewport slides right — the terrain
79
+ streams LEFT); `KeyA`/ArrowLeft mirrors it. Keyboard synthesis needs no
80
+ pointer lock, so this works headless. For drag rigs, drag right AND drag up:
81
+ both axes must follow the one stated convention (grab-the-world or
82
+ move-the-camera — never one each). A response in the WRONG direction is a
83
+ fail, not a note: two shipped games passed "controls respond" while D
84
+ steered screen-left. For an animated character, capture idle, walk, run,
85
+ crouch-idle, crouch-move, and jump. Inspect shoulders, elbows, wrists, and hands as well
78
86
  as the feet: a fully bound non-T-pose can still be stylistically broken.
79
87
  Reject shrugging palms-up poses, permanently raised elbows, or a gait whose
80
88
  upper-body style contradicts the requested character. “No T-pose” is not
@@ -104,16 +112,24 @@ everything twice.
104
112
  floating above detached wheels means the model was box-fit against the
105
113
  preset's wheelbase (the vehicle skill's "Custom generated bodies" rules
106
114
  fix it).
107
- 6. Aim games get one extra pass (MANDATORY bucket — first-person or mouse-aimed):
108
- state which pointer bucket the game chose; click the canvas and assert the
109
- pointer locks (cursor gone, mouse-RIGHT turns the view RIGHT check the axis,
110
- not just that it moves); press Esc and assert the "click to aim/resume" cue
111
- appears. The cue should be the bundled `createAimCue` helper (or an equivalent
115
+ 6. The cursor pass every game, per the lock-or-tool rule: during play the OS
116
+ cursor is either the gameplay tool (cursor-core confirm the explicit
117
+ `pointerLockAim: false` opt-out, cursor stays) or it is LOCKED away; a
118
+ non-cursor-core game with the arrow parked over the action is a defect, even
119
+ a keyboard-only racer. Aim games additionally: click the canvas and assert
120
+ the pointer locks (cursor gone, mouse-RIGHT turns the view RIGHT and
121
+ mouse-UP looks UP — name BOTH axes; yaw-only evidence has let inverted pitch
122
+ ship); press Esc and assert the "click to aim/resume" cue appears. The cue
123
+ should be the bundled `createAimCue` helper (or an equivalent
112
124
  `onAimChange`-driven overlay) — a MANDATORY-bucket game with no unlocked cue
113
- fails. Also confirm a cursor-core game opted OUT (`pointerLockAim: false`) so it
114
- isn't grabbing the cursor. Headless caveat: `requestPointerLock` throws in
115
- headless Chromium assert the wiring and the unlocked cue in a screenshot, and
116
- say plainly that the lock itself needs one manual click.
125
+ fails. Games with a menu additionally: on the main menu, click one item that
126
+ does NOT start play (Settings/Options/Credits) the cursor must remain
127
+ visible; the lock may only ever engage from the Play/Resume click or a
128
+ gameplay canvas click (the phase binding `setPaused(phase !== "playing")` is
129
+ what guarantees this — check it rides `setPhase`, not the render loop).
130
+ Headless caveat: `requestPointerLock` throws in headless Chromium —
131
+ assert the wiring and the unlocked cue in a screenshot, and say plainly that
132
+ the lock itself needs one manual click (do the both-axes look check there).
117
133
  7. **Ask the scene the three things the screenshot cannot answer** (below). Run it
118
134
  once, in the same browser you already have open.
119
135
 
@@ -279,6 +295,14 @@ visual-system work — the sequence above.
279
295
 
280
296
  - a MANDATORY-bucket aim game never requests pointer lock, or locks with no
281
297
  visible unlocked cue;
298
+ - a movement key or look axis whose on-screen direction contradicts its label
299
+ (D turning the vehicle screen-left, mouse-up looking down with no invert
300
+ option);
301
+ - drag-pan axes that mix conventions (one axis grab-the-world, the other
302
+ move-the-camera);
303
+ - a non-cursor-core game that leaves the OS cursor visible during play;
304
+ - a menu or settings click locks the pointer (or the cursor vanishes) while a
305
+ menu screen is still up;
282
306
  - approval relies on a single frame;
283
307
  - post-processing cannot be disabled per pass;
284
308
  - random seeds are not reproducible;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Use this reference for bounded or analytic water with shared displacement and normals, derivative-filtered detail, analytic reflection, heuristic refraction, absorption, and crest foam. Use `$genex-threejs-spectral-ocean` for stochastic FFT seas.
4
4
 
5
- > **Renderer note:** this reference assumes `WebGPURenderer` + TSL node materials. Check the project's actual renderer first — the Genex scaffold ships vanilla WebGL three.js. On WebGL, adapt the technique with standard materials / `EffectComposer` passes or pick a simpler alternative; never switch renderers mid-project.
5
+ > **Renderer note:** this reference assumes `WebGPURenderer` + TSL node materials. Check the project's actual renderer first — the Genex scaffold ships vanilla WebGL three.js. On WebGL, adapt the technique with standard materials / `EffectComposer` passes or pick a simpler alternative; never switch renderers mid-project. Either way the effect obeys the device tier (`$genex-threejs-adaptive-quality`): expensive passes are desktop-tier, and on WebGPU the per-target MSAA sample count is a runtime knob the governor may drive.
6
6
 
7
7
  ## Contents
8
8
 
@@ -38,7 +38,7 @@ update, so update immediately.)
38
38
  Run exactly the command the nudge printed, from the game project root:
39
39
 
40
40
  ```bash
41
- npm i -D @genex-ai/cli-demo@latest # the genex CLI (a dev dependency)
41
+ npm i -D @genex-ai/cli-demo@dev # the genex CLI (a dev dependency)
42
42
  npm i @genex-ai/embed-sdk@latest # identity/saves SDK (ships inside the game)
43
43
  npm i @genex-ai/multiplayer@latest # multiplayer SDK (only if the game uses it)
44
44
  ```