@genex-ai/cli-demo 0.93.0 → 0.94.0-dev.249

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 (58) hide show
  1. package/dist/index.js +26 -5
  2. package/package.json +1 -1
  3. package/templates/skills/genex-ai-model/SKILL.md +3 -2
  4. package/templates/skills/genex-ai-skybox/SKILL.md +4 -4
  5. package/templates/skills/genex-ai-texture/SKILL.md +1 -1
  6. package/templates/skills/genex-ai-video/SKILL.md +1 -1
  7. package/templates/skills/genex-game-director/SKILL.md +321 -411
  8. package/templates/skills/genex-game-director/references/design-contract.md +130 -179
  9. package/templates/skills/genex-game-director/references/routing-map.md +242 -362
  10. package/templates/skills/genex-getting-started/SKILL.md +2 -2
  11. package/templates/skills/genex-threejs-exposure-color-grading/SKILL.md +3 -7
  12. package/templates/skills/genex-threejs-multiplayer/SKILL.md +19 -2
  13. package/templates/skills/genex-threejs-procedural-assets/SKILL.md +112 -0
  14. package/templates/skills/genex-threejs-procedural-materials/SKILL.md +3 -7
  15. package/templates/skills/genex-threejs-procedural-vfx/SKILL.md +6 -11
  16. package/templates/skills/genex-threejs-shadow-systems/SKILL.md +2 -3
  17. package/templates/skills/genex-threejs-visual-validation/SKILL.md +0 -4
  18. package/templates/skills/genex-updates/SKILL.md +1 -1
  19. package/templates/skills/genex-threejs-atmosphere-aerial-perspective/SKILL.md +0 -46
  20. package/templates/skills/genex-threejs-atmosphere-aerial-perspective/references/atmosphere.md +0 -213
  21. package/templates/skills/genex-threejs-bloom/SKILL.md +0 -44
  22. package/templates/skills/genex-threejs-bloom/references/bloom.md +0 -187
  23. package/templates/skills/genex-threejs-exposure-color-grading/references/exposure-grading.md +0 -205
  24. package/templates/skills/genex-threejs-game-content/SKILL.md +0 -198
  25. package/templates/skills/genex-threejs-game-content/references/content-tables.md +0 -269
  26. package/templates/skills/genex-threejs-image-pipeline/SKILL.md +0 -56
  27. package/templates/skills/genex-threejs-image-pipeline/references/image-pipeline.md +0 -197
  28. package/templates/skills/genex-threejs-lighting-design/SKILL.md +0 -144
  29. package/templates/skills/genex-threejs-lighting-design/references/light-recipes.md +0 -137
  30. package/templates/skills/genex-threejs-open-world/SKILL.md +0 -149
  31. package/templates/skills/genex-threejs-open-world/references/terrain-streaming.md +0 -215
  32. package/templates/skills/genex-threejs-precipitation-surfaces/SKILL.md +0 -59
  33. package/templates/skills/genex-threejs-precipitation-surfaces/references/precipitation-surfaces.md +0 -181
  34. package/templates/skills/genex-threejs-procedural-architecture/SKILL.md +0 -50
  35. package/templates/skills/genex-threejs-procedural-architecture/references/architecture-systems.md +0 -509
  36. package/templates/skills/genex-threejs-procedural-fields/SKILL.md +0 -61
  37. package/templates/skills/genex-threejs-procedural-fields/references/field-systems.md +0 -232
  38. package/templates/skills/genex-threejs-procedural-geometry/SKILL.md +0 -39
  39. package/templates/skills/genex-threejs-procedural-geometry/references/mesh-systems.md +0 -202
  40. package/templates/skills/genex-threejs-procedural-materials/references/material-systems.md +0 -198
  41. package/templates/skills/genex-threejs-procedural-planets/SKILL.md +0 -48
  42. package/templates/skills/genex-threejs-procedural-planets/references/planet-systems.md +0 -498
  43. package/templates/skills/genex-threejs-procedural-vegetation/SKILL.md +0 -52
  44. package/templates/skills/genex-threejs-procedural-vegetation/references/vegetation-systems.md +0 -314
  45. package/templates/skills/genex-threejs-procedural-vfx/references/vfx-systems.md +0 -218
  46. package/templates/skills/genex-threejs-raymarched-space-effects/SKILL.md +0 -37
  47. package/templates/skills/genex-threejs-raymarched-space-effects/references/space-effects.md +0 -194
  48. package/templates/skills/genex-threejs-screen-space-ambient-occlusion/SKILL.md +0 -35
  49. package/templates/skills/genex-threejs-screen-space-ambient-occlusion/references/ambient-occlusion.md +0 -441
  50. package/templates/skills/genex-threejs-spectral-ocean/SKILL.md +0 -52
  51. package/templates/skills/genex-threejs-spectral-ocean/references/spectral-ocean.md +0 -473
  52. package/templates/skills/genex-threejs-temporal-surfaces/SKILL.md +0 -41
  53. package/templates/skills/genex-threejs-temporal-surfaces/references/temporal-surfaces.md +0 -207
  54. package/templates/skills/genex-threejs-visual-validation/references/visual-validation.md +0 -427
  55. package/templates/skills/genex-threejs-volumetric-clouds/SKILL.md +0 -49
  56. package/templates/skills/genex-threejs-volumetric-clouds/references/volumetric-clouds.md +0 -579
  57. package/templates/skills/genex-threejs-water-optics/SKILL.md +0 -57
  58. package/templates/skills/genex-threejs-water-optics/references/water-optics.md +0 -195
