@genex-ai/cli-demo 0.6.0 → 0.6.2

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 (45) hide show
  1. package/dist/index.js +5 -0
  2. package/package.json +1 -1
  3. package/templates/skills/genex-threejs-atmosphere-aerial-perspective/SKILL.md +30 -18
  4. package/templates/skills/genex-threejs-atmosphere-aerial-perspective/references/atmosphere.md +204 -20
  5. package/templates/skills/genex-threejs-bloom/SKILL.md +29 -18
  6. package/templates/skills/genex-threejs-bloom/references/bloom.md +176 -20
  7. package/templates/skills/genex-threejs-camera-direction/SKILL.md +38 -26
  8. package/templates/skills/genex-threejs-camera-direction/references/camera-rigs.md +359 -27
  9. package/templates/skills/genex-threejs-exposure-color-grading/SKILL.md +27 -18
  10. package/templates/skills/genex-threejs-exposure-color-grading/references/exposure-grading.md +196 -21
  11. package/templates/skills/genex-threejs-image-pipeline/SKILL.md +38 -17
  12. package/templates/skills/genex-threejs-image-pipeline/references/image-pipeline.md +185 -29
  13. package/templates/skills/genex-threejs-procedural-animation/SKILL.md +34 -21
  14. package/templates/skills/genex-threejs-procedural-animation/references/procedural-motion.md +353 -24
  15. package/templates/skills/genex-threejs-procedural-architecture/SKILL.md +36 -17
  16. package/templates/skills/genex-threejs-procedural-architecture/references/architecture-systems.md +500 -22
  17. package/templates/skills/genex-threejs-procedural-fields/SKILL.md +59 -24
  18. package/templates/skills/genex-threejs-procedural-fields/references/field-systems.md +222 -25
  19. package/templates/skills/genex-threejs-procedural-geometry/SKILL.md +34 -20
  20. package/templates/skills/genex-threejs-procedural-geometry/references/mesh-systems.md +192 -26
  21. package/templates/skills/genex-threejs-procedural-materials/SKILL.md +55 -18
  22. package/templates/skills/genex-threejs-procedural-materials/references/material-systems.md +189 -22
  23. package/templates/skills/genex-threejs-procedural-planets/SKILL.md +36 -18
  24. package/templates/skills/genex-threejs-procedural-planets/references/planet-systems.md +489 -21
  25. package/templates/skills/genex-threejs-procedural-vegetation/SKILL.md +35 -25
  26. package/templates/skills/genex-threejs-procedural-vegetation/references/vegetation-systems.md +304 -27
  27. package/templates/skills/genex-threejs-procedural-vfx/SKILL.md +26 -18
  28. package/templates/skills/genex-threejs-procedural-vfx/references/vfx-systems.md +208 -20
  29. package/templates/skills/genex-threejs-raymarched-space-effects/SKILL.md +25 -18
  30. package/templates/skills/genex-threejs-raymarched-space-effects/references/space-effects.md +185 -21
  31. package/templates/skills/genex-threejs-screen-space-ambient-occlusion/SKILL.md +23 -17
  32. package/templates/skills/genex-threejs-screen-space-ambient-occlusion/references/ambient-occlusion.md +430 -20
  33. package/templates/skills/genex-threejs-shadow-systems/SKILL.md +29 -18
  34. package/templates/skills/genex-threejs-shadow-systems/references/shadow-systems.md +420 -21
  35. package/templates/skills/genex-threejs-skill-router/SKILL.md +21 -21
  36. package/templates/skills/genex-threejs-spectral-ocean/SKILL.md +30 -20
  37. package/templates/skills/genex-threejs-spectral-ocean/references/spectral-ocean.md +462 -22
  38. package/templates/skills/genex-threejs-temporal-surfaces/SKILL.md +26 -17
  39. package/templates/skills/genex-threejs-temporal-surfaces/references/temporal-surfaces.md +198 -20
  40. package/templates/skills/genex-threejs-visual-validation/SKILL.md +34 -18
  41. package/templates/skills/genex-threejs-visual-validation/references/visual-validation.md +396 -32
  42. package/templates/skills/genex-threejs-volumetric-clouds/SKILL.md +33 -17
  43. package/templates/skills/genex-threejs-volumetric-clouds/references/volumetric-clouds.md +570 -21
  44. package/templates/skills/genex-threejs-water-optics/SKILL.md +33 -18
  45. package/templates/skills/genex-threejs-water-optics/references/water-optics.md +184 -20
