@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,204 @@
1
+ /**
2
+ * Scene Module TypeScript Definitions
3
+ * MemoryPool (ObjectPool, TypedArrayPool, Vec4Pool, Mat4x4Pool, PoolManager)
4
+ */
5
+
6
+ import { Vec4 } from '../math';
7
+
8
+ // ============================================================================
9
+ // ObjectPool
10
+ // ============================================================================
11
+
12
+ /** Pool statistics */
13
+ export interface PoolStats {
14
+ available: number;
15
+ inUse: number;
16
+ totalAllocations: number;
17
+ hits: number;
18
+ misses: number;
19
+ hitRate: number;
20
+ }
21
+
22
+ /** Object pool options */
23
+ export interface ObjectPoolOptions {
24
+ /** Maximum pool size (0 = unlimited) */
25
+ maxSize?: number;
26
+ /** Initial pre-warm count */
27
+ initialSize?: number;
28
+ /** Whether to pre-warm on construction (default: true) */
29
+ preWarm?: boolean;
30
+ }
31
+
32
+ /**
33
+ * Generic object pool to reduce GC pressure.
34
+ * @template T - The type of objects managed by the pool
35
+ */
36
+ export declare class ObjectPool<T = any> {
37
+ maxSize: number;
38
+ initialSize: number;
39
+ preWarm: boolean;
40
+
41
+ /** Number of available (pooled) objects. */
42
+ readonly available: number;
43
+
44
+ /** Number of objects currently in use. */
45
+ readonly inUse: number;
46
+
47
+ constructor(factory: () => T, reset?: ((obj: T) => void) | null, options?: ObjectPoolOptions);
48
+
49
+ /** Acquire an object from the pool (creates new if empty). */
50
+ acquire(): T;
51
+
52
+ /** Release an object back to the pool. Returns true if accepted. */
53
+ release(obj: T): boolean;
54
+
55
+ /** Release all in-use objects back to the pool. */
56
+ releaseAll(): void;
57
+
58
+ /** Clear both available and in-use pools. */
59
+ clear(): void;
60
+
61
+ /** Get pool statistics (hit rate, allocations). */
62
+ getStats(): PoolStats;
63
+ }
64
+
65
+ // ============================================================================
66
+ // TypedArrayPool
67
+ // ============================================================================
68
+
69
+ /** TypedArray pool statistics */
70
+ export interface TypedArrayPoolStats {
71
+ float32Pooled: number;
72
+ uint16Pooled: number;
73
+ uint32Pooled: number;
74
+ totalAllocations: number;
75
+ hits: number;
76
+ hitRate: number;
77
+ }
78
+
79
+ /**
80
+ * Efficient typed array pool with power-of-2 bucketing.
81
+ * Manages Float32Array, Uint16Array, and Uint32Array pools.
82
+ */
83
+ export declare class TypedArrayPool {
84
+ constructor();
85
+
86
+ /** Acquire a Float32Array (size rounded up to power of 2, min 16). */
87
+ acquireFloat32(size: number): Float32Array;
88
+
89
+ /** Release a Float32Array back to the pool (cleared to 0). */
90
+ releaseFloat32(arr: Float32Array): void;
91
+
92
+ /** Acquire a Uint16Array. */
93
+ acquireUint16(size: number): Uint16Array;
94
+
95
+ /** Release a Uint16Array. */
96
+ releaseUint16(arr: Uint16Array): void;
97
+
98
+ /** Acquire a Uint32Array. */
99
+ acquireUint32(size: number): Uint32Array;
100
+
101
+ /** Release a Uint32Array. */
102
+ releaseUint32(arr: Uint32Array): void;
103
+
104
+ /** Clear all pools. */
105
+ clear(): void;
106
+
107
+ /** Get pool statistics. */
108
+ getStats(): TypedArrayPoolStats;
109
+ }
110
+
111
+ // ============================================================================
112
+ // Vec4Pool
113
+ // ============================================================================
114
+
115
+ /**
116
+ * Specialized pool for Vec4 instances.
117
+ * Must be initialized with a Vec4 class before use.
118
+ */
119
+ export declare class Vec4Pool {
120
+ constructor(initialSize?: number);
121
+
122
+ /** Initialize the pool with a Vec4 class. */
123
+ init(Vec4Class: new (x: number, y: number, z: number, w: number) => Vec4): void;
124
+
125
+ /** Acquire a Vec4 with specified values. Throws if not initialized. */
126
+ acquire(x?: number, y?: number, z?: number, w?: number): Vec4;
127
+
128
+ /** Release a Vec4 back to the pool. */
129
+ release(vec: Vec4): void;
130
+
131
+ /** Release all vectors. */
132
+ releaseAll(): void;
133
+
134
+ /** Get pool statistics. */
135
+ getStats(): { available: number; inUse: number };
136
+ }
137
+
138
+ // ============================================================================
139
+ // Mat4x4Pool
140
+ // ============================================================================
141
+
142
+ /**
143
+ * Specialized pool for 4×4 matrix instances.
144
+ * Must be initialized with a Mat4x4 class before use.
145
+ */
146
+ export declare class Mat4x4Pool {
147
+ constructor(initialSize?: number);
148
+
149
+ /** Initialize with a Mat4x4 class. */
150
+ init(Mat4x4Class: { identity(): any }): void;
151
+
152
+ /** Acquire an identity matrix. Throws if not initialized. */
153
+ acquireIdentity(): any;
154
+
155
+ /** Release a matrix. */
156
+ release(mat: any): void;
157
+
158
+ /** Release all matrices. */
159
+ releaseAll(): void;
160
+
161
+ /** Get pool statistics. */
162
+ getStats(): { available: number; inUse: number };
163
+ }
164
+
165
+ // ============================================================================
166
+ // PoolManager
167
+ // ============================================================================
168
+
169
+ /** Combined stats from all pool types */
170
+ export interface PoolManagerStats {
171
+ objectPools: Record<string, PoolStats>;
172
+ typedArrays: TypedArrayPoolStats;
173
+ vec4: { available: number; inUse: number };
174
+ mat4x4: { available: number; inUse: number };
175
+ }
176
+
177
+ /**
178
+ * Global pool manager coordinating all pool types.
179
+ */
180
+ export declare class PoolManager {
181
+ typedArrays: TypedArrayPool;
182
+ vec4: Vec4Pool;
183
+ mat4x4: Mat4x4Pool;
184
+
185
+ constructor();
186
+
187
+ /** Initialize Vec4 and Mat4x4 pools with their classes. */
188
+ initMathPools(Vec4Class: any, Mat4x4Class: any): void;
189
+
190
+ /** Register a named custom object pool. */
191
+ registerPool<T>(name: string, factory: () => T, reset?: ((obj: T) => void) | null, options?: ObjectPoolOptions): ObjectPool<T>;
192
+
193
+ /** Get a registered pool by name. */
194
+ getPool<T = any>(name: string): ObjectPool<T> | undefined;
195
+
196
+ /** Clear all pools. */
197
+ clearAll(): void;
198
+
199
+ /** Get combined statistics. */
200
+ getStats(): PoolManagerStats;
201
+ }
202
+
203
+ /** Default global pool manager instance. */
204
+ export declare const pools: PoolManager;
@@ -0,0 +1,244 @@
1
+ /**
2
+ * Visualization Systems TypeScript Definitions
3
+ * QuantumEngine, FacetedSystem, RealHolographicSystem
4
+ */
5
+
6
+ import { ParameterManager, VIB3Parameters } from '../core';
7
+
8
+ // ============================================================================
9
+ // Common
10
+ // ============================================================================
11
+
12
+ /** Canvas set for 5-layer rendering */
13
+ export interface CanvasSet {
14
+ background: HTMLCanvasElement;
15
+ shadow: HTMLCanvasElement;
16
+ content: HTMLCanvasElement;
17
+ highlight: HTMLCanvasElement;
18
+ accent: HTMLCanvasElement;
19
+ }
20
+
21
+ /** Audio data for reactivity */
22
+ export interface AudioData {
23
+ bass: number;
24
+ mid: number;
25
+ high: number;
26
+ energy?: number;
27
+ }
28
+
29
+ /** Render mode: direct WebGL or via UnifiedRenderBridge */
30
+ export type RenderMode = 'direct' | 'bridge';
31
+
32
+ // ============================================================================
33
+ // QuantumEngine
34
+ // ============================================================================
35
+
36
+ export interface QuantumEngineOptions {
37
+ /** Auto-start render loop (default: true) */
38
+ autoStart?: boolean;
39
+ /** Single canvas override for content-only mode */
40
+ canvas?: HTMLCanvasElement;
41
+ /** Multi-canvas set for 5-layer mode */
42
+ canvases?: CanvasSet;
43
+ }
44
+
45
+ /**
46
+ * Quantum visualization system.
47
+ * Renders quantum-inspired lattice patterns via procedural fragment shaders.
48
+ * Supports 5-layer canvas architecture and audio/gesture reactivity.
49
+ */
50
+ export declare class QuantumEngine {
51
+ visualizers: any[];
52
+ parameters: ParameterManager;
53
+ isActive: boolean;
54
+ autoStart: boolean;
55
+ canvasOverride: HTMLCanvasElement | null;
56
+ canvasSet: CanvasSet | null;
57
+ audioData: AudioData;
58
+
59
+ constructor(options?: QuantumEngineOptions);
60
+
61
+ /** Initialize quantum system (creates visualizers, sets up reactivity). */
62
+ init(): void;
63
+
64
+ /** Create visualizers for all 5 layers (or single content layer). */
65
+ createVisualizers(): void;
66
+
67
+ /** Start the render loop. */
68
+ startRenderLoop(): void;
69
+
70
+ /** Stop the render loop. */
71
+ stopRenderLoop(): void;
72
+
73
+ /** Update parameters on all visualizers. */
74
+ updateParameters(params: Partial<VIB3Parameters>): void;
75
+
76
+ /** Set active state. */
77
+ setActive(active: boolean): void;
78
+
79
+ /** Destroy all visualizers and clean up resources. */
80
+ destroy(): void;
81
+
82
+ /** Switch to a geometry variant by index. */
83
+ switchVariant(index: number): void;
84
+
85
+ /** Get current audio data. */
86
+ getAudioData(): AudioData;
87
+
88
+ /** Toggle audio reactivity. */
89
+ toggleAudio(): Promise<boolean>;
90
+ }
91
+
92
+ // ============================================================================
93
+ // FacetedSystem
94
+ // ============================================================================
95
+
96
+ export interface FacetedSystemOptions {
97
+ /** Prefer WebGPU rendering (default: true) */
98
+ preferWebGPU?: boolean;
99
+ /** Single canvas override */
100
+ canvas?: HTMLCanvasElement;
101
+ /** Auto-start render loop (default: true) */
102
+ autoStart?: boolean;
103
+ }
104
+
105
+ /**
106
+ * Faceted visualization system.
107
+ * Renders precise 2D geometric patterns from 4D rotation.
108
+ * Supports WebGL and WebGPU via UnifiedRenderBridge.
109
+ * All 24 geometry variants with HSL color control.
110
+ */
111
+ export declare class FacetedSystem {
112
+ canvas: HTMLCanvasElement | null;
113
+ gl: WebGLRenderingContext | null;
114
+ program: WebGLProgram | null;
115
+ isActive: boolean;
116
+ animationFrameId: number | null;
117
+ startTime: number;
118
+
119
+ /** Uniform locations for shader parameters */
120
+ uniforms: Record<string, WebGLUniformLocation | null>;
121
+
122
+ /** Current parameter values */
123
+ currentParams: {
124
+ geometry: number;
125
+ rot4dXY: number;
126
+ rot4dXZ: number;
127
+ rot4dYZ: number;
128
+ rot4dXW: number;
129
+ rot4dYW: number;
130
+ rot4dZW: number;
131
+ dimension: number;
132
+ gridDensity: number;
133
+ morphFactor: number;
134
+ chaos: number;
135
+ speed: number;
136
+ hue: number;
137
+ intensity: number;
138
+ saturation: number;
139
+ };
140
+
141
+ constructor(options?: FacetedSystemOptions);
142
+
143
+ /** Initialize with WebGL/WebGPU context. */
144
+ init(canvas?: HTMLCanvasElement): Promise<boolean>;
145
+
146
+ /** Start the render loop. */
147
+ startRenderLoop(): void;
148
+
149
+ /** Stop the render loop. */
150
+ stopRenderLoop(): void;
151
+
152
+ /** Update parameters. */
153
+ updateParameters(params: Partial<VIB3Parameters>): void;
154
+
155
+ /** Set active state. */
156
+ setActive(active: boolean): void;
157
+
158
+ /** Handle canvas resize. */
159
+ resize(width: number, height: number, dpr?: number): void;
160
+
161
+ /** Destroy and clean up all resources. */
162
+ destroy(): void;
163
+
164
+ /** Get the active backend type ('webgl' | 'webgpu'). */
165
+ getBackendType(): string;
166
+ }
167
+
168
+ // ============================================================================
169
+ // RealHolographicSystem
170
+ // ============================================================================
171
+
172
+ export interface HolographicSystemOptions {
173
+ /** Single canvas override for content-only mode */
174
+ canvas?: HTMLCanvasElement;
175
+ /** Multi-canvas set for 5-layer mode */
176
+ canvases?: CanvasSet;
177
+ /** Named relationship profile to load (default: 'holographic') */
178
+ relationshipProfile?: 'holographic' | 'symmetry' | 'chord' | 'storm' | 'legacy';
179
+ }
180
+
181
+ /**
182
+ * Holographic visualization system.
183
+ * Renders through 5-layer glassmorphic canvas stack with per-layer shaders.
184
+ * Native microphone input for audio reactivity with beat/melody detection.
185
+ */
186
+ export declare class RealHolographicSystem {
187
+ visualizers: any[];
188
+ currentVariant: number;
189
+ totalVariants: number;
190
+ isActive: boolean;
191
+ canvasOverride: HTMLCanvasElement | null;
192
+ canvasSet: CanvasSet | null;
193
+ audioEnabled: boolean;
194
+ audioContext: AudioContext | null;
195
+ audioData: AudioData;
196
+ variantNames: string[];
197
+
198
+ constructor(options?: HolographicSystemOptions);
199
+
200
+ /** Initialize holographic system. */
201
+ initialize(): void;
202
+
203
+ /** Create visualizers for all 5 layers. */
204
+ createVisualizers(): void;
205
+
206
+ /** Start the render loop. */
207
+ startRenderLoop(): void;
208
+
209
+ /** Stop the render loop. */
210
+ stopRenderLoop(): void;
211
+
212
+ /** Update parameters on all visualizers. */
213
+ updateParameters(params: Partial<VIB3Parameters>): void;
214
+
215
+ /** Set active state. */
216
+ setActive(active: boolean): void;
217
+
218
+ /** Destroy all visualizers and clean up resources. */
219
+ destroy(): void;
220
+
221
+ /** Switch to a variant by index. */
222
+ switchVariant(index: number): void;
223
+
224
+ /** Toggle audio reactivity. */
225
+ toggleAudio(): Promise<boolean>;
226
+
227
+ /** Get variant name by index. */
228
+ getVariantName(index: number): string;
229
+
230
+ /** The layer relationship graph instance. */
231
+ readonly layerGraph: import('../render/LayerRelationshipGraph').LayerRelationshipGraph;
232
+
233
+ /** Load a relationship profile by name. */
234
+ loadRelationshipProfile(profileName: 'holographic' | 'symmetry' | 'chord' | 'storm' | 'legacy'): void;
235
+
236
+ /** Set the keystone (driver) layer. */
237
+ setKeystone(layerName: 'background' | 'shadow' | 'content' | 'highlight' | 'accent'): void;
238
+
239
+ /** Set the relationship for a dependent layer. */
240
+ setLayerRelationship(
241
+ layerName: 'background' | 'shadow' | 'content' | 'highlight' | 'accent',
242
+ relationship: string | Function | { preset: string; config?: Record<string, unknown> }
243
+ ): void;
244
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Variations Module TypeScript Definitions
3
+ */
4
+
5
+ import { VIB3Parameters } from '../core';
6
+
7
+ /** Variation slot */
8
+ export interface VariationSlot {
9
+ index: number;
10
+ parameters: VIB3Parameters;
11
+ name: string;
12
+ system: string;
13
+ geometry: number;
14
+ timestamp: string;
15
+ thumbnail?: string;
16
+ }
17
+
18
+ /** Variation generation options */
19
+ export interface VariationOptions {
20
+ /** Base parameters to deviate from */
21
+ baseParams: VIB3Parameters;
22
+ /** Amount of deviation (0-1) */
23
+ deviation?: number;
24
+ /** Lock specific parameters from changing */
25
+ locked?: string[];
26
+ /** System to generate for */
27
+ system?: string;
28
+ }
29
+
30
+ /**
31
+ * Manages 100 variation slots per system for exploring parameter space.
32
+ */
33
+ export declare class VariationManager {
34
+ slots: VariationSlot[];
35
+ maxSlots: number;
36
+
37
+ constructor(maxSlots?: number);
38
+
39
+ /** Generate a variation from base parameters. */
40
+ generate(options: VariationOptions): VariationSlot;
41
+
42
+ /** Generate multiple variations at once. */
43
+ generateBatch(options: VariationOptions, count: number): VariationSlot[];
44
+
45
+ /** Get a slot by index. */
46
+ getSlot(index: number): VariationSlot | undefined;
47
+
48
+ /** Save a variation to a slot. */
49
+ saveSlot(index: number, slot: VariationSlot): void;
50
+
51
+ /** Clear a slot. */
52
+ clearSlot(index: number): void;
53
+
54
+ /** Clear all slots. */
55
+ clearAll(): void;
56
+
57
+ /** Export all slots as JSON. */
58
+ exportAll(): string;
59
+
60
+ /** Import slots from JSON. */
61
+ importAll(json: string): void;
62
+ }