@vib3code/sdk 2.0.1 → 2.0.3-canary.75a3290

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 (136) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/DOCS/AGENT_HARNESS_ARCHITECTURE.md +243 -0
  3. package/DOCS/CLI_ONBOARDING.md +1 -1
  4. package/DOCS/CROSS_SITE_DESIGN_PATTERNS.md +117 -0
  5. package/DOCS/EPIC_SCROLL_EVENTS.md +773 -0
  6. package/DOCS/HANDOFF_LANDING_PAGE.md +154 -0
  7. package/DOCS/HANDOFF_SDK_DEVELOPMENT.md +493 -0
  8. package/DOCS/MULTIVIZ_CHOREOGRAPHY_PATTERNS.md +937 -0
  9. package/DOCS/PRODUCT_STRATEGY.md +63 -0
  10. package/DOCS/README.md +103 -0
  11. package/DOCS/REFERENCE_SCROLL_ANALYSIS.md +97 -0
  12. package/DOCS/ROADMAP.md +111 -0
  13. package/DOCS/SCROLL_TIMELINE_v3.md +269 -0
  14. package/DOCS/SITE_REFACTOR_PLAN.md +100 -0
  15. package/DOCS/STATUS.md +24 -0
  16. package/DOCS/SYSTEM_INVENTORY.md +33 -30
  17. package/DOCS/VISUAL_ANALYSIS_CLICKERSS.md +85 -0
  18. package/DOCS/VISUAL_ANALYSIS_FACETAD.md +133 -0
  19. package/DOCS/VISUAL_ANALYSIS_SIMONE.md +95 -0
  20. package/DOCS/VISUAL_ANALYSIS_TABLESIDE.md +86 -0
  21. package/DOCS/{BLUEPRINT_EXECUTION_PLAN_2026-01-07.md → archive/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md} +1 -1
  22. package/DOCS/{DEV_TRACK_ANALYSIS.md → archive/DEV_TRACK_ANALYSIS.md} +3 -0
  23. package/DOCS/{SYSTEM_AUDIT_2026-01-30.md → archive/SYSTEM_AUDIT_2026-01-30.md} +3 -0
  24. package/DOCS/{DEV_TRACK_SESSION_2026-01-31.md → dev-tracks/DEV_TRACK_SESSION_2026-01-31.md} +1 -1
  25. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-06.md +231 -0
  26. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-13.md +127 -0
  27. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-15.md +142 -0
  28. package/DOCS/dev-tracks/README.md +10 -0
  29. package/README.md +26 -13
  30. package/cpp/CMakeLists.txt +236 -0
  31. package/cpp/bindings/embind.cpp +269 -0
  32. package/cpp/build.sh +129 -0
  33. package/cpp/geometry/Crystal.cpp +103 -0
  34. package/cpp/geometry/Fractal.cpp +136 -0
  35. package/cpp/geometry/GeometryGenerator.cpp +262 -0
  36. package/cpp/geometry/KleinBottle.cpp +71 -0
  37. package/cpp/geometry/Sphere.cpp +134 -0
  38. package/cpp/geometry/Tesseract.cpp +94 -0
  39. package/cpp/geometry/Tetrahedron.cpp +83 -0
  40. package/cpp/geometry/Torus.cpp +65 -0
  41. package/cpp/geometry/WarpFunctions.cpp +238 -0
  42. package/cpp/geometry/Wave.cpp +85 -0
  43. package/cpp/include/vib3_ffi.h +238 -0
  44. package/cpp/math/Mat4x4.cpp +409 -0
  45. package/cpp/math/Mat4x4.hpp +209 -0
  46. package/cpp/math/Projection.cpp +142 -0
  47. package/cpp/math/Projection.hpp +148 -0
  48. package/cpp/math/Rotor4D.cpp +322 -0
  49. package/cpp/math/Rotor4D.hpp +204 -0
  50. package/cpp/math/Vec4.cpp +303 -0
  51. package/cpp/math/Vec4.hpp +225 -0
  52. package/cpp/src/vib3_ffi.cpp +607 -0
  53. package/cpp/tests/Geometry_test.cpp +213 -0
  54. package/cpp/tests/Mat4x4_test.cpp +494 -0
  55. package/cpp/tests/Projection_test.cpp +298 -0
  56. package/cpp/tests/Rotor4D_test.cpp +423 -0
  57. package/cpp/tests/Vec4_test.cpp +489 -0
  58. package/package.json +40 -27
  59. package/src/agent/index.js +1 -3
  60. package/src/agent/mcp/MCPServer.js +918 -0
  61. package/src/agent/mcp/index.js +1 -1
  62. package/src/agent/mcp/stdio-server.js +264 -0
  63. package/src/agent/mcp/tools.js +454 -0
  64. package/src/cli/index.js +374 -44
  65. package/src/core/CanvasManager.js +97 -204
  66. package/src/core/ErrorReporter.js +1 -1
  67. package/src/core/Parameters.js +1 -1
  68. package/src/core/VIB3Engine.js +93 -4
  69. package/src/core/VitalitySystem.js +53 -0
  70. package/src/core/index.js +18 -0
  71. package/src/core/renderers/FacetedRendererAdapter.js +10 -9
  72. package/src/core/renderers/HolographicRendererAdapter.js +13 -9
  73. package/src/core/renderers/QuantumRendererAdapter.js +11 -7
  74. package/src/creative/AestheticMapper.js +628 -0
  75. package/src/creative/ChoreographyPlayer.js +481 -0
  76. package/src/creative/index.js +11 -0
  77. package/src/export/TradingCardManager.js +3 -4
  78. package/src/export/index.js +11 -1
  79. package/src/faceted/FacetedSystem.js +241 -388
  80. package/src/holograms/HolographicVisualizer.js +29 -12
  81. package/src/holograms/RealHolographicSystem.js +194 -43
  82. package/src/math/index.js +7 -7
  83. package/src/polychora/PolychoraSystem.js +77 -0
  84. package/src/quantum/QuantumEngine.js +103 -66
  85. package/src/quantum/QuantumVisualizer.js +7 -2
  86. package/src/reactivity/index.js +3 -5
  87. package/src/render/LayerPresetManager.js +372 -0
  88. package/src/render/LayerReactivityBridge.js +344 -0
  89. package/src/render/LayerRelationshipGraph.js +610 -0
  90. package/src/render/MultiCanvasBridge.js +148 -25
  91. package/src/render/UnifiedRenderBridge.js +3 -0
  92. package/src/render/index.js +27 -2
  93. package/src/scene/index.js +4 -4
  94. package/src/shaders/faceted/faceted.frag.glsl +220 -80
  95. package/src/shaders/faceted/faceted.frag.wgsl +138 -97
  96. package/src/shaders/holographic/holographic.frag.glsl +28 -9
  97. package/src/shaders/holographic/holographic.frag.wgsl +107 -38
  98. package/src/shaders/quantum/quantum.frag.glsl +1 -0
  99. package/src/shaders/quantum/quantum.frag.wgsl +1 -1
  100. package/src/testing/ParallelTestFramework.js +2 -2
  101. package/src/viewer/GalleryUI.js +17 -0
  102. package/src/viewer/ViewerPortal.js +2 -2
  103. package/src/viewer/index.js +1 -1
  104. package/tools/headless-renderer.js +258 -0
  105. package/tools/shader-sync-verify.js +8 -4
  106. package/tools/site-analysis/all-reports.json +32 -0
  107. package/tools/site-analysis/combined-analysis.md +50 -0
  108. package/tools/site-analyzer.mjs +779 -0
  109. package/tools/visual-catalog/capture.js +276 -0
  110. package/tools/visual-catalog/composite.js +138 -0
  111. package/types/adaptive-sdk.d.ts +204 -5
  112. package/types/agent/cli.d.ts +78 -0
  113. package/types/agent/index.d.ts +18 -0
  114. package/types/agent/mcp.d.ts +87 -0
  115. package/types/agent/telemetry.d.ts +190 -0
  116. package/types/core/VIB3Engine.d.ts +26 -0
  117. package/types/core/index.d.ts +261 -0
  118. package/types/creative/AestheticMapper.d.ts +72 -0
  119. package/types/creative/ChoreographyPlayer.d.ts +96 -0
  120. package/types/creative/index.d.ts +17 -0
  121. package/types/export/index.d.ts +243 -0
  122. package/types/geometry/index.d.ts +164 -0
  123. package/types/math/index.d.ts +214 -0
  124. package/types/render/LayerPresetManager.d.ts +78 -0
  125. package/types/render/LayerReactivityBridge.d.ts +85 -0
  126. package/types/render/LayerRelationshipGraph.d.ts +174 -0
  127. package/types/render/index.d.ts +3 -0
  128. package/types/scene/index.d.ts +204 -0
  129. package/types/systems/index.d.ts +244 -0
  130. package/types/variations/index.d.ts +62 -0
  131. package/types/viewer/index.d.ts +225 -0
  132. /package/DOCS/{DEV_TRACK_PLAN_2026-01-07.md → archive/DEV_TRACK_PLAN_2026-01-07.md} +0 -0
  133. /package/DOCS/{SESSION_014_PLAN.md → archive/SESSION_014_PLAN.md} +0 -0
  134. /package/DOCS/{SESSION_LOG_2026-01-07.md → archive/SESSION_LOG_2026-01-07.md} +0 -0
  135. /package/DOCS/{STRATEGIC_BLUEPRINT_2026-01-07.md → archive/STRATEGIC_BLUEPRINT_2026-01-07.md} +0 -0
  136. /package/src/viewer/{ReactivityManager.js → ViewerInputHandler.js} +0 -0
