@genex-ai/cli-demo 0.6.1 → 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.
- package/package.json +1 -1
- package/templates/skills/genex-threejs-atmosphere-aerial-perspective/SKILL.md +30 -18
- package/templates/skills/genex-threejs-atmosphere-aerial-perspective/references/atmosphere.md +204 -20
- package/templates/skills/genex-threejs-bloom/SKILL.md +29 -18
- package/templates/skills/genex-threejs-bloom/references/bloom.md +176 -20
- package/templates/skills/genex-threejs-camera-direction/SKILL.md +38 -26
- package/templates/skills/genex-threejs-camera-direction/references/camera-rigs.md +359 -27
- package/templates/skills/genex-threejs-exposure-color-grading/SKILL.md +27 -18
- package/templates/skills/genex-threejs-exposure-color-grading/references/exposure-grading.md +196 -21
- package/templates/skills/genex-threejs-image-pipeline/SKILL.md +38 -17
- package/templates/skills/genex-threejs-image-pipeline/references/image-pipeline.md +185 -29
- package/templates/skills/genex-threejs-procedural-animation/SKILL.md +34 -21
- package/templates/skills/genex-threejs-procedural-animation/references/procedural-motion.md +353 -24
- package/templates/skills/genex-threejs-procedural-architecture/SKILL.md +36 -17
- package/templates/skills/genex-threejs-procedural-architecture/references/architecture-systems.md +500 -22
- package/templates/skills/genex-threejs-procedural-fields/SKILL.md +59 -24
- package/templates/skills/genex-threejs-procedural-fields/references/field-systems.md +222 -25
- package/templates/skills/genex-threejs-procedural-geometry/SKILL.md +34 -20
- package/templates/skills/genex-threejs-procedural-geometry/references/mesh-systems.md +192 -26
- package/templates/skills/genex-threejs-procedural-materials/SKILL.md +55 -18
- package/templates/skills/genex-threejs-procedural-materials/references/material-systems.md +189 -22
- package/templates/skills/genex-threejs-procedural-planets/SKILL.md +36 -18
- package/templates/skills/genex-threejs-procedural-planets/references/planet-systems.md +489 -21
- package/templates/skills/genex-threejs-procedural-vegetation/SKILL.md +35 -25
- package/templates/skills/genex-threejs-procedural-vegetation/references/vegetation-systems.md +304 -27
- package/templates/skills/genex-threejs-procedural-vfx/SKILL.md +26 -18
- package/templates/skills/genex-threejs-procedural-vfx/references/vfx-systems.md +208 -20
- package/templates/skills/genex-threejs-raymarched-space-effects/SKILL.md +25 -18
- package/templates/skills/genex-threejs-raymarched-space-effects/references/space-effects.md +185 -21
- package/templates/skills/genex-threejs-screen-space-ambient-occlusion/SKILL.md +23 -17
- package/templates/skills/genex-threejs-screen-space-ambient-occlusion/references/ambient-occlusion.md +430 -20
- package/templates/skills/genex-threejs-shadow-systems/SKILL.md +29 -18
- package/templates/skills/genex-threejs-shadow-systems/references/shadow-systems.md +420 -21
- package/templates/skills/genex-threejs-skill-router/SKILL.md +21 -21
- package/templates/skills/genex-threejs-spectral-ocean/SKILL.md +30 -20
- package/templates/skills/genex-threejs-spectral-ocean/references/spectral-ocean.md +462 -22
- package/templates/skills/genex-threejs-temporal-surfaces/SKILL.md +26 -17
- package/templates/skills/genex-threejs-temporal-surfaces/references/temporal-surfaces.md +198 -20
- package/templates/skills/genex-threejs-visual-validation/SKILL.md +34 -18
- package/templates/skills/genex-threejs-visual-validation/references/visual-validation.md +396 -32
- package/templates/skills/genex-threejs-volumetric-clouds/SKILL.md +33 -17
- package/templates/skills/genex-threejs-volumetric-clouds/references/volumetric-clouds.md +570 -21
- package/templates/skills/genex-threejs-water-optics/SKILL.md +33 -18
- package/templates/skills/genex-threejs-water-optics/references/water-optics.md +184 -20
|
@@ -1,29 +1,207 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Touch-history frost accumulation
|
|
2
2
|
|
|
3
|
-
Use this reference for persistent
|
|
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
|
-
##
|
|
5
|
+
## Contents
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
18
|
+
The frame graph owns these targets:
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
31
|
+
Per-frame order is fixed:
|
|
27
32
|
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
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
|
|
17
|
-
2. Capture
|
|
12
|
+
1. Freeze deterministic inputs.
|
|
13
|
+
2. Capture the no-post baseline.
|
|
18
14
|
3. Capture system-specific diagnostic views.
|
|
19
|
-
4.
|
|
20
|
-
5. Sweep
|
|
21
|
-
6.
|
|
22
|
-
7. Record
|
|
23
|
-
8. Keep
|
|
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
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
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.
|