@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
package/CHANGELOG.md CHANGED
@@ -2,6 +2,42 @@
2
2
 
3
3
  All notable changes to VIB3+ CORE (`@vib3code/sdk`) will be documented in this file.
4
4
 
5
+ ## [2.0.2] — 2026-02-07
6
+
7
+ ### Fixed
8
+ - **Distribution** — Added `cpp/` directory to `package.json` files list to ensure full C++ source tree (including `geometry` and `tests`) is included in the npm package. This resolves native build failures in downstream applications.
9
+
10
+ ## [2.0.1] — 2026-02-03
11
+
12
+ ### Added
13
+ - **Vitality System** (`src/core/VitalitySystem.js`) — Organic breath-cycle modulation driving `u_breath` uniform across all 3 systems
14
+ - **Exhale feature** — Breath modulation integrated into Quantum, Faceted, and Holographic fragment shaders (inline + external GLSL/WGSL)
15
+ - **Polychora stub** (`src/polychora/PolychoraSystem.js`) — Placeholder for future 4D polytope system
16
+
17
+ ### Fixed
18
+ - Quantum/Faceted external shader flashing — synced shader logic between inline and external files
19
+ - Faceted shader logic bug (wrong SDF replaced with correct lattice-based shader)
20
+ - Holographic shader sync with exhale breathing effect
21
+
22
+ ### Changed
23
+ - Package renamed from `@vib3/sdk` to `@vib3code/sdk` for npm scope availability
24
+ - Published to npm registry as `@vib3code/sdk@2.0.1`
25
+
26
+ ## [2.0.1-hygiene] — 2026-02-06
27
+
28
+ ### Fixed
29
+ - **CanvasManager.js** — Rewrote to match VIB3Engine API contract (`createSystemCanvases`, `registerContext`, `destroy`); old version had no matching methods
30
+ - **HolographicRendererAdapter.js** — Fixed broken import: `HolographicSystem` (non-existent) → `RealHolographicSystem`
31
+ - **TradingCardManager.js** — Fixed imports pointing to non-existent `*Exact.js` and `*MultiLayer.js` generator files; now points to actual generators
32
+ - **Version string inconsistencies** — Unified VIB3Engine (`1.2.0`→`2.0.1`), Parameters (`1.0.0`→`2.0.1`), ErrorReporter (`2.0.0`→`2.0.1`)
33
+ - **External shader sync** — Added `u_breath` uniform to `quantum.frag.glsl`, `faceted.frag.glsl`, `quantum.frag.wgsl`, `faceted.frag.wgsl` (was present in inline shaders but missing from external files)
34
+
35
+ ### Changed
36
+ - **Renamed** `src/viewer/ReactivityManager.js` → `ViewerInputHandler.js` to avoid naming collision with `src/reactivity/ReactivityManager.js` (different classes with different purposes)
37
+ - **Removed** stale `package-lock.json` (project uses pnpm; `pnpm-lock.yaml` is canonical)
38
+
39
+ ---
40
+
5
41
  ## [2.0.0] — 2026-01-30
6
42
 
7
43
  ### Added