@@ -1,207 +0,0 @@
1
- # Touch-history frost accumulation
2
-
3
- Use this reference for screen-space frost whose visible mask and refractive response depend on persistent touch history, reduced-resolution scene blur, static crystalline fields, and two-scale normals.
4
-
5
- ## Contents
6
-
7
- - Exact pass graph
8
- - Render-target ownership
9
- - Persistent pointer state
10
- - Frost composite
11
- - Refraction output
12
- - Observed defects and required corrections
13
- - Diagnostic contract
14
-
15
-
16
- ## Exact pass graph
17
-
18
- The frame graph owns these targets:
19
-
20
- | Target | Resolution | Lifetime | Purpose |
21
- | --- | --- | --- | --- |
22
- | root | display DPR | every frame | source scene |
23
- | vertical blur | `0.4` DPR | every frame | first separable blur axis |
24
- | horizontal blur | `0.4` DPR | every frame | broad blurred source |
25
- | frost composite | display DPR | every frame | scene, blur, structure, interaction |
26
- | pointer read/write | display DPR, half-float | persistent | touched/cleared history plus tilt |
27
- | frost noise | `0.4` DPR | once | coarse crystalline structure |
28
- | frozen noise | display DPR | once | dense frozen structure |
29
- | highlight noise | display DPR | once | highlight breakup |
30
-
31
- Per-frame order is fixed:
32
-
33
- ```text
34
- root scene
35
- -> vertical blur
36
- -> horizontal blur
37
- -> frost composite
38
- -> pointer history write and swap
39
- -> display output samples the new frost target
40
- ```
41
-
42
- The frost pass therefore reads the pointer state from the previous completed
43
- frame. Preserve that one-frame history relationship unless changing it
44
- deliberately and validating the response.
45
-
46
- ## Render-target ownership
47
-
48
- The single-target helper:
49
-
50
- 1. stores `renderer.autoClear`;
51
- 2. sets the requested clear mode;
52
- 3. binds the target;
53
- 4. renders;
54
- 5. restores the default target;
55
- 6. restores `autoClear`;
56
- 7. disposes the target on owner teardown.
57
-
58
- The double-target helper writes only to `write`, exposes `read.texture` before
59
- the draw, swaps after the draw, and returns the new `read.texture`.
60
-
61
- ```text
62
- read = completed state
63
- write = destination for this update
64
- render(write, sampling read)
65
- swap(read, write)
66
- ```
67
-
68
- Both targets resize together. A production adaptation must also define whether
69
- resize preserves, resamples, or clears state. The hook resizes the
70
- targets but does not explicitly clear both histories.
71
-
72
- ## Persistent pointer state
73
-
74
- The pointer target uses:
75
-
76
- ```text
77
- R = accumulated interaction mask
78
- A = accumulated tilt-response mask
79
- G/B = duplicate R in the output
80
- ```
81
-
82
- Defaults:
83
-
84
- ```text
85
- decay per rendered frame = 0.002
86
- noise strength = 0.16
87
- frost-noise strength = 0.10
88
- mask strength = 0.30
89
- radius = 0.15 -> 0.17
90
- corner fade = 0.50 -> 0.60
91
- side fade = 0.00 -> 0.50
92
- ```
93
-
94
- The update is:
95
-
96
- ```text
97
- previous = max(previous - decay, 0)
98
- center = pointer * 0.5 + 0.5
99
- distance = aspect-corrected distance to center
100
- deposit = edge-masked noisy radial brush when touching
101
- Rnext = clamp(Rprevious + noisyDeposit, 0, 1)
102
- Anext = clamp(Aprevious + lower-noiseDeposit, 0, 1)
103
- ```
104
-
105
- The side and corner masks keep a circular deposit from clipping abruptly at
106
- viewport boundaries. The alpha channel deliberately uses a less noisy brush so
107
- device tilt can react smoothly while the visible thaw/frost boundary stays
108
- irregular.
109
-
110
- ## Frost composite
111
-
112
- The frost pass inverts pointer history:
113
-
114
- ```text
115
- clearAmount = 1 - pointer.R
116
- ```
117
-
118
- It combines three static structures:
119
-
120
- ```text
121
- base structure = mix(frozenNoise, highlightNoise, 0.30)
122
- coarse frost = contrast(frostNoise * 1.70 + frostAmount, 1.60)
123
- mask = contrast(base structure + coarse frost * clearAmount, 1.80)
124
- ```
125
-
126
- The scene treatment is coupled:
127
-
128
- ```text
129
- blurMix = clamp(clearAmount * (mask + 0.30), 0, 1)
130
- scene = mix(sharpScene, blurredScene, blurMix)
131
- scene *= (0.90, 0.90, 1.03)
132
- saturation *= 1.20
133
- brightness *= 0.70
134
- ```
135
-
136
- Frost color then mixes:
137
-
138
- ```text
139
- thin tint = (0.82, 0.86, 1.05)
140
- thick tint = (0.92, 0.96, 1.10)
141
- frost tint strength = 0.70
142
- highlight tint strength = 0.80
143
- ```
144
-
145
- The composite alpha stores the structural frost mask before the pointer is
146
- applied. The output pass uses that alpha to gate normal-map refraction.
147
-
148
- ## Refraction output
149
-
150
- The final pass samples two mirrored-repeat normal maps in screen coordinates:
151
-
152
- ```text
153
- main scale size = 1200, strength = 0.30
154
- sub scale size = 350, strength = 2.0
155
- IOR = 1.31
156
- thickness = 1.0
157
- source inset = 0.17
158
- Fresnel strength = 0.80
159
- ```
160
-
161
- The main map also produces a grayscale height weight for the sub-map. Device
162
- tilt rotates the view vector, with pointer alpha contributing up to `0.8`.
163
- Refraction is mixed only where both frost alpha and the inverse pointer mask
164
- permit it.
165
-
166
- ## Observed defects and required corrections
167
-
168
- Do not preserve these weaknesses silently:
169
-
170
- - Pointer decay is per frame, not per second. Convert it to
171
- `1 - exp(-rate * deltaSeconds)` or an equivalent time-based update.
172
- - The alpha-aware blur divides RGB and alpha by `sumW`. Fully transparent
173
- neighborhoods can make `sumW == 0`; guard with an epsilon and define the
174
- transparent result.
175
- - Blur alpha is accumulated with unmodified kernel weights but divided by the
176
- alpha-weighted RGB denominator. Treat RGB normalization and alpha
177
- normalization separately.
178
- - Pointer aspect is assigned from the low-resolution target although pointer
179
- state is high resolution. The ratio is normally equal, but ownership should
180
- use the actual pointer target.
181
- - Static targets opt out of auto-resize. A resize policy must regenerate or
182
- remap them.
183
- - Screen-space state follows the viewport, not the depicted surface. Do not use
184
- this representation for world footprints or object-bound paint.
185
-
186
- ## Diagnostic contract
187
-
188
- Expose:
189
-
190
- ```text
191
- root scene
192
- vertical blur
193
- horizontal blur
194
- each static noise target
195
- previous pointer R/A
196
- current deposit R/A
197
- next pointer R/A
198
- frost mask before pointer
199
- frost mask after pointer
200
- sharp/blur mix
201
- main and sub refraction offsets
202
- final without refraction
203
- final
204
- ```
205
-
206
- Add pause and single-step controls. Verify decay at 30, 60, and 120 FPS after
207
- correcting it to time-based behavior.
@@ -1,427 +0,0 @@
1
- # Graphics validation protocol
2
-
3
- Use this protocol to evaluate authored graphics through deterministic final
4
- frames, mechanism-isolation views, temporal evidence, scale tests, seed sweeps,
5
- and explicit GPU budgets.
6
-
7
- ## Contents
8
-
9
- - Acceptance principle
10
- - Visual contract
11
- - Required inspection controls
12
- - Mechanism-specific evidence
13
- - No-post and isolation gates
14
- - Determinism and captures
15
- - Temporal validation
16
- - Performance and resolution
17
- - Rejection criteria
18
- - Sign-off record
19
-
20
- ## Acceptance principle
21
-
22
- Accept an implementation only when all four layers agree:
23
-
24
- ```text
25
- declared visual mechanism
26
- -> inspectable implementation
27
- -> diagnostic evidence
28
- -> final image that satisfies the visual contract
29
- ```
30
-
31
- Code plausibility is insufficient. A visually weak result means the mechanism
32
- is incomplete, misweighted, or badly presented. A beautiful final frame is
33
- also insufficient when it hides field instability, broken depth, temporal
34
- failure, or dependence on post-processing.
35
-
36
- ## Visual contract
37
-
38
- Write this before tuning:
39
-
40
- ```ts
41
- type VisualContract = {
42
- subject: string
43
- identity: string[]
44
- silhouette: string[]
45
- materialSeparation: string[]
46
- motion: string[]
47
- cameraEnvelope: {
48
- near: number
49
- design: number
50
- far: number
51
- }
52
- lightingEnvelope: string[]
53
- invariants: string[]
54
- allowedDivergences: string[]
55
- frameBudgetMs: number
56
- memoryBudgetMB?: number
57
- }
58
- ```
59
-
60
- Each invariant must be observable. Replace “looks cinematic” with statements
61
- such as:
62
-
63
- ```text
64
- the primary rim remains visible without bloom
65
- the water horizon does not reveal the mesh boundary
66
- tree card roots remain attached under maximum wind
67
- planet coast width is stable from orbit to mid approach
68
- cloud history rejects across a foreground disocclusion
69
- ```
70
-
71
- When matching a supplied visual reference, record the mechanisms that create
72
- its identity and every deliberate divergence in backend, resolution, asset,
73
- scale, or composition. Do not substitute a generic category match for the
74
- specific visual contract.
75
-
76
- For a Meshy player character, the pre-animation sign-off record additionally
77
- contains:
78
-
79
- ```text
80
- two or three discussed visual directions
81
- the inspected references, when the user named one
82
- three actual concept-image URLs, all neutral A-pose
83
- the user's selected candidate
84
- high-detail source URL in R2
85
- front / back / left / right high-detail views
86
- measured high-detail face count
87
- the user's explicit approval of the separate 10,000-face triangle remesh
88
- ```
89
-
90
- Do not accept a dynamic-pose concept, a silent T-pose fallback, or a rig built
91
- from the unremeshed high-detail source. Warn before generation when held,
92
- slung, or overlapping props and straps can fuse into the body or hide limbs.
93
- Animation naturally leaves the A-pose; its limb rotations remain native.
94
- Never freeze or correct arm, hand, leg, or foot tracks. Only horizontal root or
95
- hip translation may be normalized for Rapier.
96
-
97
- ## Required inspection controls
98
-
99
- Any runnable inspection surface should expose the controls relevant to its
100
- mechanism:
101
-
102
- ```text
103
- pause / resume
104
- fixed time or time scale
105
- fixed seed
106
- fixed camera bookmarks
107
- viewport and DPR
108
- quality tier
109
- debug mode
110
- canvas capture
111
- runtime metrics
112
- reset history
113
- ```
114
-
115
- At minimum, provide:
116
-
117
- - one design camera;
118
- - near and far camera bookmarks;
119
- - final and no-post views;
120
- - every controlling field or pass needed to prove the mechanism;
121
- - a deterministic reset;
122
- - visible runtime errors and performance metrics.
123
-
124
- Controls must alter the actual pipeline. A debug dropdown that only changes a
125
- label is worse than no diagnostic because it creates false confidence.
126
-
127
- ## Mechanism-specific evidence
128
-
129
- ### Procedural growth
130
-
131
- Report topology separately from final composition:
132
-
133
- ```text
134
- branch jobs by level
135
- terminal continuations by level
136
- lateral children by level
137
- ring and leaf-card counts
138
- branch and leaf bounds
139
- seed
140
- ```
141
-
142
- Inspect:
143
-
144
- - hierarchy-only;
145
- - continuation branches;
146
- - foliage roots and rounded normals;
147
- - final composition;
148
- - maximum wind;
149
- - at least three seeds.
150
-
151
- The species identity must survive the seed sweep. Seed changes may alter
152
- branch placement and crown asymmetry; they may not turn one growth model into
153
- another.
154
-
155
- ### Spectral water
156
-
157
- Require:
158
-
159
- ```text
160
- disjoint wavelength ownership per cascade
161
- independent FFT impulse and frequency tests
162
- height and horizontal displacement fields
163
- transformed derivative maps
164
- Jacobian or breaking metric
165
- persistent foam history
166
- shared sky/reflection parameters
167
- ```
168
-
169
- Inspect individual cascades, resolved normals, breaking/foam state, and final
170
- shading. A plausible ocean frame does not prove that the FFT, derivatives, or
171
- history are correct.
172
-
173
- ### Analytic water
174
-
175
- Require displacement and normals to derive from the same wave bundle. Inspect:
176
-
177
- ```text
178
- displacement only
179
- resolved normals
180
- Fresnel
181
- reflection
182
- refraction
183
- absorption or thickness estimate
184
- crest response and foam
185
- ```
186
-
187
- Test near-grazing views, far-horizon minification, and a high-DPR capture.
188
- Reject sparkling micro-bands that survive below one pixel.
189
-
190
- ### Planet fields and atmosphere
191
-
192
- Require:
193
-
194
- ```text
195
- undeformed sphere direction
196
- macro height
197
- continents and coast
198
- climate or biome causes
199
- resolved normals and roughness
200
- surface lighting without atmosphere
201
- atmosphere only
202
- combined final
203
- ```
204
-
205
- Inspect orbit, mid approach, and close approach. Surface and atmosphere must
206
- share body center, radius, sun direction, and scale conversion. A shell that
207
- looks acceptable only against black space is not sufficient evidence of
208
- ground-to-space continuity.
209
-
210
- ### Volumetric clouds
211
-
212
- Require:
213
-
214
- ```text
215
- weather channels
216
- base-shape density
217
- detail erosion
218
- bounded ray interval
219
- beauty transmittance
220
- lighting contribution
221
- history confidence or rejection
222
- cloud shadow
223
- ```
224
-
225
- Test camera translation, foreground disocclusion, sun-angle changes, and
226
- quality-tier transitions. Still frames cannot validate temporal reconstruction.
227
-
228
- ### Curved-ray and volumetric effects
229
-
230
- Expose:
231
-
232
- ```text
233
- integration bounds
234
- step or iteration count
235
- accumulated steering
236
- density contribution
237
- remaining transmittance
238
- background lookup direction
239
- capped or invalid pixels
240
- ```
241
-
242
- Use a stress camera that approaches the singular or highest-curvature region.
243
- Reject NaNs, persistent capped bands, and unexplained asymmetry.
244
-
245
- ### Temporal surfaces
246
-
247
- Expose the complete state transition:
248
-
249
- ```text
250
- previous history
251
- current deposit or erase input
252
- next history
253
- blurred scene
254
- static structure
255
- composite mask
256
- resolved normal/refraction
257
- ```
258
-
259
- Test reset, resize, pointer release, repeated deposition, frame-rate changes,
260
- and long idle decay. Per-frame decay must be converted to a
261
- frame-rate-independent response.
262
-
263
- ### Shadows and post-processing
264
-
265
- For shadows, inspect:
266
-
267
- ```text
268
- level ownership
269
- committed light-space centers
270
- texel grid
271
- levels refreshed this frame
272
- cross-level blend weights
273
- normal bias in world units
274
- unshadowed outside-coverage weight
275
- ```
276
-
277
- For post effects, inspect the pre-effect signal, contribution, and final
278
- composite. Tone mapping and output conversion must have one owner.
279
-
280
- ## No-post and isolation gates
281
-
282
- Every example with image effects must expose:
283
-
284
- ```text
285
- final
286
- no bloom or presentation treatment
287
- effect contribution only
288
- controlling field or mask
289
- normal / depth / history when relevant
290
- ```
291
-
292
- Reject when:
293
-
294
- - bloom supplies the only readable silhouette;
295
- - atmosphere hides flat planet fields;
296
- - post blur hides aliasing;
297
- - a normal map implies waves absent from displaced geometry;
298
- - temporal output cannot show previous state, deposit, and next state;
299
- - a raymarch cannot reveal iteration pressure or capped pixels;
300
- - shadows are judged only in the final graded image.
301
-
302
- ## Determinism and captures
303
-
304
- Freeze:
305
-
306
- ```text
307
- seed
308
- camera transform and projection
309
- viewport
310
- DPR
311
- time or paused state
312
- quality tier
313
- backend
314
- asset versions
315
- ```
316
-
317
- Capture:
318
-
319
- ```text
320
- design view
321
- near/detail view
322
- far/silhouette view
323
- no-post baseline
324
- one controlling diagnostic
325
- one failure-sensitive diagnostic
326
- one stress condition
327
- ```
328
-
329
- Use exact camera matrices or named camera bookmarks. Reproducing a comparison
330
- by manually orbiting until it “looks close” invalidates image evidence.
331
-
332
- For stochastic pixels, either freeze the stochastic sequence or compare a
333
- stable accumulated result. Do not loosen image thresholds until they stop
334
- detecting real regressions.
335
-
336
- ## Temporal validation
337
-
338
- Use fixed-duration clips or sampled checkpoints for:
339
-
340
- - camera motion;
341
- - object motion;
342
- - history accumulation and rejection;
343
- - shadow-cache refresh;
344
- - ocean foam persistence;
345
- - cloud reconstruction;
346
- - wind deformation;
347
- - particle birth, death, and pool reuse.
348
-
349
- Record at least:
350
-
351
- ```text
352
- t = 0 reset
353
- t = first visible response
354
- t = steady state
355
- t = disocclusion or invalidation
356
- t = recovery
357
- ```
358
-
359
- Inspect at normal playback speed and frame-by-frame. Still captures cannot
360
- prove the absence of shimmer, swimming, stale history, or lifetime pops.
361
-
362
- ## Performance and resolution
363
-
364
- Report:
365
-
366
- ```text
367
- CPU frame time
368
- GPU frame time when available
369
- draw calls
370
- triangles / points / instances
371
- simulation resolution
372
- render-target count, format, and dimensions
373
- active quality tier
374
- cache updates this frame
375
- estimated GPU memory
376
- ```
377
-
378
- Never infer GPU cost solely from CPU frame time. Run a warm-up period before
379
- recording and separate shader compilation from steady-state cost.
380
-
381
- When reducing quality, identify the preserved mechanism and expected loss:
382
-
383
- | Reduction | Preserve | Expected loss |
384
- | --- | --- | --- |
385
- | lower cloud beauty resolution | density organization and lighting | edge fidelity and thin wisps |
386
- | fewer atmosphere view steps | shared scattering model | horizon smoothness |
387
- | smaller spectral grids | cascade and FFT architecture | high-frequency wave richness |
388
- | reduced shadow update budget | stable committed maps | delayed coarse-level refresh |
389
- | lower frost blur DPR | history and structure | refraction smoothness |
390
-
391
- Do not silently lower resolution until a frame looks fast enough.
392
-
393
- ## Rejection criteria
394
-
395
- Delete or withhold an example when any applies:
396
-
397
- - it is visually weaker than the supplied reference in the target feature;
398
- - its code is mostly generic material or noise boilerplate;
399
- - mechanism-defining constants or ownership were replaced by guesses;
400
- - it has no diagnostic mode proving the claimed mechanism;
401
- - it relies on post-processing to manufacture missing form;
402
- - it contains undisclosed backend, algorithm, asset, or scale divergences;
403
- - deterministic reset or fixed-camera capture is impossible;
404
- - the implementation cannot meet its declared performance envelope;
405
- - the available evidence is too weak to support excellence-level guidance.
406
-
407
- ## Sign-off record
408
-
409
- Record:
410
-
411
- ```text
412
- skill and example ID
413
- visual contract and invariants
414
- Three.js version and backend
415
- viewport, DPR, camera bookmark, seed, and time
416
- mechanisms exercised
417
- deliberate divergences
418
- debug modes inspected
419
- temporal cases inspected
420
- performance and memory metrics
421
- known defects
422
- review decision
423
- ```
424
-
425
- Publish only accepted examples. Repeat the same evidence set whenever
426
- mechanism code, Three.js version, renderer backend, camera, or quality tier
427
- changes.
@@ -1,49 +0,0 @@
1
- ---
2
- name: genex-threejs-volumetric-clouds
3
- description: Build volumetric cloud systems for Genex Three.js games. Use for weather-shaped density, bounded raymarching, cloud layers, erosion detail, lighting cones, silver lining, temporal reconstruction, cloud shadows, quality tiers, and sky drama with controlled budgets.
4
- ---
5
-
6
- # Genex Three.js Volumetric Clouds
7
-
8
- **Static clouds in a fixed sky → `$genex-ai-skybox` instead** (one command, a
9
- real 360° image). This skill is for moving, weather-driven, or fly-through
10
- clouds.
11
-
12
- Cloud quality comes from density organization, lighting, and temporal stability—not from increasing march steps over unstructured noise.
13
-
14
- ## System order
15
-
16
- 1. Define the cloud volume and layer bounds.
17
- 2. Generate or source weather, base-shape, detail, and turbulence fields.
18
- 3. Build a density function with vertical and weather profiles.
19
- 4. Raymarch only the bounded occupied segment.
20
- 5. Integrate transmittance and lighting front-to-back.
21
- 6. Reconstruct low-resolution output temporally.
22
- 7. Project a separate low-cost cloud-shadow solution.
23
-
24
- Read [references/volumetric-clouds.md](references/volumetric-clouds.md) before implementing or auditing the cloud system.
25
-
26
- ## Required controls
27
-
28
- - coverage, cloud type, precipitation, and anvil bias;
29
- - base/top altitude and vertical density profile;
30
- - shape/detail scales and erosion;
31
- - wind for each field;
32
- - primary step count, light step count, and empty-space policy;
33
- - history weight and disocclusion threshold;
34
- - cloud-shadow extent, resolution, and update rate.
35
-
36
- ## Failure conditions
37
-
38
- - density is only `fbm(position)`;
39
- - the raymarch traverses the full camera range;
40
- - detail noise adds density instead of eroding shaped masses;
41
- - temporal history is accepted across disocclusion;
42
- - shadows use the full beauty raymarch;
43
- - every cloud layer shares the same wind and density profile.
44
-
45
- ## Routing boundary
46
-
47
- Use `$genex-threejs-atmosphere-aerial-perspective` for molecular/aerosol scattering
48
- without weather density. This skill owns weather-shaped cloud volumes,
49
- reconstruction, cloud lighting, and cloud shadows.