@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.
- package/CHANGELOG.md +36 -0
- package/DOCS/AGENT_HARNESS_ARCHITECTURE.md +245 -0
- package/DOCS/ANDROID_DEPLOYMENT.md +59 -0
- package/DOCS/ARCHITECTURE.md +1 -0
- package/DOCS/CI_TESTING.md +2 -0
- package/DOCS/CLI_ONBOARDING.md +3 -1
- package/DOCS/CONTROL_REFERENCE.md +2 -0
- package/DOCS/CROSS_SITE_DESIGN_PATTERNS.md +119 -0
- package/DOCS/ENV_SETUP.md +2 -0
- package/DOCS/EPIC_SCROLL_EVENTS.md +775 -0
- package/DOCS/EXPANSION_DESIGN.md +979 -0
- package/DOCS/EXPANSION_DESIGN_ULTRA.md +389 -0
- package/DOCS/EXPORT_FORMATS.md +2 -0
- package/DOCS/GPU_DISPOSAL_GUIDE.md +2 -0
- package/DOCS/HANDOFF_LANDING_PAGE.md +156 -0
- package/DOCS/HANDOFF_SDK_DEVELOPMENT.md +495 -0
- package/DOCS/LICENSING_TIERS.md +2 -0
- package/DOCS/MASTER_PLAN_2026-01-31.md +4 -2
- package/DOCS/MULTIVIZ_CHOREOGRAPHY_PATTERNS.md +939 -0
- package/DOCS/OBS_SETUP_GUIDE.md +2 -0
- package/DOCS/OPTIMIZATION_PLAN_MATH.md +119 -0
- package/DOCS/PRODUCT_STRATEGY.md +65 -0
- package/DOCS/PROJECT_SETUP.md +2 -0
- package/DOCS/README.md +105 -0
- package/DOCS/REFERENCE_SCROLL_ANALYSIS.md +99 -0
- package/DOCS/RENDERER_LIFECYCLE.md +2 -0
- package/DOCS/REPO_MANIFEST.md +2 -0
- package/DOCS/ROADMAP.md +113 -0
- package/DOCS/SCROLL_TIMELINE_v3.md +271 -0
- package/DOCS/SITE_REFACTOR_PLAN.md +102 -0
- package/DOCS/STATUS.md +26 -0
- package/DOCS/SYSTEM_INVENTORY.md +37 -32
- package/DOCS/TELEMETRY_EXPORTS.md +2 -0
- package/DOCS/VISUAL_ANALYSIS_CLICKERSS.md +87 -0
- package/DOCS/VISUAL_ANALYSIS_FACETAD.md +135 -0
- package/DOCS/VISUAL_ANALYSIS_SIMONE.md +97 -0
- package/DOCS/VISUAL_ANALYSIS_TABLESIDE.md +88 -0
- package/DOCS/WEBGPU_STATUS.md +121 -38
- package/DOCS/XR_BENCHMARKS.md +2 -0
- package/DOCS/archive/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +1 -0
- package/DOCS/archive/DEV_TRACK_ANALYSIS.md +1 -0
- package/DOCS/archive/DEV_TRACK_PLAN_2026-01-07.md +1 -0
- package/DOCS/archive/SESSION_014_PLAN.md +1 -0
- package/DOCS/archive/SESSION_LOG_2026-01-07.md +1 -0
- package/DOCS/archive/STRATEGIC_BLUEPRINT_2026-01-07.md +1 -0
- package/DOCS/archive/SYSTEM_AUDIT_2026-01-30.md +1 -0
- package/DOCS/archive/WEBGPU_STATUS_2026-02-15_STALE.md +1 -0
- package/DOCS/{DEV_TRACK_SESSION_2026-01-31.md → dev-tracks/DEV_TRACK_SESSION_2026-01-31.md} +3 -1
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-06.md +233 -0
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-13.md +129 -0
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-15.md +144 -0
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-16.md +110 -0
- package/DOCS/dev-tracks/PERF_UPGRADE_2026-02-16.md +310 -0
- package/DOCS/dev-tracks/README.md +12 -0
- package/README.md +26 -13
- package/cpp/CMakeLists.txt +236 -0
- package/cpp/bindings/embind.cpp +269 -0
- package/cpp/build.sh +129 -0
- package/cpp/geometry/Crystal.cpp +103 -0
- package/cpp/geometry/Fractal.cpp +136 -0
- package/cpp/geometry/GeometryGenerator.cpp +262 -0
- package/cpp/geometry/KleinBottle.cpp +71 -0
- package/cpp/geometry/Sphere.cpp +134 -0
- package/cpp/geometry/Tesseract.cpp +94 -0
- package/cpp/geometry/Tetrahedron.cpp +83 -0
- package/cpp/geometry/Torus.cpp +65 -0
- package/cpp/geometry/WarpFunctions.cpp +238 -0
- package/cpp/geometry/Wave.cpp +85 -0
- package/cpp/include/vib3_ffi.h +238 -0
- package/cpp/math/Mat4x4.cpp +409 -0
- package/cpp/math/Mat4x4.hpp +209 -0
- package/cpp/math/Projection.cpp +142 -0
- package/cpp/math/Projection.hpp +148 -0
- package/cpp/math/Rotor4D.cpp +322 -0
- package/cpp/math/Rotor4D.hpp +204 -0
- package/cpp/math/Vec4.cpp +303 -0
- package/cpp/math/Vec4.hpp +225 -0
- package/cpp/src/vib3_ffi.cpp +607 -0
- package/cpp/tests/Geometry_test.cpp +213 -0
- package/cpp/tests/Mat4x4_test.cpp +494 -0
- package/cpp/tests/Projection_test.cpp +298 -0
- package/cpp/tests/Rotor4D_test.cpp +423 -0
- package/cpp/tests/Vec4_test.cpp +489 -0
- package/docs/webgpu-live.html +1 -1
- package/package.json +41 -30
- package/src/agent/index.js +1 -3
- package/src/agent/mcp/MCPServer.js +1220 -144
- package/src/agent/mcp/index.js +1 -1
- package/src/agent/mcp/stdio-server.js +264 -0
- package/src/agent/mcp/tools.js +498 -31
- package/src/cli/index.js +431 -47
- package/src/core/CanvasManager.js +97 -204
- package/src/core/ErrorReporter.js +1 -1
- package/src/core/Parameters.js +1 -1
- package/src/core/VIB3Engine.js +93 -4
- package/src/core/VitalitySystem.js +53 -0
- package/src/core/index.js +18 -0
- package/src/core/renderers/FacetedRendererAdapter.js +10 -9
- package/src/core/renderers/HolographicRendererAdapter.js +13 -9
- package/src/core/renderers/QuantumRendererAdapter.js +11 -7
- package/src/creative/AestheticMapper.js +628 -0
- package/src/creative/ChoreographyPlayer.js +481 -0
- package/src/creative/index.js +11 -0
- package/src/experimental/GameLoop.js +72 -0
- package/src/experimental/LatticePhysics.js +100 -0
- package/src/experimental/LiveDirector.js +143 -0
- package/src/experimental/PlayerController4D.js +154 -0
- package/src/experimental/VIB3Actor.js +138 -0
- package/src/experimental/VIB3Compositor.js +117 -0
- package/src/experimental/VIB3Link.js +122 -0
- package/src/experimental/VIB3Orchestrator.js +146 -0
- package/src/experimental/VIB3Universe.js +109 -0
- package/src/experimental/demos/CrystalLabyrinth.js +202 -0
- package/src/export/TradingCardManager.js +3 -4
- package/src/export/index.js +11 -1
- package/src/faceted/FacetedSystem.js +260 -394
- package/src/games/glyph-war/GlyphWarVisualizer.js +641 -0
- package/src/geometry/generators/Crystal.js +2 -2
- package/src/geometry/warp/HypersphereCore.js +53 -24
- package/src/holograms/HolographicVisualizer.js +84 -98
- package/src/holograms/RealHolographicSystem.js +194 -43
- package/src/math/Mat4x4.js +308 -105
- package/src/math/Rotor4D.js +124 -40
- package/src/math/Vec4.js +200 -103
- package/src/math/index.js +7 -7
- package/src/polychora/PolychoraSystem.js +77 -0
- package/src/quantum/QuantumEngine.js +103 -66
- package/src/quantum/QuantumVisualizer.js +31 -22
- package/src/reactivity/index.js +3 -5
- package/src/render/LayerPresetManager.js +372 -0
- package/src/render/LayerReactivityBridge.js +344 -0
- package/src/render/LayerRelationshipGraph.js +610 -0
- package/src/render/MultiCanvasBridge.js +148 -25
- package/src/render/ShaderLoader.js +38 -0
- package/src/render/ShaderProgram.js +4 -4
- package/src/render/UnifiedRenderBridge.js +4 -1
- package/src/render/backends/WebGPUBackend.js +8 -4
- package/src/render/index.js +27 -2
- package/src/scene/Node4D.js +74 -24
- package/src/scene/index.js +4 -4
- package/src/shaders/common/geometry24.glsl +65 -0
- package/src/shaders/common/geometry24.wgsl +54 -0
- package/src/shaders/common/rotation4d.glsl +4 -4
- package/src/shaders/common/rotation4d.wgsl +2 -2
- package/src/shaders/common/uniforms.wgsl +15 -8
- package/src/shaders/faceted/faceted.frag.glsl +220 -80
- package/src/shaders/faceted/faceted.frag.wgsl +144 -90
- package/src/shaders/holographic/holographic.frag.glsl +28 -9
- package/src/shaders/holographic/holographic.frag.wgsl +112 -41
- package/src/shaders/quantum/quantum.frag.glsl +1 -0
- package/src/shaders/quantum/quantum.frag.wgsl +6 -4
- package/src/testing/ParallelTestFramework.js +2 -2
- package/src/ui/adaptive/renderers/webgpu/WebGPURenderer.ts +2 -2
- package/src/viewer/GalleryUI.js +17 -0
- package/src/viewer/ViewerPortal.js +2 -2
- package/src/viewer/index.js +1 -1
- package/tools/headless-renderer.js +258 -0
- package/tools/shader-sync-verify.js +14 -8
- package/tools/site-analysis/all-reports.json +32 -0
- package/tools/site-analysis/combined-analysis.md +50 -0
- package/tools/site-analyzer.mjs +779 -0
- package/tools/visual-catalog/capture.js +276 -0
- package/tools/visual-catalog/composite.js +138 -0
- package/types/adaptive-sdk.d.ts +204 -5
- package/types/agent/cli.d.ts +78 -0
- package/types/agent/index.d.ts +18 -0
- package/types/agent/mcp.d.ts +87 -0
- package/types/agent/telemetry.d.ts +190 -0
- package/types/core/VIB3Engine.d.ts +26 -0
- package/types/core/index.d.ts +261 -0
- package/types/creative/AestheticMapper.d.ts +72 -0
- package/types/creative/ChoreographyPlayer.d.ts +96 -0
- package/types/creative/index.d.ts +17 -0
- package/types/export/index.d.ts +243 -0
- package/types/geometry/index.d.ts +164 -0
- package/types/math/index.d.ts +214 -0
- package/types/render/LayerPresetManager.d.ts +78 -0
- package/types/render/LayerReactivityBridge.d.ts +85 -0
- package/types/render/LayerRelationshipGraph.d.ts +174 -0
- package/types/render/index.d.ts +3 -0
- package/types/scene/index.d.ts +204 -0
- package/types/systems/index.d.ts +244 -0
- package/types/variations/index.d.ts +62 -0
- package/types/viewer/index.d.ts +225 -0
- package/DOCS/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +0 -34
- package/DOCS/DEV_TRACK_ANALYSIS.md +0 -77
- package/DOCS/DEV_TRACK_PLAN_2026-01-07.md +0 -42
- package/DOCS/SESSION_014_PLAN.md +0 -195
- package/DOCS/SESSION_LOG_2026-01-07.md +0 -56
- package/DOCS/STRATEGIC_BLUEPRINT_2026-01-07.md +0 -72
- package/DOCS/SYSTEM_AUDIT_2026-01-30.md +0 -738
- /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*
|