@vib3code/sdk 2.0.1 → 2.0.3-canary.0a63e71

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