@@ -1,29 +1,207 @@
1
- # Temporal Surfaces
1
+ # Touch-history frost accumulation
2
2
 
3
- Use this reference for persistent interaction effects.
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
4
 
5
- ## History buffer
5
+ ## Contents
6
6
 
7
- - Store history in one or more render targets.
8
- - Ping-pong read and write targets each update.
9
- - Keep UV or screen-space mapping explicit.
10
- - Reset on scene reload, resize, or level restart.
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
11
14
 
12
- ## Event writing
13
15
 
14
- - Convert pointer, collision, projectile, or gameplay events into stable
15
- coordinates.
16
- - Write shape, strength, radius, and timestamp or age.
17
- - Avoid direct dependence on frame rate.
16
+ ## Exact pass graph
18
17
 
19
- ## Decay and blur
18
+ The frame graph owns these targets:
20
19
 
21
- - Apply decay before or after new input intentionally.
22
- - Use separable blur for large soft effects.
23
- - Keep low-resolution buffers from causing visible blockiness.
24
- - Expose unblurred and blurred views.
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 |
25
30
 
26
- ## Compositing
31
+ Per-frame order is fixed:
27
32
 
28
- Temporal history can drive opacity, frost, wetness, scorch, refraction, glow, or
29
- normal distortion. Keep the visual role clear and provide a no-history fallback.
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.
@@ -5,28 +5,44 @@ description: Validate Genex Three.js game visuals in a real browser. Use for fix
5
5
 
6
6
  # Genex Three.js Visual Validation
7
7
 
8
- Validate the mechanism that creates the image, not just one attractive frame.
9
- For Genex games, also validate that the canvas runs and responds to input.
10
-
11
- Read [references/visual-validation.md](references/visual-validation.md) for the
12
- evidence checklist and rejection conditions.
8
+ Evaluate the mechanism that creates the image. A beautiful hero screenshot can hide unstable fields, broken depth, seed failures, or post-processing dependence.
13
9
 
14
10
  ## Validation sequence
15
11
 
16
- 1. Freeze seed, camera, time, quality tier, and viewport.
17
- 2. Capture final image and no-post baseline.
12
+ 1. Freeze deterministic inputs.
13
+ 2. Capture the no-post baseline.
18
14
  3. Capture system-specific diagnostic views.
19
- 4. Check near, design, and far camera distances.
20
- 5. Sweep at least one alternate seed or parameter extreme.
21
- 6. Check motion, pause/resume, resize, and input response.
22
- 7. Record frame timing and render-target inventory when available.
23
- 8. Keep written invariants and known compromises.
15
+ 4. Test the intended camera-distance envelope.
16
+ 5. Sweep representative seeds and parameter extremes.
17
+ 6. Test motion and temporal stability.
18
+ 7. Record image, geometry, memory, and timing budgets.
19
+ 8. Keep a small regression set tied to visual invariants.
20
+
21
+ Read [references/visual-validation.md](references/visual-validation.md)
22
+ for visual contracts, required inspection controls, mechanism-specific
23
+ evidence, temporal checks, budgets, and explicit rejection criteria.
24
+
25
+ ## Required evidence
26
+
27
+ - fixed camera and seed manifest;
28
+ - final and no-post captures;
29
+ - field/pass diagnostic mosaic;
30
+ - near, design, and far camera views;
31
+ - at least one stress seed;
32
+ - frame-time and render-target inventory;
33
+ - written invariants and known compromises.
24
34
 
25
35
  ## Failure conditions
26
36
 
27
- - Approval relies on one screenshot.
28
- - The scene only reads with bloom, haze, or grading enabled.
29
- - Random seeds are not reproducible.
30
- - Debug views are unavailable for generated fields or passes.
31
- - Browser canvas is blank, off-frame, unresponsive, or broken after resize.
32
- - Temporal artifacts are judged only from still images.
37
+ - approval relies on a single frame;
38
+ - post-processing cannot be disabled per pass;
39
+ - random seeds are not reproducible;
40
+ - GPU time is inferred only from CPU frame time;
41
+ - temporal artifacts are judged from still images;
42
+ - comparison thresholds ignore intentional stochastic pixels without stabilizing them.
43
+
44
+ ## Routing boundary
45
+
46
+ This skill evaluates an implementation; it does not supply the implementation
47
+ mechanism. Load the subject or image-effect skill first, then use this protocol
48
+ to decide whether the result is acceptable.