@vib3code/sdk 2.0.3-canary.6f35b4c → 2.0.3-canary.75a3290

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-15.md +142 -0
  2. package/package.json +10 -1
  3. package/src/agent/index.js +1 -3
  4. package/src/agent/mcp/MCPServer.js +196 -0
  5. package/src/agent/mcp/index.js +1 -1
  6. package/src/agent/mcp/tools.js +87 -0
  7. package/src/cli/index.js +374 -44
  8. package/src/core/VIB3Engine.js +55 -3
  9. package/src/core/index.js +18 -0
  10. package/src/core/renderers/FacetedRendererAdapter.js +10 -9
  11. package/src/core/renderers/HolographicRendererAdapter.js +11 -7
  12. package/src/core/renderers/QuantumRendererAdapter.js +11 -7
  13. package/src/creative/index.js +11 -0
  14. package/src/export/index.js +11 -1
  15. package/src/faceted/FacetedSystem.js +8 -4
  16. package/src/holograms/RealHolographicSystem.js +126 -31
  17. package/src/math/index.js +7 -7
  18. package/src/reactivity/index.js +3 -5
  19. package/src/render/LayerPresetManager.js +372 -0
  20. package/src/render/LayerReactivityBridge.js +344 -0
  21. package/src/render/LayerRelationshipGraph.js +610 -0
  22. package/src/render/MultiCanvasBridge.js +148 -25
  23. package/src/render/index.js +27 -2
  24. package/src/scene/index.js +4 -4
  25. package/src/testing/ParallelTestFramework.js +2 -2
  26. package/src/viewer/GalleryUI.js +17 -0
  27. package/src/viewer/ViewerPortal.js +2 -2
  28. package/types/adaptive-sdk.d.ts +204 -5
  29. package/types/agent/cli.d.ts +78 -0
  30. package/types/agent/index.d.ts +18 -0
  31. package/types/agent/mcp.d.ts +87 -0
  32. package/types/agent/telemetry.d.ts +190 -0
  33. package/types/core/VIB3Engine.d.ts +26 -0
  34. package/types/core/index.d.ts +261 -0
  35. package/types/creative/AestheticMapper.d.ts +72 -0
  36. package/types/creative/ChoreographyPlayer.d.ts +96 -0
  37. package/types/creative/index.d.ts +17 -0
  38. package/types/export/index.d.ts +243 -0
  39. package/types/geometry/index.d.ts +164 -0
  40. package/types/math/index.d.ts +214 -0
  41. package/types/render/LayerPresetManager.d.ts +78 -0
  42. package/types/render/LayerReactivityBridge.d.ts +85 -0
  43. package/types/render/LayerRelationshipGraph.d.ts +174 -0
  44. package/types/render/index.d.ts +3 -0
  45. package/types/scene/index.d.ts +204 -0
  46. package/types/systems/index.d.ts +244 -0
  47. package/types/variations/index.d.ts +62 -0
  48. package/types/viewer/index.d.ts +225 -0
@@ -7,30 +7,30 @@
7
7
  * UnifiedRenderBridge instances — one per canvas — and coordinates shader
8
8
  * compilation, uniform updates, and rendering across all layers.
9
9
  *
10
+ * Layer parameters are derived through a LayerRelationshipGraph, where one
11
+ * layer acts as the keystone (driver) and others derive their state through
12
+ * configurable relationship functions — not static multipliers.
13
+ *
10
14
  * Usage:
11
15
  * const multi = new MultiCanvasBridge();
12
16
  * await multi.initialize({
13
- * canvases: {
14
- * background: document.getElementById('bg-canvas'),
15
- * shadow: document.getElementById('shadow-canvas'),
16
- * content: document.getElementById('content-canvas'),
17
- * highlight: document.getElementById('highlight-canvas'),
18
- * accent: document.getElementById('accent-canvas'),
19
- * },
20
- * preferWebGPU: true
17
+ * canvases: { background, shadow, content, highlight, accent },
18
+ * preferWebGPU: true,
19
+ * relationshipProfile: 'holographic' // or 'symmetry', 'chord', 'storm'
21
20
  * });
22
21
  *
23
22
  * multi.compileShaderAll('holographic', shaderSources);