@@ -0,0 +1,245 @@
1
+ Last reviewed: 2026-02-17
2
+
3
+ # VIB3+ Agent Harness Architecture
4
+
5
+ **Purpose**: Close the feedback loop between AI agents and VIB3+ visualization, enabling agents to design ultra-intricate reactive choreographed visuals that would be impractical via manual UI.
6
+
7
+ ---
8
+
9
+ ## Current State (What Exists)
10
+
11
+ - 19 MCP tools for parameter control, system switching, gallery, reactivity, export
12
+ - Agent context packs for Claude and OpenAI
13
+ - Claude Code skills (`/vib3-design`, `/vib3-dev`) for design and development workflows
14
+ - Telemetry instrumentation on all tool calls
15
+
16
+ ## New Additions (This Session)
17
+
18
+ - **7 new MCP tools** (26 total): `describe_visual_state`, `batch_set_parameters`, `create_timeline`, `play_transition`, `apply_color_preset`, `set_post_processing`, `create_choreography`
19
+ - **Claude Code skills**: `.claude/commands/vib3-design.md` and `.claude/commands/vib3-dev.md`
20
+ - **Shader validation hook**: Pre-commit hook for `.glsl`/`.wgsl` changes
21
+
22
+ ---
23
+
24
+ ## Recommended Next Steps
25
+
26
+ ### Phase 1: Visual Feedback Loop (Highest Impact)
27
+
28
+ **Problem**: Agents set parameters but can't see the result. They're designing blind.
29
+
30
+ **Solution**: Screenshot capture + visual analysis pipeline.
31
+
32
+ #### 1A. `capture_screenshot` MCP Tool
33
+
34
+ Add a tool that captures the current visualization as an image:
35
+
36
+ ```javascript
37
+ // Implementation approach:
38
+ // 1. Use canvas.toDataURL('image/png') on the content-canvas layer
39
+ // 2. Composite all 5 layers into a single image
40
+ // 3. Return base64-encoded PNG
41
+
42
+ capture_screenshot: {
43
+ name: 'capture_screenshot',
44
+ description: 'Captures current visualization as a base64 PNG image',
45
+ inputSchema: {
46
+ type: 'object',
47
+ properties: {
48
+ width: { type: 'integer', default: 512 },
49
+ height: { type: 'integer', default: 512 },
50
+ layers: { type: 'string', enum: ['all', 'content', 'composite'], default: 'composite' }
51
+ }
52
+ }
53
+ }
54
+ ```
55
+
56
+ For multimodal agents (Claude with vision, GPT-4V), this enables:
57
+ 1. Set parameters → capture → analyze → refine → capture → analyze...
58
+ 2. "Make it more blue" → agent can verify the blue shift happened
59
+ 3. A/B testing: capture state A, modify, capture state B, compare
60
+
61
+ #### 1B. Headless Rendering Server
62
+
63
+ For CI/automated pipelines where no browser is available:
64
+
65
+ ```javascript
66
+ // Using Puppeteer or Playwright in headless mode
67
+ // Start VIB3+ in headless browser → apply MCP commands → capture frames
68
+ import puppeteer from 'puppeteer';
69
+
70
+ class HeadlessVIB3Renderer {
71
+ async launch() {
72
+ this.browser = await puppeteer.launch({ headless: true });
73
+ this.page = await this.browser.newPage();
74
+ await this.page.goto('http://localhost:3000'); // dev server
75
+ }
76
+
77
+ async captureFrame(params) {
78
+ await this.page.evaluate((p) => {
79
+ for (const [k, v] of Object.entries(p)) {
80
+ window.engine.setParameter(k, v);
81
+ }
82
+ }, params);
83
+ // Wait one frame
84
+ await this.page.evaluate(() => new Promise(r => requestAnimationFrame(r)));
85
+ return await this.page.screenshot({ type: 'png' });
86
+ }
87
+ }
88
+ ```
89
+
90
+ ### Phase 2: Agent Choreography Runtime
91
+
92
+ **Problem**: `create_choreography` generates a JSON spec, but there's no runtime to play it back.
93
+
94
+ **Solution**: Build a `ChoreographyPlayer` class that consumes choreography JSON and orchestrates the engine.
95
+
96
+ ```javascript
97
+ // src/creative/ChoreographyPlayer.js
98
+ export class ChoreographyPlayer {
99
+ constructor(engine) {
100
+ this.engine = engine;
101
+ this.timeline = new ParameterTimeline((n, v) => engine.setParameter(n, v));
102
+ this.transition = new TransitionAnimator(
103
+ (n, v) => engine.setParameter(n, v),
104
+ (n) => engine.getParameter(n)
105
+ );
106
+ }
107
+
108
+ async loadChoreography(spec) {
109
+ // Parse multi-scene choreography
110
+ // Set up scene transitions
111
+ // Wire timeline tracks per scene
112
+ // Handle system switching at scene boundaries
113
+ }
114
+
115
+ play() { /* Start playback with scene management */ }
116
+ pause() { /* Pause all active timelines/transitions */ }
117
+ seek(timeMs) { /* Jump to specific time, load correct scene */ }
118
+ }
119
+ ```
120
+
121
+ ### Phase 3: Design-by-Description (Text → Visual)
122
+
123
+ **Problem**: Users describe what they want in natural language. Agents need to map that to parameters.
124
+
125
+ **Solution**: Extend `AIPresetGenerator.js` with a more structured mapping:
126
+
127
+ ```javascript
128
+ // Emotional/aesthetic vocabulary → parameter ranges
129
+ const AESTHETIC_MAPS = {
130
+ // Emotions
131
+ serene: { speed: [0.1, 0.3], chaos: [0, 0.05], intensity: [0.3, 0.5] },
132
+ energetic: { speed: [2.0, 3.0], chaos: [0.5, 1.0], intensity: [0.7, 1.0] },
133
+ mysterious:{ speed: [0.3, 0.6], chaos: [0.1, 0.3], hue: [220, 280], intensity: [0.2, 0.4] },
134
+ joyful: { speed: [1.0, 1.5], chaos: [0.2, 0.4], hue: [30, 60], intensity: [0.7, 0.9] },
135
+
136
+ // Visual styles
137
+ minimal: { gridDensity: [4, 10], chaos: [0, 0.02], morphFactor: [0, 0.1] },
138
+ intricate: { gridDensity: [40, 80], chaos: [0.1, 0.3], morphFactor: [0.3, 1.0] },
139
+ organic: { chaos: [0.3, 0.7], morphFactor: [0.5, 1.5], speed: [0.5, 1.0] },
140
+ geometric: { chaos: [0, 0.05], gridDensity: [15, 30], morphFactor: [0, 0.2] },
141
+
142
+ // Depth effects
143
+ deep: { dimension: [3.0, 3.3], gridDensity: [30, 60] },
144
+ flat: { dimension: [4.0, 4.5], gridDensity: [8, 15] },
145
+ immersive: { dimension: [3.0, 3.5], rot4dXW: [0.5, 2.0], rot4dYW: [0.3, 1.5] }
146
+ };
147
+ ```
148
+
149
+ ### Phase 4: Collaborative Multi-Agent Workflow
150
+
151
+ Multiple agents working together on a choreography:
152
+
153
+ 1. **Director Agent** — Defines the high-level narrative (scenes, moods, transitions)
154
+ 2. **Color Agent** — Picks color presets and post-processing for each scene
155
+ 3. **Motion Agent** — Designs rotation and parameter timelines
156
+ 4. **Audio Agent** — Maps audio reactivity bands to parameters
157
+
158
+ Each agent uses the same MCP server, different tool subsets.
159
+
160
+ ### Phase 5: Hooks for Agent Workflow
161
+
162
+ #### Pre-export validation hook
163
+
164
+ ```bash
165
+ # .claude/settings.json — validate before export
166
+ {
167
+ "hooks": {
168
+ "PreToolCall": [
169
+ {
170
+ "tool": "export_package",
171
+ "command": "node tools/validate-export.js"
172
+ }
173
+ ]
174
+ }
175
+ }
176
+ ```
177
+
178
+ #### Auto-gallery-save hook
179
+
180
+ After every `batch_set_parameters` or `create_choreography`, auto-save to a rotating gallery slot:
181
+
182
+ ```bash
183
+ # .claude/settings.json
184
+ {
185
+ "hooks": {
186
+ "PostToolCall": [
187
+ {
188
+ "tool": "batch_set_parameters",
189
+ "command": "echo 'Auto-saved state to gallery'"
190
+ }
191
+ ]
192
+ }
193
+ }
194
+ ```
195
+
196
+ ---
197
+
198
+ ## Architecture Diagram: Agent Feedback Loop
199
+
200
+ ```
201
+ ┌─────────────────────────────────────────────────────────┐
202
+ │ AI AGENT (Claude/GPT) │
203
+ │ │
204
+ │ 1. describe_visual_state → understand current visual │
205
+ │ 2. batch_set_parameters → change visualization │
206
+ │ 3. describe_visual_state → verify change │
207
+ │ 4. create_timeline → design animation │
208
+ │ 5. create_choreography → compose full performance │
209
+ │ 6. [future] capture_screenshot → get actual pixels │
210
+ │ │
211
+ └────────────────────┬────────────────────────────────────┘
212
+ │ MCP Protocol (stdio)
213
+
214
+ ┌─────────────────────────────────────────────────────────┐
215
+ │ MCP SERVER (26 tools) │
216
+ │ │
217
+ │ Tool handlers → VIB3Engine API → Render Pipeline │
218
+ │ │
219
+ │ Telemetry ← Event Stream ← Instrumentation │
220
+ └────────────────────┬────────────────────────────────────┘
221
+
222
+
223
+ ┌─────────────────────────────────────────────────────────┐
224
+ │ VIB3+ ENGINE │
225
+ │ │
226
+ │ Quantum │ Faceted │ Holographic │
227
+ │ 24 geometries × 6D rotation × creative tooling │
228
+ │ Audio reactivity × Spatial input × Post-processing │
229
+ │ │
230
+ │ Output: 5-layer canvas composite │
231
+ └─────────────────────────────────────────────────────────┘
232
+ ```
233
+
234
+ ---
235
+
236
+ ## Why This Matters
237
+
238
+ Agents can:
239
+ 1. **Generate mathematically precise timelines** — 50+ parameter keyframes across 8+ tracks, perfectly synced to BPM, with easing functions humans couldn't manually coordinate
240
+ 2. **Explore the parameter space systematically** — Try all 24 geometries × 3 systems × 6 rotation planes in seconds
241
+ 3. **Design by description** — "Make it feel like being underwater at night" maps to specific parameter ranges
242
+ 4. **Compose multi-scene choreographies** — 10+ scenes with cross-fades, system switches, and per-scene timelines
243
+ 5. **Iterate without visual fatigue** — Agents don't get "used to" a look — they objectively assess parameter states
244
+
245
+ The agent harness transforms VIB3+ from a tool you use into a creative medium agents can compose with.
@@ -0,0 +1,59 @@
1
+ Last reviewed: 2026-02-17
2
+
3
+ # Building VIB3+ Ultra for Android
4
+
5
+ This guide explains how to build the "Crystal Labyrinth" demo as an Android APK using the existing Flutter integration.
6
+
7
+ ## Prerequisites
8
+
9
+ - Flutter SDK installed
10
+ - Android Studio / Android SDK installed
11
+ - Connected Android device or emulator
12
+
13
+ ## Quick Build (GitHub Actions)
14
+
15
+ The repository includes a workflow `.github/workflows/flutter-apk.yml` that automatically builds an APK on push to `examples/flutter_demo/`.
16
+
17
+ To trigger a build for the Crystal Labyrinth demo:
18
+ 1. Copy the built web assets to the Flutter assets directory (see Local Build below).
19
+ 2. Push changes.
20
+ 3. Download the artifact from the Actions tab.
21
+
22
+ ## Local Build Instructions
23
+
24
+ 1. **Build the Web Demo**
25
+ Run the Vite build to bundle the Crystal Labyrinth demo:
26
+ ```bash
27
+ npm install
28
+ npm run build:web
29
+ ```
30
+ This will output optimized files to `dist/`.
31
+
32
+ 2. **Prepare Flutter Assets**
33
+ Copy the build output to the Flutter project's asset folder:
34
+ ```bash
35
+ mkdir -p examples/flutter_demo/assets/vib3/
36
+ cp -r dist/* examples/flutter_demo/assets/vib3/
37
+ ```
38
+
39
+ 3. **Configure Entry Point**
40
+ Open `examples/flutter_demo/lib/vib3_controller.dart` and ensure the WebView points to the local index file or the deployed GitHub Pages URL:
41
+ `https://<your-username>.github.io/vib3codeSDK/examples/dogfood/crystal_labyrinth.html`
42
+
43
+ 4. **Build APK**
44
+ Navigate to the Flutter directory and build:
45
+ ```bash
46
+ cd examples/flutter_demo
47
+ flutter build apk --release
48
+ ```
49
+
50
+ 5. **Install**
51
+ ```bash
52
+ flutter install
53
+ ```
54
+
55
+ ## VIB3Link Networking on Android
56
+
57
+ For multi-user features (`VIB3Link`) to work on Android:
58
+ - Ensure the device has internet access.
59
+ - If using local dev server, use `adb reverse tcp:5173 tcp:5173` to forward ports.
@@ -0,0 +1 @@
1
+ Last reviewed: 2026-02-17
@@ -1,3 +1,5 @@
1
+ Last reviewed: 2026-02-17
2
+
1
3
  # CI and testing guide