@@ -0,0 +1,773 @@
1
+ # EPIC SCROLL EVENTS — VIB3+ Landing Page Choreography Plan
2
+
3
+ **20 scroll-driven events that combine GSAP, GPU visualizers, CSS effects, and masking layers
4
+ into a cinematic experience that showcases the VIB3+ 4D visualization engine.**
5
+
6
+ ---
7
+
8
+ ## Architecture Principles
9
+
10
+ ### GPU Context Budget (Max 3 Concurrent)
11
+ - Sections with GPU visualizers: Opening, Hero, Morph, Playground, Energy Card
12
+ - Post-playground sections use Canvas2D (enhanced) or CSS effects
13
+ - Smart context swapping: release before acquire, flash-mask handoffs
14
+
15
+ ### Parameter Coordination Rules
16
+ - **Density** drops as visual elements expand (inverse relationship)
17
+ - **Speed/chaos** rise during dramatic moments, settle in calm phases
18
+ - **Rotations** accumulate continuously for organic motion
19
+ - **Hue** follows emotional arcs (cool -> warm -> spectral -> calm)
20
+
21
+ ### Layering System
22
+ ```
23
+ z-index stack:
24
+ 70+ .... Fixed veils / flourishes (brief, over everything)
25
+ 60 .... Section transition overlays
26
+ 50 .... Foreground glassmorphic cards
27
+ 30 .... Content text / UI elements
28
+ 20 .... Masking/clipping layers (CSS clip-path driven by GSAP)
29
+ 10 .... Canvas visualizers (GPU or Canvas2D)
30
+ 1 .... Background gradients
31
+ -1 .... Fixed ambient layer
32
+ ```
33
+
34
+ ### CSS Effects Toolkit
35
+ - `clip-path` morphing: polygon/circle/ellipse driven by scroll progress
36
+ - `backdrop-filter` intensity ramping with scroll
37
+ - `mix-blend-mode` (screen, overlay, difference) for layer compositing
38
+ - CSS `@property` animated gradients (conic, radial) for glow effects
39
+ - `mask-image` with animated gradients for soft reveal edges
40
+ - `filter: hue-rotate()` synced to visualizer hue parameter
41
+ - 3D transforms with `perspective-origin` tracking scroll position
42
+
43
+ ---
44
+
45
+ ## THE 20 EVENTS
46
+
47
+ ---
48
+
49
+ ### EVENT 1: Checker Grid Emergence
50
+ **Section**: Post-playground, replaces current triptych
51
+ **Duration**: 300vh scroll
52
+
53
+ **Concept**: A 4x3 grid of glassmorphic cards enters from alternating directions —
54
+ odd rows from left, even rows from right — then the cards do a geometric dance:
55
+ shrinking, rotating, and rearranging into a diamond pattern centered around a
56
+ Hypersphere-class visualizer that reveals through the negative space.
57
+
58
+ **Implementation**:
59
+ ```
60
+ Phase A (0-30%): Cards stagger-enter from alternating edges
61
+ - GSAP stagger with from:'edges', axis:'y'
62
+ - Each card: opacity 0->1, x: +-120vw -> 0, rotation: +-15deg -> 0
63
+ - Cards have backdrop-filter: blur(16px) + subtle visualizer Canvas2D
64
+
65
+ Phase B (30-60%): Geometric dance
66
+ - Cards shrink (scale 0.85) and rotate (15deg) creating diamond gaps
67
+ - Background GPU visualizer (Quantum, geometry:10 Hypersphere) fades in
68
+ - clip-path on a mask layer morphs from rect -> diamond -> circle
69
+ - Density sweeps from 4 to 60 as the diamond opens
70
+
71
+ Phase C (60-100%): Fractal layering
72
+ - Cards layer on top of each other with z-stagger
73
+ - Each subsequent card has +2px more blur
74
+ - Creates "glassmorphic fractal depth" effect
75
+ - Visualizer params: chaos ramps 0.1->0.8, speed 0.5->2.5
76
+ - Cards finally compress to one stacked card, then expand to fill viewport
77
+ ```
78
+
79
+ **Parameters animated**: geometry (3->10), gridDensity (4->60->24), chaos (0.1->0.8->0.1),
80
+ speed (0.5->2.5->0.8), hue (200->310->180), rot4dXW (0->4pi)
81
+
82
+ ---
83
+
84
+ ### EVENT 2: Density Wave Collision
85
+ **Section**: Within cascade or as standalone section
86
+ **Duration**: 200vh scroll
87
+
88
+ **Concept**: Two side-by-side visualizer panels with opposing density sweeps.
89
+ Left panel: density sweeps 4->80. Right panel: density sweeps 80->4.
90
+ When they "meet" at midpoint (both at ~42), the dividing line shatters,
91
+ both canvases merge into one full-width canvas with a 300ms flourish of
92
+ maximum chaos + speed, then settle into a new calm state.
93
+
94
+ **Implementation**:
95
+ ```
96
+ Phase A (0-45%): Opposing sweeps
97
+ - Split-screen: left panel density 4->42, right panel 80->42
98
+ - Speed inversely matched: left 0.5->1.5, right 1.5->0.5
99
+ - Divider line (1px -> 4px) glows brighter as densities converge
100
+ - Hue: left cool (195->230), right warm (340->300)
101
+
102
+ Phase B (45-55%): COLLISION — The "Woah" Moment
103
+ - Divider shatters: pseudo-element fragments fly outward (GSAP)
104
+ - Both panels merge: clip-path transitions from split to full
105
+ - 300ms burst: chaos=1.0, speed=3.0, gridDensity=80, intensity=1.0
106
+ - All 6 rotation planes animate simultaneously (tornado)
107
+ - Screen flash (opacity pulse white->transparent, 100ms)
108
+ - Camera shake: parent container translateX/Y oscillation (3 cycles, damped)
109
+
110
+ Phase C (55-100%): Resolution
111
+ - Merged canvas settles: chaos 1.0->0.08, speed 3.0->0.5
112
+ - Geometry morphs through 3 types rapidly then lands on Crystal (7)
113
+ - Density settles to 28, hue to a warm golden (45)
114
+ - Gentle rotation continues: rot4dXW accumulates slowly
115
+ ```
116
+
117
+ ---
118
+
119
+ ### EVENT 3: Canvas Spill Through Cards
120
+ **Section**: Any section with foreground cards over background visualizer
121
+ **Duration**: 150vh scroll
122
+
123
+ **Concept**: Background visualizer appears to "spill" through the borders of
124
+ foreground glassmorphic cards. Achieved with CSS mask-image on the cards that
125
+ progressively reveals the background through animated clip paths shaped like
126
+ liquid blobs.
127
+
128
+ **Implementation**:
129
+ ```
130
+ - Background: Full-viewport GPU visualizer (or Canvas2D)
131
+ - Foreground: 3-4 glassmorphic info cards
132
+ - Each card has a CSS mask-image: radial-gradient that expands on scroll
133
+ - The mask creates "liquid blob" holes that show the visualizer through the card
134
+ - As scroll progresses: blobs grow, merge, eventually card is 80% transparent
135
+ - Visualizer intensity increases proportionally to reveal area
136
+ - Card content (text) remains visible via a separate solid-backed inner div
137
+ - The "spill" follows a flow direction (top-left to bottom-right)
138
+
139
+ CSS trick:
140
+ .spill-card {
141
+ mask-image: radial-gradient(
142
+ circle var(--spill-radius) at var(--spill-x) var(--spill-y),
143
+ transparent 0%, black 100%
144
+ );
145
+ }
146
+ // GSAP animates --spill-radius, --spill-x, --spill-y per card
147
+ ```
148
+
149
+ ---
150
+
151
+ ### EVENT 4: Scroll Velocity Burst
152
+ **Section**: Global — triggers on fast scrolling anywhere
153
+ **Duration**: Instantaneous (500ms decay)
154
+
155
+ **Concept**: When the user scrolls fast, ALL visible visualizers
156
+ simultaneously burst into high-chaos, high-speed mode, then decay
157
+ back to their normal state. Creates a "wind through the page" feeling.
158
+
159
+ **Implementation**:
160
+ ```
161
+ - Track scroll velocity: delta/time from Lenis or ScrollTrigger
162
+ - When velocity > threshold (2000px/s):
163
+ - All visible adapters get temporary overrides:
164
+ chaos: +0.4, speed: *2.0, intensity: +0.15
165
+ - CSS: ambient-bg opacity pulses, noise-overlay intensity spikes
166
+ - Scroll progress bar briefly brightens (glow effect)
167
+ - Any glassmorphic cards get a brief blur-increase + scale(1.02)
168
+ - Decay: exponential ease-out over 500ms back to normal values
169
+ - Cooldown: 1s between triggers to prevent spam
170
+ ```
171
+
172
+ ---
173
+
174
+ ### EVENT 5: Parallax Depth Reveal
175
+ **Section**: Replaces current triptych center column
176
+ **Duration**: 200vh scroll
177
+
178
+ **Concept**: Multiple layers at different z-depths separate on scroll,
179
+ revealing a deeper visualizer canvas underneath each layer. Like looking
180
+ through the pages of a book as they fan apart.
181
+
182
+ **Implementation**:
183
+ ```
184
+ - 5 layers stacked at z=0 initially:
185
+ Layer 1 (front): Glassmorphic panel with system name + icon
186
+ Layer 2: Semi-transparent gradient with faint grid pattern
187
+ Layer 3: Canvas2D visualizer (low intensity, geometry:7 Crystal)
188
+ Layer 4: Second gradient layer with different angle
189
+ Layer 5 (back): Full visualizer canvas (bright, geometry:10 Hypersphere)
190
+
191
+ - On scroll:
192
+ Layer 1: translateZ(200px) + translateY(-30%), opacity 1->0
193
+ Layer 2: translateZ(100px) + translateY(-15%), opacity reduces
194
+ Layer 3: stays center, intensity 0.3->0.8
195
+ Layer 4: translateZ(-50px), fades out
196
+ Layer 5: translateZ(-100px), revealed at full intensity
197
+
198
+ - Each layer has its own subtle parallax rate
199
+ - Perspective origin tracks mouse for extra 3D feel
200
+ ```
201
+
202
+ ---
203
+
204
+ ### EVENT 6: Phase Shift Bridge
205
+ **Section**: Between any two major sections
206
+ **Duration**: 100vh scroll
207
+
208
+ **Concept**: The current section's visualizer slowly builds structure
209
+ (density increases, speed decreases, chaos approaches zero) until it
210
+ reaches "crystalline perfection" — then SNAP — a sudden phase shift
211
+ where all parameters invert and the next section begins in "chaos birth"
212
+ before settling into its own personality.
213
+
214
+ **Implementation**:
215
+ ```
216
+ Phase A (0-70%): Slow structure build
217
+ - gridDensity: current -> 60 (slow, linear)
218
+ - speed: current -> 0.1
219
+ - chaos: current -> 0.01
220
+ - intensity: gradually increases to 0.95
221
+ - rot4dXW slows to near-zero
222
+ - Hue slowly converges to pure white/zero-saturation
223
+
224
+ Phase B (70-75%): THE SNAP (250ms equivalent in scroll)
225
+ - Instant parameter inversion:
226
+ gridDensity: 60 -> 3, speed: 0.1 -> 3.0, chaos: 0.01 -> 0.9
227
+ - Screen flash: white overlay 0->0.3->0 in 80ms
228
+ - CSS: all glass cards get a brief scale(1.05) with elastic-out
229
+ - Sound cue potential (not implemented, but designed for)
230
+
231
+ Phase C (75-100%): Chaos settles
232
+ - New section's parameters ease in with elastic/spring curves
233
+ - Like a bell that was struck — oscillating damped convergence
234
+ - Hue overshoots target by 40deg then settles
235
+ - Density overshoots then settles
236
+ - Creates organic "alive" feeling
237
+ ```
238
+
239
+ ---
240
+
241
+ ### EVENT 7: Glassmorphic Card Stack Dive
242
+ **Section**: Info section (Agent Integration or new)
243
+ **Duration**: 250vh scroll
244
+
245
+ **Concept**: 6 glassmorphic cards stack from the top of the viewport,
246
+ each one slightly larger and more blurred than the last, creating a
247
+ "diving deeper" effect. Each card contains different SDK info (MCP, React,
248
+ Vue, etc.) and when a card reaches center-screen, it expands and a
249
+ mini Canvas2D visualizer activates inside it showing relevant geometry.
250
+
251
+ **Implementation**:
252
+ ```
253
+ - 6 cards initially off-screen above
254
+ - As user scrolls, each card slides down and stacks:
255
+ Card 1: smallest (280px), blur(8px), geometry:0 Tetra, opacity 0.6
256
+ Card 2: (320px), blur(12px), geometry:1 Hypercube, opacity 0.65
257
+ ...
258
+ Card 6: largest (480px), blur(24px), geometry:5 Fractal, opacity 0.8
259
+
260
+ - Active card (center viewport): expands to 90vw, blur reduces to 0
261
+ - Canvas2D visualizer activates with relevant geometry
262
+ - Card border glows with system color (quantum/holo/faceted)
263
+ - Content fully readable
264
+
265
+ - Inactive cards: compressed at top/bottom, heavily blurred
266
+ - Creates a "deck of cards" browsing metaphor
267
+ - Scroll position maps to which card is active (snap-like behavior)
268
+ ```
269
+
270
+ ---
271
+
272
+ ### EVENT 8: Rotation Tornado
273
+ **Section**: Dramatic transition moment (morph stage 5 enhanced)
274
+ **Duration**: 80vh scroll (brief, intense)
275
+
276
+ **Concept**: All 6 rotation planes animate simultaneously at different
277
+ speeds, creating a visual tornado effect. The visualizer canvas shakes
278
+ and pulses while glassmorphic elements orbit around it.
279
+
280
+ **Implementation**:
281
+ ```
282
+ - rot4dXY: p * 12 (fast)
283
+ - rot4dXZ: p * 8 (medium)
284
+ - rot4dYZ: p * 6 (slower)
285
+ - rot4dXW: p * 16 (fastest — hyperspace)
286
+ - rot4dYW: sin(p * PI * 6) * 4 (oscillating)
287
+ - rot4dZW: cos(p * PI * 4) * 3 (oscillating, offset)
288
+
289
+ - Canvas container gets CSS animation: subtle rotation + scale oscillation
290
+ - 4 small glassmorphic "debris" elements orbit the canvas via GSAP motionPath
291
+ - Background ambient layer pulses in sync
292
+ - Speed ramps: 0.5 -> 3.0 -> 0.5
293
+ - Chaos ramps: 0.1 -> 0.9 -> 0.1
294
+ - Intensity stays high: 0.8-1.0
295
+
296
+ - Exit: everything decelerates with heavy easing (power4.out)
297
+ ```
298
+
299
+ ---
300
+
301
+ ### EVENT 9: Expanding Info Cards with Visualizer Fill
302
+ **Section**: New section replacing static agent grid
303
+ **Duration**: 300vh scroll
304
+
305
+ **Concept**: Compact info cards (like the current agent cards) that expand
306
+ on scroll to reveal a full Canvas2D visualizer background. When collapsed,
307
+ they show just an icon + title. When expanded, the card becomes a
308
+ full-featured showcase with live visualization + description text.
309
+
310
+ **Implementation**:
311
+ ```
312
+ - 4 cards in 2x2 grid, initially compact (200x120px)
313
+ - Each card has a hidden Canvas2D visualizer covering its full area
314
+
315
+ - Scroll triggers sequential expansion:
316
+ Card 1 expands (0-25%): width 200->90vw, height 120->60vh
317
+ - Visualizer fades in (opacity 0->0.6 behind content)
318
+ - Content text slides in from bottom
319
+ - Adjacent cards slide out of way (translateX/Y)
320
+
321
+ Card 1 contracts, Card 2 expands (25-50%)...etc.
322
+
323
+ - Each card has different system:
324
+ Card 1: Quantum, geometry:11 (Hypersphere Torus), hue:210
325
+ Card 2: Faceted, geometry:16 (HT-Tetra), hue:310
326
+ Card 3: Holographic, geometry:7 (Crystal), hue:45
327
+ Card 4: Quantum, geometry:5 (Fractal), hue:160
328
+
329
+ - Expanded card params animate:
330
+ gridDensity sweeps, rotation accumulates, hue shifts
331
+ ```
332
+
333
+ ---
334
+
335
+ ### EVENT 10: Chromatic Hue Wave
336
+ **Section**: Global overlay effect during specific scroll ranges
337
+ **Duration**: 150vh scroll
338
+
339
+ **Concept**: A chromatic wave sweeps across the page — all visible
340
+ visualizers have their hue parameter swept in a wave pattern with
341
+ a phase offset based on vertical position. Creates a "rainbow washing
342
+ over the page" effect.
343
+
344
+ **Implementation**:
345
+ ```
346
+ - Track scroll progress in a specific section
347
+ - For each visible Canvas2D/GPU adapter:
348
+ - Calculate phase offset based on element's Y position
349
+ - Hue = baseHue + sin(progress * PI * 2 - phaseOffset) * 180
350
+ - This creates a traveling wave of color change
351
+
352
+ - CSS accompaniment:
353
+ - ambient-bg gradient hues shift in sync
354
+ - Scroll progress bar color changes
355
+ - Glassmorphic card borders get hue-rotate() filter
356
+
357
+ - Duration: sweeps across over ~150vh of scroll
358
+ - Clean entry/exit: hue offsets ease in from 0 and ease back to 0
359
+ ```
360
+
361
+ ---
362
+
363
+ ### EVENT 11: Dual Canvas Lock & Diverge
364
+ **Section**: New dramatic section
365
+ **Duration**: 200vh scroll
366
+
367
+ **Concept**: Two visualizer canvases (left/right split) start with
368
+ completely different settings. Over scroll, their parameters converge
369
+ to identical values (the "lock"). Hold for a beat. Then they diverge
370
+ explosively in opposite directions.
371
+
372
+ **Implementation**:
373
+ ```
374
+ Phase A (0-40%): Convergence
375
+ Left: geometry 3->7, hue 200->180, density 40->24, speed 0.3->0.6
376
+ Right: geometry 7->7, hue 340->180, density 8->24, speed 1.5->0.6
377
+ - Divider line between them brightens as they converge
378
+ - Both rotations align to same values
379
+
380
+ Phase B (40-55%): THE LOCK
381
+ - Both canvases perfectly synchronized
382
+ - Divider line pulses bright cyan
383
+ - Brief scale(1.02) on both containers
384
+ - A shared glow effect appears at the divider
385
+ - Parameters held steady — creates tension through stillness
386
+
387
+ Phase C (55-100%): Explosive Divergence
388
+ Left: geometry->5(Fractal), hue->60(gold), density->80, speed->2.5, chaos->0.7
389
+ Right: geometry->4(Klein), hue->300(magenta), density->4, speed->0.2, chaos->0.0
390
+ - Divider shatters (pseudo-element animation)
391
+ - Each canvas gets a brief directional blur (left blurs left, right blurs right)
392
+ - Scale: left 1.05 (growing), right 0.95 (shrinking)
393
+ - Creates visual "explosion" from the center
394
+ ```
395
+
396
+ ---
397
+
398
+ ### EVENT 12: Scroll-Locked Geometry Canon
399
+ **Section**: Cascade replacement
400
+ **Duration**: 400vh scroll
401
+
402
+ **Concept**: Like a musical canon/round, the same geometry morphing sequence
403
+ plays across 6 cards with time offsets. Card 1 starts the sequence,
404
+ Card 2 starts the same sequence 1 beat later, etc. Creates a beautiful
405
+ wave of synchronized-but-offset motion.
406
+
407
+ **Implementation**:
408
+ ```
409
+ - 6 cards in horizontal scroll or stacked layout
410
+ - Each card cycles through geometries: 0->3->7->11->16->5->0
411
+ - Timing offset: card N starts at progress (N * 0.12)
412
+ - Within each card's cycle:
413
+ - Geometry snaps at thresholds
414
+ - Hue, density, speed interpolate smoothly
415
+ - Brief flash on geometry change (card border pulse)
416
+
417
+ - Phase offsets create a "wave" visible across all cards:
418
+ At any scroll position, each card shows a different geometry
419
+ but they're all part of the same sequence
420
+
421
+ - Additional: rotation accumulates differently per card
422
+ Card 1: rot4dXW dominates, Card 2: rot4dYW dominates, etc.
423
+ Creates varied visual interest despite same base sequence
424
+ ```
425
+
426
+ ---
427
+
428
+ ### EVENT 13: Background Bleed Through
429
+ **Section**: Any text-heavy section
430
+ **Duration**: 100vh scroll
431
+
432
+ **Concept**: Glassmorphic cards start fully opaque, then progressively
433
+ become transparent on scroll, revealing the visualizer background.
434
+ The "bleed" follows the text — letters themselves act as windows
435
+ into the visualization via CSS text clipping.
436
+
437
+ **Implementation**:
438
+ ```
439
+ - Text elements get: background-clip: text with visualizer-colored gradient
440
+ - Initially: text color is solid white (gradient hidden)
441
+ - On scroll: text becomes background-clip:text, revealing gradient through letters
442
+ - Simultaneously: card backdrop-filter blur decreases (24px -> 0px)
443
+ - Card background alpha decreases: rgba(255,255,255,0.04) -> 0.01
444
+ - Creates effect of text "dissolving into" the visualization
445
+
446
+ CSS:
447
+ .bleed-text {
448
+ background: linear-gradient(
449
+ var(--scroll-angle),
450
+ hsl(var(--scroll-hue), 70%, 60%),
451
+ hsl(calc(var(--scroll-hue) + 60), 60%, 50%)
452
+ );
453
+ -webkit-background-clip: text;
454
+ -webkit-text-fill-color: rgba(255,255,255, var(--text-opacity));
455
+ }
456
+ ```
457
+
458
+ ---
459
+
460
+ ### EVENT 14: Speed Crescendo -> Silence
461
+ **Section**: Pre-CTA dramatic moment
462
+ **Duration**: 150vh scroll
463
+
464
+ **Concept**: All visible elements gradually accelerate — visualizer speed,
465
+ CSS animation durations shorten, parallax rates increase, everything
466
+ builds to a frantic peak... then INSTANT SILENCE. Everything freezes.
467
+ Brief black screen. Then the CTA section fades in gently from nothing.
468
+
469
+ **Implementation**:
470
+ ```
471
+ Phase A (0-80%): The Build
472
+ - All visible Canvas2D: speed * (1 + progress * 4)
473
+ - All CSS animations: animation-duration scales down
474
+ - Noise overlay opacity increases (0.02 -> 0.08)
475
+ - Ambient bg pulsation speeds up
476
+ - Any rotating elements spin faster
477
+ - Parallax multiplier increases
478
+ - Screen edges get subtle vignette (closing in)
479
+
480
+ Phase B (80-85%): THE SILENCE
481
+ - All animation stops (speed = 0, chaos = 0)
482
+ - Screen goes to near-black (ambient-bg opacity -> 0)
483
+ - Noise overlay spikes then drops
484
+ - Everything holds perfectly still
485
+ - 1-2 seconds of pure stillness (in scroll terms)
486
+
487
+ Phase C (85-100%): Gentle Rebirth
488
+ - CTA content fades in from center (scale 0.9 -> 1, blur 8 -> 0)
489
+ - Single visualizer restarts at low intensity, low speed
490
+ - Clean, calm, contrasted against the chaos that preceded it
491
+ - The "silence" makes the CTA feel important
492
+ ```
493
+
494
+ ---
495
+
496
+ ### EVENT 15: Masking Layer Morph Reveal
497
+ **Section**: Hero -> Morph transition (replaces current veil)
498
+ **Duration**: 100vh scroll
499
+
500
+ **Concept**: Instead of a faint glassmorphic square, a CSS clip-path
501
+ on the section container morphs from the hero's shape into the morph's
502
+ shape. The clip-path reveals the morph canvas underneath while the hero
503
+ canvas is still visible outside the clip.
504
+
505
+ **Implementation**:
506
+ ```
507
+ - Hero section and Morph section overlap by 100vh
508
+ - A clip-path on the morph container morphs:
509
+ circle(0% at 50% 50%) // start: nothing visible
510
+ circle(10% at 50% 50%) // small portal opens
511
+ ellipse(30% 20% at 50% 50%) // stretches
512
+ polygon(25% 10%, 75% 10%, 90% 50%, 75% 90%, 25% 90%, 10% 50%) // hexagonal
513
+ circle(75% at 50% 50%) // nearly full
514
+ inset(0%) // full viewport
515
+
516
+ - During clip animation:
517
+ - Edge of clip-path gets a glow effect (drop-shadow on clip container)
518
+ - Morph visualizer starts with high intensity at the reveal edge
519
+ - Hero visualizer accelerates as it's being "consumed"
520
+ - Creates a "portal opening" feeling instead of a vague veil
521
+ ```
522
+
523
+ ---
524
+
525
+ ### EVENT 16: Tilt-Reactive Particle Grid
526
+ **Section**: Cascade cards enhancement
527
+ **Duration**: Always active while cards are visible
528
+
529
+ **Concept**: Each cascade card has a CSS-only particle grid (dots) that
530
+ reacts to mouse tilt. The dots closest to the cursor grow, shift color,
531
+ and create a "displacement field" effect. The particles complement
532
+ the Canvas2D visualizer underneath.
533
+
534
+ **Implementation**:
535
+ ```
536
+ - Each card gets a pseudo-element grid:
537
+ background: radial-gradient(circle 2px, rgba(0,240,255,0.3) 99%, transparent);
538
+ background-size: 20px 20px;
539
+
540
+ - CardTiltSystem already tracks mouse position
541
+ - CSS custom properties from tilt system drive:
542
+ --tilt-x, --tilt-y -> mask-position of a radial-gradient
543
+ This creates a "lens" effect where dots near cursor appear brighter
544
+
545
+ - The grid background-size animates with scroll:
546
+ Starts at 30px (sparse) -> 12px (dense) as card becomes active
547
+ Creates "particles condensing" effect
548
+
549
+ - blend-mode: screen composites the dots over the Canvas2D visualizer
550
+ ```
551
+
552
+ ---
553
+
554
+ ### EVENT 17: Dimension Warp Gate
555
+ **Section**: New standalone 150vh section
556
+ **Duration**: 150vh scroll
557
+
558
+ **Concept**: The 4D `dimension` parameter creates a "wormhole" visual.
559
+ A circular portal grows from center screen, edges glow and distort,
560
+ and through it you see a completely different visualization (different
561
+ system, different parameters). On completion, you've "traveled through"
562
+ to the new visual universe.
563
+
564
+ **Implementation**:
565
+ ```
566
+ - Outer visualizer: Quantum, geometry:7, dimension:3.0 (close projection)
567
+ - Inner visualizer (through portal): Faceted, geometry:16, dimension:4.5 (far)
568
+
569
+ - Portal circle: CSS clip-path circle on inner canvas
570
+ circle(0% at 50% 50%) -> circle(55% at 50% 50%)
571
+
572
+ - Portal edge effects:
573
+ - Concentric glowing rings (box-shadow on clipped container)
574
+ - border: 3px solid with animated conic-gradient
575
+ - The edge "breathes" (radius oscillates +-3%)
576
+
577
+ - Outer canvas params during transit:
578
+ dimension: 3.0 -> 3.0 (stays close, dramatic)
579
+ speed: 0.5 -> 2.0 (accelerates as portal grows)
580
+ chaos: 0.1 -> 0.5 (destabilizes)
581
+
582
+ - Inner canvas params:
583
+ dimension: 4.5 -> 3.5 (focuses as portal opens)
584
+ intensity: 0.0 -> 0.9 (revealed)
585
+ hue: contrasting to outer (outer:200, inner:340)
586
+ ```
587
+
588
+ ---
589
+
590
+ ### EVENT 18: Scroll Push / Element Displacement
591
+ **Section**: Any section with cards
592
+ **Duration**: Continuous during scroll
593
+
594
+ **Concept**: Elements appear to be "pushed" by the scroll direction.
595
+ When scrolling down, cards tilt slightly backward (rotateX positive)
596
+ and the visualizer canvas inside them shifts upward slightly, creating
597
+ the illusion that scroll force is physically pushing the elements.
598
+
599
+ **Implementation**:
600
+ ```
601
+ - Track scroll velocity (from Lenis)
602
+ - Apply to all .tilt-card elements:
603
+ rotateX: velocity * 0.02deg (caps at 8deg)
604
+ translateY: velocity * 0.05px (caps at 15px)
605
+
606
+ - Canvas content inside cards gets opposing shift:
607
+ The visualizer render offset shifts opposite to scroll direction
608
+ Creates parallax WITHIN each card
609
+
610
+ - When scroll stops: spring animation back to neutral
611
+ Uses GSAP elastic ease for organic overshoot
612
+
613
+ - Pairs with rot4dXW parameter:
614
+ Scroll velocity maps to rot4dXW offset
615
+ Fast scrolling = 4D rotation visible in the visualizer
616
+ Creates "scroll drives the fourth dimension" metaphor
617
+ ```
618
+
619
+ ---
620
+
621
+ ### EVENT 19: Energy Cascade Flow
622
+ **Section**: Full page, connecting multiple sections
623
+ **Duration**: Full page scroll
624
+
625
+ **Concept**: A visual "energy" appears to flow from top to bottom of the
626
+ page through connected visualizer elements. Each section "receives" energy
627
+ from the one above and "passes" it to the one below. Manifested as:
628
+ - Intensity peaks moving downward faster than scroll
629
+ - Color hue shifting in a consistent direction
630
+ - Glow effects that "drip" from section to section
631
+
632
+ **Implementation**:
633
+ ```
634
+ - Global scroll tracker: each Canvas2D/GPU adapter gets an
635
+ "energy level" based on: scroll proximity + upstream energy
636
+
637
+ - Energy propagation:
638
+ When Section N's progress > 0.7, Section N+1 starts receiving energy
639
+ Manifested as: intensity +0.2, a warm hue shift (+20), subtle glow
640
+
641
+ - CSS: Section dividers get animated gradient that flows downward:
642
+ background: linear-gradient(180deg, glow-color at var(--energy-pos), transparent)
643
+ --energy-pos animates from 0% to 100% as energy passes through
644
+
645
+ - Between sections: "energy drip" particles (CSS-only, radial-gradient dots)
646
+ that fall downward with gravity-like timing
647
+
648
+ - Creates cohesive "living" page where everything is connected
649
+ ```
650
+
651
+ ---
652
+
653
+ ### EVENT 20: Finale Supernova
654
+ **Section**: Pre-CTA climax (replaces current energy exit)
655
+ **Duration**: 50vh scroll (brief, intense)
656
+
657
+ **Concept**: Every parameter simultaneously maxes out for a brief
658
+ "supernova" moment — maximum density, maximum speed, maximum chaos,
659
+ maximum intensity, all rotations spinning, full spectrum hue cycling —
660
+ then SNAP to black, then gentle fade into CTA.
661
+
662
+ **Implementation**:
663
+ ```
664
+ Phase A (0-60%): The Build (compressed crescendo)
665
+ ALL visible adapters simultaneously:
666
+ - gridDensity: current -> 80
667
+ - speed: current -> 3.0
668
+ - chaos: current -> 1.0
669
+ - intensity: current -> 1.0
670
+ - morphFactor: current -> 2.0
671
+ - All 6 rotations: accumulate fast
672
+ - Hue: cycles through full 360 rapidly
673
+
674
+ Phase B (60-70%): SUPERNOVA (peak)
675
+ - All params AT MAXIMUM simultaneously
676
+ - Screen white flash (opacity 0.5, 150ms)
677
+ - Canvas scale: 1.0 -> 1.15 (overflows container)
678
+ - Every glassmorphic element glows maximum
679
+ - noise-overlay peaks at 0.1
680
+ - CSS hue-rotate on ambient-bg spins fast
681
+
682
+ Phase C (70-80%): SNAP TO BLACK
683
+ - Instant: all intensity -> 0, all speed -> 0
684
+ - Canvas opacity -> 0
685
+ - Pure black screen
686
+ - ambient-bg opacity -> 0
687
+ - Everything stops
688
+
689
+ Phase D (80-100%): CTA Rebirth
690
+ - Single center point of light (radial-gradient, r: 0 -> 50vw)
691
+ - CTA text fades in within the light
692
+ - One visualizer restarts at whisper-level: intensity 0.1, speed 0.2
693
+ - Contrast with the supernova makes it feel significant
694
+ ```
695
+
696
+ ---
697
+
698
+ ## IMPLEMENTATION PRIORITY
699
+
700
+ ### Tier 1: Must Ship (Core Fixes + Best Events)
701
+ 1. **Fix Canvas2D Renderer** — Much more vibrant, layered, glow effects
702
+ 2. **Event 15: Masking Layer Morph Reveal** — Replaces broken section veils
703
+ 3. **Event 6: Phase Shift Bridge** — Replaces faint transition squares
704
+ 4. **Event 1: Checker Grid Emergence** — Replaces broken triptych
705
+ 5. **Event 9: Expanding Info Cards** — Replaces broken agent section
706
+
707
+ ### Tier 2: High Impact
708
+ 6. **Event 2: Density Wave Collision** — The "meeting in the middle" moment
709
+ 7. **Event 14: Speed Crescendo -> Silence** — Pre-CTA drama
710
+ 8. **Event 4: Scroll Velocity Burst** — Global reactivity boost
711
+ 9. **Event 3: Canvas Spill Through Cards** — Masking layer showcase
712
+ 10. **Event 18: Scroll Push / Element Displacement** — Physics feel
713
+
714
+ ### Tier 3: Polish & Delight
715
+ 11. **Event 8: Rotation Tornado** — Morph stage 5 enhancement
716
+ 12. **Event 10: Chromatic Hue Wave** — Color spectacle
717
+ 13. **Event 11: Dual Canvas Lock & Diverge** — Tension/release
718
+ 14. **Event 7: Card Stack Dive** — Navigation metaphor
719
+ 15-20. Remaining events as time permits
720
+
721
+ ---
722
+
723
+ ## CSS EFFECT LIBRARY
724
+
725
+ ### Quaternion-Driven CSS Properties
726
+ ```css
727
+ /* These are set by JavaScript based on 4D rotation state */
728
+ :root {
729
+ --q-xw: 0; /* Current rot4dXW normalized 0-1 */
730
+ --q-yw: 0; /* Current rot4dYW normalized 0-1 */
731
+ --q-zw: 0; /* Current rot4dZW normalized 0-1 */
732
+ --q-intensity: 0; /* sqrt(xw^2 + yw^2 + zw^2) / max */
733
+ }
734
+
735
+ /* Elements that react to 4D rotation state */
736
+ .quaternion-glow {
737
+ box-shadow: 0 0 calc(20px + var(--q-intensity) * 40px)
738
+ hsla(calc(var(--scroll-hue) + var(--q-xw) * 60), 70%, 50%,
739
+ calc(0.05 + var(--q-intensity) * 0.15));
740
+ }
741
+
742
+ .quaternion-skew {
743
+ transform: skewX(calc(var(--q-xw) * 5deg))
744
+ skewY(calc(var(--q-yw) * 3deg));
745
+ }
746
+
747
+ .quaternion-hue {
748
+ filter: hue-rotate(calc(var(--q-zw) * 30deg));
749
+ }
750
+ ```
751
+
752
+ ### Scroll-Reactive CSS Animations
753
+ ```css
754
+ @property --reveal-progress {
755
+ syntax: '<number>';
756
+ initial-value: 0;
757
+ inherits: true;
758
+ }
759
+
760
+ .scroll-clip-reveal {
761
+ clip-path: circle(calc(var(--reveal-progress) * 80%) at 50% 50%);
762
+ }
763
+
764
+ .scroll-blur-fade {
765
+ filter: blur(calc((1 - var(--reveal-progress)) * 12px));
766
+ opacity: var(--reveal-progress);
767
+ }
768
+ ```
769
+
770
+ ---
771
+
772
+ *VIB3+ CORE — Clear Seas Solutions LLC*
773
+ *Epic Scroll Events v1.0 — 2026-02-08*