24
- * multi.setSharedUniforms({ u_time: t, u_resolution: [w, h] });
25
- * multi.setLayerUniforms('background', { u_layerOpacity: 0.2, u_densityMult: 0.4 });
23
+ * multi.setKeystoneUniforms({ u_time: t, u_density: 1.0, u_hue: 320 });
26
24
  * multi.renderAll('holographic');
27
25
  */
28
26
 
29
27
  import { UnifiedRenderBridge } from './UnifiedRenderBridge.js';
28
+ import { LayerRelationshipGraph, LAYER_ORDER as GRAPH_LAYER_ORDER } from './LayerRelationshipGraph.js';
30
29
 
31
30
  /**
32
- * Default layer configuration matching the VIB3+ holographic system.
33
- * Each layer has role-specific opacity, density, and speed multipliers.
31
+ * Default layer configuration used as fallback when no relationship graph
32
+ * is active (legacy mode). Preserved for backward compatibility only.
33
+ * @deprecated Use LayerRelationshipGraph profiles instead.
34
34
  */
35
35
  const DEFAULT_LAYER_CONFIG = {
36
36
  background: { layerScale: 1.0, layerOpacity: 0.2, densityMult: 0.4, speedMult: 0.2 },
@@ -43,7 +43,7 @@ const DEFAULT_LAYER_CONFIG = {
43
43
  /**
44
44
  * Standard layer order (back to front).
45
45
  */
46
- const LAYER_ORDER = ['background', 'shadow', 'content', 'highlight', 'accent'];
46
+ const LAYER_ORDER = GRAPH_LAYER_ORDER;
47
47
 
48
48
  export class MultiCanvasBridge {
49
49
  constructor() {
@@ -59,7 +59,7 @@ export class MultiCanvasBridge {
59
59
  /** @type {Map<string, object>} Per-layer uniform overrides */
60
60
  this._layerUniforms = new Map();
61
61
 
62
- /** @type {Map<string, object>} Per-layer config (opacity, density, speed) */
62
+ /** @type {Map<string, object>} Per-layer config (opacity, density, speed) — legacy fallback */
63
63
  this._layerConfig = new Map();
64
64
 
65
65
  /** @type {boolean} */
@@ -67,6 +67,12 @@ export class MultiCanvasBridge {
67
67
 
68
68
  /** @type {string|null} Active backend type (set after init) */
69
69
  this._backendType = null;
70
+
71
+ /** @type {LayerRelationshipGraph|null} */
72
+ this._relationshipGraph = null;
73
+
74
+ /** @type {number} Frame time counter for relationship resolution */
75
+ this._frameTime = 0;
70
76
  }
71
77
 
72
78
  /**
@@ -76,7 +82,9 @@ export class MultiCanvasBridge {
76
82
  * @param {object} options.canvases - Map of layer name → HTMLCanvasElement
77
83
  * @param {boolean} [options.preferWebGPU=true] - Try WebGPU for each canvas
78
84
  * @param {boolean} [options.debug=false]
79
- * @param {object} [options.layerConfig] - Override default layer configuration
85
+ * @param {object} [options.layerConfig] - Override default layer configuration (legacy)
86
+ * @param {string} [options.relationshipProfile] - Named relationship profile to load
87
+ * @param {LayerRelationshipGraph} [options.relationshipGraph] - Pre-configured graph instance
80
88
  * @returns {Promise<void>}
81
89
  */
82
90
  async initialize(options) {
@@ -84,7 +92,9 @@ export class MultiCanvasBridge {
84
92
  canvases,
85
93
  preferWebGPU = true,
86
94
  debug = false,
87
- layerConfig = {}
95
+ layerConfig = {},
96
+ relationshipProfile,
97
+ relationshipGraph
88
98
  } = options;
89
99
 
90
100
  // Initialize bridges in parallel
@@ -102,7 +112,7 @@ export class MultiCanvasBridge {
102
112
  this._bridges.set(layerName, bridge);
103
113
  this._canvases.set(layerName, canvas);
104
114
 
105
- // Apply layer config (user override > default)
115
+ // Apply legacy layer config (user override > default)
106
116
  const config = {
107
117
  ...(DEFAULT_LAYER_CONFIG[layerName] || {}),
108
118
  ...(layerConfig[layerName] || {})
@@ -118,9 +128,19 @@ export class MultiCanvasBridge {
118
128
  }
119
129
  }
120
130
 
131
+ // Set up relationship graph
132
+ if (relationshipGraph instanceof LayerRelationshipGraph) {
133
+ this._relationshipGraph = relationshipGraph;
134
+ } else if (relationshipProfile) {
135
+ this._relationshipGraph = new LayerRelationshipGraph({ profile: relationshipProfile });
136
+ }
137
+
121
138
  this._initialized = this._bridges.size > 0;
122
139
  if (debug) {
123
- console.log(`MultiCanvasBridge: ${this._bridges.size}/${entries.length} layers initialized (${this._backendType})`);
140
+ const graphInfo = this._relationshipGraph
141
+ ? ` [graph: ${this._relationshipGraph.activeProfile || 'custom'}]`
142
+ : ' [legacy mode]';
143
+ console.log(`MultiCanvasBridge: ${this._bridges.size}/${entries.length} layers initialized (${this._backendType})${graphInfo}`);
124
144
  }
125
145
  }
126
146
 
@@ -157,6 +177,55 @@ export class MultiCanvasBridge {
157
177
  return this._bridges.get(layerName);
158
178
  }
159
179
 
180
+ // ========================================================================
181
+ // Layer Relationship Graph
182
+ // ========================================================================
183
+
184
+ /**
185
+ * Get the active relationship graph. Creates one with 'holographic' profile
186
+ * if none exists.
187
+ * @returns {LayerRelationshipGraph}
188
+ */
189
+ get relationshipGraph() {
190
+ if (!this._relationshipGraph) {
191
+ this._relationshipGraph = new LayerRelationshipGraph({ profile: 'holographic' });
192
+ }
193
+ return this._relationshipGraph;
194
+ }
195
+
196
+ /**
197
+ * Set or replace the relationship graph.
198
+ * @param {LayerRelationshipGraph} graph
199
+ */
200
+ set relationshipGraph(graph) {
201
+ this._relationshipGraph = graph;
202
+ }
203
+
204
+ /**
205
+ * Load a named relationship profile.
206
+ * @param {string} profileName - holographic, symmetry, chord, storm, legacy
207
+ */
208
+ loadRelationshipProfile(profileName) {
209
+ this.relationshipGraph.loadProfile(profileName);
210
+ }
211
+
212
+ /**
213
+ * Set the keystone (driver) layer.
214
+ * @param {string} layerName
215
+ */
216
+ setKeystone(layerName) {
217
+ this.relationshipGraph.setKeystone(layerName);
218
+ }
219
+
220
+ /**
221
+ * Set the relationship for a dependent layer.
222
+ * @param {string} layerName
223
+ * @param {string|Function|Object} relationship - Preset name, function, or { preset, config }
224
+ */
225
+ setLayerRelationship(layerName, relationship) {
226
+ this.relationshipGraph.setRelationship(layerName, relationship);
227
+ }
228
+
160
229
  // ========================================================================
161
230
  // Shader Compilation
162
231
  // ========================================================================
@@ -204,6 +273,7 @@ export class MultiCanvasBridge {
204
273
 
205
274
  /**
206
275
  * Set uniforms shared across all layers (e.g. time, resolution, geometry).
276
+ * When a relationship graph is active, these are treated as keystone parameters.
207
277
  *
208
278
  * @param {object} uniforms
209
279
  */
@@ -212,7 +282,17 @@ export class MultiCanvasBridge {
212
282
  }
213
283
 
214
284
  /**
215
- * Set per-layer uniform overrides (e.g. layerOpacity, densityMult).
285
+ * Alias for setSharedUniforms when using relationship graph mode.
286
+ * Makes intent clearer — these are the keystone's parameters.
287
+ *
288
+ * @param {object} uniforms - Keystone parameters to derive other layers from
289
+ */
290
+ setKeystoneUniforms(uniforms) {
291
+ this._sharedUniforms = uniforms;
292
+ }
293
+
294
+ /**
295
+ * Set per-layer uniform overrides. Applied after relationship resolution.
216
296
  *
217
297
  * @param {string} layerName
218
298
  * @param {object} uniforms
@@ -223,7 +303,8 @@ export class MultiCanvasBridge {
223
303
  }
224
304
 
225
305
  /**
226
- * Update the layer configuration.
306
+ * Update the legacy layer configuration.
307
+ * @deprecated Use setLayerRelationship() instead.
227
308
  *
228
309
  * @param {string} layerName
229
310
  * @param {object} config - Partial config update
@@ -236,15 +317,38 @@ export class MultiCanvasBridge {
236
317
  /**
237
318
  * Build the merged uniform set for a specific layer.
238
319
  *
239
- * Priority: shared < layer config < layer overrides
320
+ * When a relationship graph is active:
321
+ * 1. Shared uniforms are treated as keystone parameters
322
+ * 2. The graph resolves derived parameters for the layer
323
+ * 3. Per-layer overrides are applied on top
324
+ *
325
+ * Legacy fallback (no graph):
326
+ * Priority: shared < layer config < layer overrides
240
327
  *
241
328
  * @param {string} layerName
242
329
  * @returns {object}
243
330
  */
244
331
  _buildLayerUniforms(layerName) {
245
- const config = this._layerConfig.get(layerName) || {};
246
332
  const overrides = this._layerUniforms.get(layerName) || {};
247
333
 
334
+ if (this._relationshipGraph) {
335
+ // Relationship graph mode: resolve layer params from keystone
336
+ const resolved = this._relationshipGraph.resolve(
337
+ this._sharedUniforms,
338
+ layerName,
339
+ this._frameTime
340
+ );
341
+
342
+ // Map relationship output to shader uniforms
343
+ return {
344
+ ...resolved,
345
+ u_layerOpacity: resolved.layerOpacity || resolved.u_layerOpacity || 1.0,
346
+ ...overrides
347
+ };
348
+ }
349
+
350
+ // Legacy mode: static multipliers
351
+ const config = this._layerConfig.get(layerName) || {};
248
352
  return {
249
353
  ...this._sharedUniforms,
250
354
  u_layerScale: config.layerScale || 1.0,
@@ -260,15 +364,31 @@ export class MultiCanvasBridge {
260
364
  // ========================================================================
261
365
 
262
366
  /**
263
- * Render all layers in order using the named shader.
367
+ * Render all layers in order.
368
+ *
369
+ * When a relationship graph is active, each layer may use a different shader
370
+ * as assigned by graph.setLayerShader(). The shaderName parameter serves as
371
+ * the default for layers without an explicit shader assignment.
264
372
  *
265
- * @param {string} shaderName - Shader program to use
373
+ * @param {string} shaderName - Default shader program to use
266
374
  * @param {object} [options]
267
375
  * @param {number[]} [options.clearColor] - RGBA clear color
376
+ * @param {number} [options.time] - Frame time for relationship resolution
268
377
  */
269
378
  renderAll(shaderName, options = {}) {
379
+ if (options.time !== undefined) {
380
+ this._frameTime = options.time;
381
+ } else {
382
+ this._frameTime += 16; // ~60fps fallback
383
+ }
384
+
270
385
  for (const layerName of this.layerNames) {
271
- this.renderLayer(layerName, shaderName, options);
386
+ // Per-layer shader from relationship graph, or default
387
+ const layerShader = (this._relationshipGraph
388
+ ? this._relationshipGraph.getLayerShader(layerName)
389
+ : null) || shaderName;
390
+
391
+ this.renderLayer(layerName, layerShader, options);
272
392
  }
273
393
  }
274
394
 
@@ -334,7 +454,10 @@ export class MultiCanvasBridge {
334
454
  this._sharedUniforms = {};
335
455
  this._initialized = false;
336
456
  this._backendType = null;
457
+ this._relationshipGraph = null;
458
+ this._frameTime = 0;
337
459
  }
338
460
  }
339
461
 
462
+ export { DEFAULT_LAYER_CONFIG, LAYER_ORDER };
340
463
  export default MultiCanvasBridge;
@@ -119,6 +119,31 @@ export {
119
119
  MultiCanvasBridge
120
120
  } from './MultiCanvasBridge.js';
121
121
 
122
+ // Layer relationship graph (keystone-driven inter-layer parameter system)
123
+ export {
124
+ LayerRelationshipGraph,
125
+ LAYER_ORDER,
126
+ PROFILES,
127
+ PRESET_REGISTRY,
128
+ echo,
129
+ mirror,
130
+ complement,
131
+ harmonic,
132
+ reactive,
133
+ chase
134
+ } from './LayerRelationshipGraph.js';
135
+
136
+ // Layer preset manager (save/load/tune relationship presets)
137
+ export {
138
+ LayerPresetManager
139
+ } from './LayerPresetManager.js';
140
+
141
+ // Layer reactivity bridge (audio/tilt/input → relationship modulation)
142
+ export {
143
+ LayerReactivityBridge,
144
+ MODULATION_PROFILES
145
+ } from './LayerReactivityBridge.js';
146
+
122
147
  /**
123
148
  * Create a complete rendering context
124
149
  * @param {HTMLCanvasElement} canvas
@@ -129,8 +154,7 @@ export function createRenderContext(canvas, options = {}) {
129
154
  if (options.backend === 'webgpu') {
130
155
  return null;
131
156
  }
132
- const { createWebGLBackend } = require('./backends/WebGLBackend.js');
133
- const backend = createWebGLBackend(canvas, options);
157
+ const backend = _createWebGLBackend(canvas, options);
134
158
 
135
159
  if (!backend) {
136
160
  return null;
@@ -365,3 +389,4 @@ import { RenderState } from './RenderState.js';
365
389
  import { ShaderProgram, ShaderLib } from './ShaderProgram.js';
366
390
  import { UnifiedRenderBridge } from './UnifiedRenderBridge.js';
367
391
  import { createWebGPUBackend } from './backends/WebGPUBackend.js';
392
+ import { createWebGLBackend as _createWebGLBackend } from './backends/WebGLBackend.js';
@@ -60,10 +60,10 @@ export function createSceneContext(options = {}) {
60
60
  poolInitialSize = 100
61
61
  } = options;
62
62
 
63
- const scene = new (require('./Scene4D.js').Scene4D)(sceneName);
64
- const resources = new (require('./ResourceManager.js').ResourceManager)();
65
- const disposal = new (require('./Disposable.js').DisposalManager)();
66
- const poolManager = new (require('./MemoryPool.js').PoolManager)();
63
+ const scene = new Scene4D(sceneName);
64
+ const resources = new ResourceManager();
65
+ const disposal = new DisposalManager();
66
+ const poolManager = new PoolManager();
67
67
 
68
68
  resources.memoryLimit = memoryLimit;
69
69
 
@@ -151,8 +151,8 @@ export class ParallelTestFramework {
151
151
  // Create system instance based on type
152
152
  switch (testSpec.system) {
153
153
  case 'faceted':
154
- const { VIB34DIntegratedEngine } = await import('../core/Engine.js');
155
- testSystem = new VIB34DIntegratedEngine();
154
+ const { VIB3Engine } = await import('../core/VIB3Engine.js');
155
+ testSystem = new VIB3Engine();
156
156
  break;
157
157
  case 'quantum':
158
158
  const { QuantumEngine } = await import('../quantum/QuantumEngine.js');
@@ -749,6 +749,23 @@ export class GalleryUI extends EventEmitter {
749
749
  this.render();
750
750
  }
751
751
 
752
+ /**
753
+ * Handle search input
754
+ */
755
+ _onSearch(event) {
756
+ this.searchQuery = event.target.value;
757
+ this._applyFilters();
758
+ this.render();
759
+ }
760
+
761
+ /**
762
+ * Handle page change
763
+ */
764
+ _onPageChange(page) {
765
+ this.currentPage = page;
766
+ this.render();
767
+ }
768
+
752
769
  /**
753
770
  * Handle variation hover
754
771
  */
@@ -185,14 +185,14 @@ export class ViewerPortal extends EventEmitter {
185
185
 
186
186
  captureFrame(format = 'png', quality = 0.92) {
187
187
  if (!this.canvas) return null;
188
- return this.canvas.toDataURL(\`image/\${format}\`, quality);
188
+ return this.canvas.toDataURL(`image/${format}`, quality);
189
189
  }
190
190
 
191
191
  downloadFrame(filename = 'vib3-capture', format = 'png') {
192
192
  const dataUrl = this.captureFrame(format);
193
193
  if (!dataUrl) return;
194
194
  const link = document.createElement('a');
195
- link.download = \`\${filename}.\${format}\`;
195
+ link.download = `${filename}.${format}`;
196
196
  link.href = dataUrl;
197
197
  link.click();
198
198
  }
@@ -5,14 +5,20 @@
5
5
  * Barrel re-export for all typed modules.
6
6
  *
7
7
  * Typed modules:
8
- * - core/VIB3Engine (engine, systems, parameters, state)
9
- * - core/ErrorReporter (opt-in error capture)
10
- * - reactivity (ReactivityManager, ReactivityConfig, all input types)
11
- * - reactivity/SpatialInputSystem (universal spatial input)
8
+ * - core (VIB3Engine, CanvasManager, ParameterManager, ParameterMapper, VitalitySystem, RendererContracts, UnifiedResourceManager)
9
+ * - math (constants, projections, rotations, Vec4)
10
+ * - geometry (GeometryLibrary, generators, BufferBuilder)
11
+ * - systems (QuantumEngine, FacetedSystem, RealHolographicSystem)
12
+ * - scene (ObjectPool, TypedArrayPool, Vec4Pool, PoolManager)
13
+ * - viewer (ViewerPortal, ViewerInputHandler, GalleryUI, CardBending, AudioReactivity, TradingCardExporter)
14
+ * - variations (VariationManager)
15
+ * - reactivity (ReactivityManager, ReactivityConfig, SpatialInputSystem)
12
16
  * - render (WebGL/WebGPU backends, ShaderProgram, RenderState, CommandBuffer)
13
- * - creative (ColorPresets, TransitionAnimator, PostProcessing, Timeline)
17
+ * - creative (ColorPresets, TransitionAnimator, PostProcessing, Timeline, AestheticMapper, ChoreographyPlayer)
14
18
  * - integrations (React, Vue, Svelte, Figma, Three.js, TouchDesigner, OBS)
15
19
  * - advanced (WebXR, WebGPU Compute, MIDI, AI Presets, OffscreenWorker)
20
+ * - export (ExportManager, ShaderExporter, VIB3PackageExporter, TradingCardGenerator)
21
+ * - agent (MCPServer, AgentCLI, TelemetryService)
16
22
  */
17
23
 
18
24
  // Core engine
@@ -99,6 +105,37 @@ export {
99
105
  Shader4DOptions
100
106
  } from './render/index';
101
107
 
108
+ // Layer relationship system
109
+ export {
110
+ LayerRelationshipGraph,
111
+ RelationshipFn,
112
+ RelationshipPreset,
113
+ RelationshipConfig,
114
+ LayerRelationshipProfile,
115
+ LayerRelationshipExport,
116
+ LAYER_ORDER as RENDER_LAYER_ORDER,
117
+ PRESET_REGISTRY,
118
+ PROFILES
119
+ } from './render/LayerRelationshipGraph';
120
+
121
+ // Layer preset manager
122
+ export {
123
+ LayerPresetManager,
124
+ LayerPreset,
125
+ PresetMetadata,
126
+ PresetLibrary,
127
+ PresetManagerOptions
128
+ } from './render/LayerPresetManager';
129
+
130
+ // Layer reactivity bridge
131
+ export {
132
+ LayerReactivityBridge,
133
+ ModulationMapping,
134
+ InputState as LayerInputState,
135
+ ReactivityBridgeConfig,
136
+ MODULATION_PROFILES
137
+ } from './render/LayerReactivityBridge';
138
+
102
139
  // Creative tooling
103
140
  export {
104
141
  ColorPresetsSystem,
@@ -183,3 +220,165 @@ export {
183
220
  WorkerSwitchMessage,
184
221
  WorkerResizeMessage
185
222
  } from './advanced/index';
223
+
224
+ // Export system
225
+ export {
226
+ ExportManager,
227
+ ShaderExporter,
228
+ VIB3PackageExporter,
229
+ TradingCardGenerator,
230
+ TradingCardManager,
231
+ CardGeneratorBase,
232
+ FacetedCardGenerator,
233
+ QuantumCardGenerator,
234
+ HolographicCardGenerator,
235
+ TradingCardSystemFaceted,
236
+ TradingCardSystemHolographic,
237
+ TradingCardSystemQuantum,
238
+ VIB3_PACKAGE_VERSION,
239
+ exportSVG,
240
+ downloadSVG,
241
+ exportCSS,
242
+ downloadCSS,
243
+ toStyleObject,
244
+ exportLottie,
245
+ downloadLottie,
246
+ createVIB3Package
247
+ } from './export/index';
248
+
249
+ // Core - expanded types (CanvasManager, Parameters, RendererContracts, etc.)
250
+ export {
251
+ CanvasManager,
252
+ CanvasLayer,
253
+ ParameterManager,
254
+ ParameterDef,
255
+ VIB3Parameters,
256
+ ParameterConfiguration,
257
+ ParameterMapper,
258
+ MappableSystem,
259
+ VitalitySystem,
260
+ RendererContract,
261
+ RendererContractAdapter,
262
+ ResourceManagerContract,
263
+ FrameState,
264
+ UnifiedResourceManager
265
+ } from './core/index';
266
+
267
+ // Math - constants, projections, rotations, Vec4
268
+ export {
269
+ PI, TAU, HALF_PI, QUARTER_PI,
270
+ DEG_TO_RAD, RAD_TO_DEG,
271
+ EPSILON,
272
+ PHI, PHI_INV,
273
+ PLANE_NAMES as ROTATION_PLANE_NAMES,
274
+ encodeGeometry,
275
+ decodeGeometry,
276
+ toRadians,
277
+ toDegrees,
278
+ clamp,
279
+ lerp,
280
+ smoothstep,
281
+ smootherstep,
282
+ perspectiveProject4D,
283
+ stereographicProject4D,
284
+ ProjectionResult,
285
+ createRotationMatrix4D,
286
+ identityMatrix4x4,
287
+ multiplyMatrix4x4,
288
+ transposeMatrix4x4,
289
+ applyMatrix4x4,
290
+ vectorLength4D,
291
+ normalizeVector4D,
292
+ normalizeRotationAngles,
293
+ composeRotationMatrixFromAngles,
294
+ RotationPlane,
295
+ Matrix4x4,
296
+ Vector4D,
297
+ Vec4
298
+ } from './math/index';
299
+
300
+ // Geometry - library, generators, buffers
301
+ export {
302
+ GeometryLibrary,
303
+ Geometry4D,
304
+ VariationParameters,
305
+ GeometryBuffers,
306
+ buildVertexBuffer,
307
+ buildEdgeIndexBuffer,
308
+ buildFaceIndexBuffer,
309
+ buildGeometryBuffers,
310
+ generateTesseract,
311
+ generateSphere,
312
+ generateTorus
313
+ } from './geometry/index';
314
+
315
+ // Visualization systems
316
+ export {
317
+ QuantumEngine,
318
+ QuantumEngineOptions,
319
+ FacetedSystem,
320
+ FacetedSystemOptions,
321
+ RealHolographicSystem,
322
+ HolographicSystemOptions,
323
+ CanvasSet,
324
+ AudioData,
325
+ RenderMode
326
+ } from './systems/index';
327
+
328
+ // Scene - memory pools
329
+ export {
330
+ ObjectPool,
331
+ TypedArrayPool,
332
+ Vec4Pool,
333
+ Mat4x4Pool,
334
+ PoolManager,
335
+ pools,
336
+ PoolStats,
337
+ ObjectPoolOptions
338
+ } from './scene/index';
339
+
340
+ // Viewer - portal, input, gallery, cards
341
+ export {
342
+ ViewerPortal,
343
+ ViewerInputHandler,
344
+ GalleryUI,
345
+ CardBending,
346
+ AudioReactivity as ViewerAudioReactivity,
347
+ TradingCardExporter,
348
+ PortalMode,
349
+ RotationState,
350
+ InputSource,
351
+ InputPreset,
352
+ GalleryViewMode,
353
+ BendPreset,
354
+ FrameStyle,
355
+ RarityLevel
356
+ } from './viewer/index';
357
+
358
+ // Variations
359
+ export {
360
+ VariationManager,
361
+ VariationSlot,
362
+ VariationOptions
363
+ } from './variations/index';
364
+
365
+ // Agent system
366
+ export {
367
+ MCPServer,
368
+ mcpServer,
369
+ toolDefinitions,
370
+ AgentCLI,
371
+ BatchExecutor,
372
+ CommandType,
373
+ ResponseStatus,
374
+ TelemetryService,
375
+ TelemetrySpan,
376
+ EventType,
377
+ telemetry,
378
+ EventStreamServer,
379
+ EventStreamClient,
380
+ PrometheusExporter,
381
+ JSONExporter,
382
+ NDJSONExporter,
383
+ ConsoleExporter
384
+ } from './agent/index';