2
4
 
3
5
  This guide outlines the baseline CI/test expectations for the project and a recommended set of
@@ -1,3 +1,5 @@
1
+ Last reviewed: 2026-02-17
2
+
1
3
  # Agentic CLI onboarding
2
4
 
3
5
  This guide aligns the current CLI surface (package scripts and telemetry helpers) with an agentic workflow. It is intentionally explicit so automation agents and humans can share the same runbook.
@@ -11,7 +13,7 @@ This guide aligns the current CLI surface (package scripts and telemetry helpers
11
13
  - Optional: renderer lifecycle overview for system orchestration is in [`DOCS/RENDERER_LIFECYCLE.md`](DOCS/RENDERER_LIFECYCLE.md).
12
14
  - Optional: GCP + Firebase provisioning steps live in [`DOCS/PROJECT_SETUP.md`](DOCS/PROJECT_SETUP.md).
13
15
  - Optional: repository directory manifest is in [`DOCS/REPO_MANIFEST.md`](DOCS/REPO_MANIFEST.md).
14
- - Optional: development track analysis is in [`DOCS/DEV_TRACK_ANALYSIS.md`](DOCS/DEV_TRACK_ANALYSIS.md).
16
+ - Optional: development track analysis is in [`DOCS/archive/DEV_TRACK_ANALYSIS.md`](DOCS/archive/DEV_TRACK_ANALYSIS.md).
15
17
  - Optional: WebGPU status/testing notes are in [`DOCS/WEBGPU_STATUS.md`](DOCS/WEBGPU_STATUS.md).
16
18
 
17
19
  ## Baseline setup
@@ -1,3 +1,5 @@
1
+ Last reviewed: 2026-02-17
2
+
1
3
  # Control & API Reference
2
4
 
3
5
  This document walks through every control surface in `index.html` and the JavaScript entry points they call so you can quickly map UI inputs to runtime behavior.
@@ -0,0 +1,119 @@
1
+ Last reviewed: 2026-02-17
2
+
3
+ # Cross-Site Design Pattern Synthesis
4
+
5
+ **Based on actual visual analysis of 4 reference sites via Playwright screenshots**
6
+ **Sites**: weare-simone.webflow.io, facetad.com, clickerss.com, tableside.com.au
7
+ **Date**: 2026-02-10
8
+
9
+ ---
10
+
11
+ ## Universal Patterns (Found in 3+ Sites)
12
+
13
+ ### 1. Typography-as-Hero
14
+ **Simone**: Giant "SIMONE" wordmark fills viewport
15
+ **Clickerss**: Massive B&W portrait, then enormous serif text sections
16
+ **Tableside**: "FOOD & DRINK DIGITAL CREATIVES" in bold coral fills 70% of viewport
17
+ **Facetad**: Single sentence in vast emptiness
18
+
19
+ **What it means**: The hero section is ONE thing — either giant text or a giant image. No competing elements. No "learn more" buttons, no description paragraphs, no gradient overlays.
20
+
21
+ **VIB3+ action**: The opening cinematic must be ONLY the text mask + visualizer. Kill any secondary UI that competes with the hero moment.
22
+
23
+ ### 2. Asymmetric Card Layouts
24
+ **Simone**: Zigzag case study cards (image RIGHT, then LEFT, then RIGHT)
25
+ **Facetad**: Text LEFT + floating image RIGHT (services section)
26
+ **Tableside**: 50/50 split cards (photo one side, text other side)
27
+ **Clickerss**: Text-image interweaving (overlapping, not split)
28
+
29
+ **What it means**: No site uses centered, symmetric card layouts. Everything is offset, asymmetric, or alternating. Visual rhythm comes from the alternation pattern.
30
+
31
+ **VIB3+ action**: Cascade cards should have asymmetric overlay positioning. Alternate text LEFT/RIGHT between cards. The card overlays shouldn't be centered — push them to one side.
32
+
33
+ ### 3. Non-Rectangular Image Boundaries
34
+ **Facetad**: ALL images use parallelogram clip-paths
35
+ **Simone**: Rounded-corner containers (~24px radius)
36
+ **Facetad**: Diagonal section dividers (30-40 degree angle)
37
+ **Clickerss**: Images overlapping text boundaries
38
+
39
+ **What it means**: Rectangular images are boring. Every site transforms image boundaries through clip-paths, rounded corners, diagonal edges, or overlap.
40
+
41
+ **VIB3+ action**: The clip-path polygon morphing system (rect → hex → diamond → oct → narrow) is exactly right. Also consider adding parallelogram/skewed shapes to the shape vocabulary.
42
+
43
+ ### 4. Extreme Negative Space
44
+ **Facetad**: Hero is 95% empty
45
+ **Simone**: Hero is pure text, no images
46
+ **Clickerss**: Large gaps between sections
47
+ **Tableside**: Generous padding around portfolio cards
48
+
49
+ **What it means**: Premium sites use MORE empty space, not less. The content is given room to breathe.
50
+
51
+ **VIB3+ action**: Resist the urge to pack every section with content. The morph experience should have moments of sparse visualization (low density, simple geometry) as breathing room between intense moments.
52
+
53
+ ---
54
+
55
+ ## Distinctive Patterns (Site-Specific but Highly Applicable)
56
+
57
+ ### 5. Diagonal Section Dividers (Facetad)
58
+ All section boundaries use a consistent diagonal angle. Cream → photo → cream → red → cream transitions happen along diagonal slashes, never horizontal lines.
59
+
60
+ **VIB3+ action**: Section dividers could use CSS `clip-path: polygon()` with angled edges instead of straight horizontal borders. A 15-20 degree angle would add visual energy.
61
+
62
+ ### 6. Hard Dark/Light Mode Switches (Simone)
63
+ Cream → dark teal happens as a sharp boundary. The entire palette inverts. No cross-fade.
64
+
65
+ **VIB3+ action**: The morph stages already switch visualization parameters sharply between stages. Could also switch the page background color sharply at section boundaries (not just the visualizer hue).
66
+
67
+ ### 7. Text-Image Interweaving (Clickerss)
68
+ Typography at 100-200px+ runs through/behind portfolio images. Text and images share the same spatial zone.
69
+
70
+ **VIB3+ action**: Section titles could extend BEHIND the cascade cards, visible through the clip-path window. This creates depth between the text layer and the visualizer layer.
71
+
72
+ ### 8. Scattered Floating Gallery (Facetad)
73
+ Portfolio images scattered across viewport at various sizes and positions, all in parallelogram shapes, overlapping each other.
74
+
75
+ **VIB3+ action**: Could be used for a "gallery" or "showcase" section where multiple small visualizer thumbnails float at different positions with skewed clip-paths, each showing a different geometry.
76
+
77
+ ### 9. Color Palette Discipline (All Sites)
78
+ **Simone**: cream + dark teal + chartreuse green (3 colors)
79
+ **Facetad**: cream + terracotta red (2 colors)
80
+ **Clickerss**: white + black (2 colors)
81
+ **Tableside**: cream + coral + navy (3 colors)
82
+
83
+ **What it means**: Maximum 3 colors. The visualizer provides the color variety — the page itself should be restrained.
84
+
85
+ ### 10. Footer Echo (Simone)
86
+ The hero's filled "SIMONE" becomes outlined/stroked at the footer. Same shape, different rendering.
87
+
88
+ **VIB3+ action**: The CTA section should echo the hero — same visualizer geometry but in a different system (e.g., Quantum in hero → Faceted outline in CTA) or with inverted parameters.
89
+
90
+ ### 11. Marquee/Infinite Scroll (Simone)
91
+ "Work with us" repeats horizontally as a continuous scrolling marquee.
92
+
93
+ **VIB3+ action**: A parameter ticker or geometry name marquee could add persistent horizontal motion independent of vertical scroll.
94
+
95
+ ---
96
+
97
+ ## Priority Actions for VIB3+ Landing Page
98
+
99
+ ### Immediate (Apply to existing choreography)
100
+ 1. **Add parallelogram shapes** to SHAPES vocabulary in choreography.js (`skewR`, `skewL` with angled edges)
101
+ 2. **Asymmetric overlay positioning** — alternate cascade-overlay text LEFT/RIGHT per card
102
+ 3. **Increase negative space** — add padding/margins between morph stages
103
+ 4. **Increase hero text size** — opening cinematic text should fill more viewport
104
+ 5. **Add service/parameter metadata** to cascade card overlays (geometry name, system type)
105
+
106
+ ### Medium-term (New section patterns)
107
+ 6. **Diagonal section dividers** — angled `clip-path` on section boundaries
108
+ 7. **Footer echo** — CTA section uses same geometry as hero but different system
109
+ 8. **Split-color CTA** — vertical or diagonal color split in CTA section
110
+ 9. **Text-behind-card** effect — section titles visible through clip-path windows
111
+
112
+ ### Aspirational (Major new features)
113
+ 10. **Scattered gallery section** — multiple small visualizer thumbnails floating with parallelogram clip-paths
114
+ 11. **Horizontal marquee** — continuous ticker with geometry names or parameter readouts
115
+ 12. **Variable card sizing** — some cascade cards appear larger/smaller via clip-path window size
116
+
117
+ ---
118
+
119
+ *Synthesized from actual Playwright visual analysis of 4 reference sites.*
package/DOCS/ENV_SETUP.md CHANGED
@@ -1,3 +1,5 @@
1
+ Last reviewed: 2026-02-17
2
+
1
3
  # Environment setup (Firebase, gcloud, Flutter, Android, GH CLI)
2
4
 
3
5
  This doc provides a **copy/paste** bootstrap script to install and configure: