@vib3code/sdk 2.0.1

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 (258) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/DOCS/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +34 -0
  3. package/DOCS/CI_TESTING.md +38 -0
  4. package/DOCS/CLI_ONBOARDING.md +75 -0
  5. package/DOCS/CONTROL_REFERENCE.md +64 -0
  6. package/DOCS/DEV_TRACK_ANALYSIS.md +77 -0
  7. package/DOCS/DEV_TRACK_PLAN_2026-01-07.md +42 -0
  8. package/DOCS/DEV_TRACK_SESSION_2026-01-31.md +220 -0
  9. package/DOCS/ENV_SETUP.md +189 -0
  10. package/DOCS/EXPORT_FORMATS.md +417 -0
  11. package/DOCS/GPU_DISPOSAL_GUIDE.md +21 -0
  12. package/DOCS/LICENSING_TIERS.md +275 -0
  13. package/DOCS/MASTER_PLAN_2026-01-31.md +570 -0
  14. package/DOCS/OBS_SETUP_GUIDE.md +98 -0
  15. package/DOCS/PROJECT_SETUP.md +66 -0
  16. package/DOCS/RENDERER_LIFECYCLE.md +40 -0
  17. package/DOCS/REPO_MANIFEST.md +121 -0
  18. package/DOCS/SESSION_014_PLAN.md +195 -0
  19. package/DOCS/SESSION_LOG_2026-01-07.md +56 -0
  20. package/DOCS/STRATEGIC_BLUEPRINT_2026-01-07.md +72 -0
  21. package/DOCS/SYSTEM_AUDIT_2026-01-30.md +738 -0
  22. package/DOCS/SYSTEM_INVENTORY.md +520 -0
  23. package/DOCS/TELEMETRY_EXPORTS.md +34 -0
  24. package/DOCS/WEBGPU_STATUS.md +38 -0
  25. package/DOCS/XR_BENCHMARKS.md +608 -0
  26. package/LICENSE +21 -0
  27. package/README.md +426 -0
  28. package/docs/.nojekyll +0 -0
  29. package/docs/01-dissolution_of_euclidean_hegemony.html +346 -0
  30. package/docs/02-hyperspatial_ego_death.html +346 -0
  31. package/docs/03-post_cartesian_sublime.html +346 -0
  32. package/docs/04-crystalline_void_meditation.html +346 -0
  33. package/docs/05-quantum_decoherence_ballet.html +346 -0
  34. package/docs/06-dissolution_of_euclidean_hegemony.html +346 -0
  35. package/docs/07-hyperspatial_ego_death.html +346 -0
  36. package/docs/08-post_cartesian_sublime.html +346 -0
  37. package/docs/09-crystalline_void_meditation.html +346 -0
  38. package/docs/10-quantum_decoherence_ballet.html +346 -0
  39. package/docs/11-dissolution_of_euclidean_hegemony.html +346 -0
  40. package/docs/12-hyperspatial_ego_death.html +346 -0
  41. package/docs/13-post_cartesian_sublime.html +346 -0
  42. package/docs/index.html +794 -0
  43. package/docs/test-hub.html +441 -0
  44. package/docs/url-state.js +102 -0
  45. package/docs/vib3-exports/01-quantum-quantum-tetrahedron-lattice.html +489 -0
  46. package/docs/vib3-exports/02-quantum-quantum-hypersphere-matrix.html +489 -0
  47. package/docs/vib3-exports/03-quantum-quantum-hypertetra-fractal.html +489 -0
  48. package/docs/vib3-exports/04-faceted-faceted-crystal-structure.html +407 -0
  49. package/docs/vib3-exports/05-faceted-faceted-klein-bottle.html +407 -0
  50. package/docs/vib3-exports/06-faceted-faceted-hypertetra-torus.html +407 -0
  51. package/docs/vib3-exports/07-holographic-holographic-wave-field.html +457 -0
  52. package/docs/vib3-exports/08-holographic-holographic-hypersphere-sphere.html +457 -0
  53. package/docs/vib3-exports/09-holographic-holographic-hypertetra-crystal.html +457 -0
  54. package/docs/vib3-exports/index.html +238 -0
  55. package/docs/webgpu-live.html +702 -0
  56. package/package.json +367 -0
  57. package/src/advanced/AIPresetGenerator.js +777 -0
  58. package/src/advanced/MIDIController.js +703 -0
  59. package/src/advanced/OffscreenWorker.js +1051 -0
  60. package/src/advanced/WebGPUCompute.js +1051 -0
  61. package/src/advanced/WebXRRenderer.js +680 -0
  62. package/src/agent/cli/AgentCLI.js +615 -0
  63. package/src/agent/cli/index.js +14 -0
  64. package/src/agent/index.js +73 -0
  65. package/src/agent/mcp/MCPServer.js +950 -0
  66. package/src/agent/mcp/index.js +9 -0
  67. package/src/agent/mcp/tools.js +548 -0
  68. package/src/agent/telemetry/EventStream.js +669 -0
  69. package/src/agent/telemetry/Instrumentation.js +618 -0
  70. package/src/agent/telemetry/TelemetryExporters.js +427 -0
  71. package/src/agent/telemetry/TelemetryService.js +464 -0
  72. package/src/agent/telemetry/index.js +52 -0
  73. package/src/benchmarks/BenchmarkRunner.js +381 -0
  74. package/src/benchmarks/MetricsCollector.js +299 -0
  75. package/src/benchmarks/index.js +9 -0
  76. package/src/benchmarks/scenes.js +259 -0
  77. package/src/cli/index.js +675 -0
  78. package/src/config/ApiConfig.js +88 -0
  79. package/src/core/CanvasManager.js +217 -0
  80. package/src/core/ErrorReporter.js +117 -0
  81. package/src/core/ParameterMapper.js +333 -0
  82. package/src/core/Parameters.js +396 -0
  83. package/src/core/RendererContracts.js +200 -0
  84. package/src/core/UnifiedResourceManager.js +370 -0
  85. package/src/core/VIB3Engine.js +636 -0
  86. package/src/core/renderers/FacetedRendererAdapter.js +32 -0
  87. package/src/core/renderers/HolographicRendererAdapter.js +29 -0
  88. package/src/core/renderers/QuantumRendererAdapter.js +29 -0
  89. package/src/core/renderers/RendererLifecycleManager.js +63 -0
  90. package/src/creative/ColorPresetsSystem.js +980 -0
  91. package/src/creative/ParameterTimeline.js +1061 -0
  92. package/src/creative/PostProcessingPipeline.js +1113 -0
  93. package/src/creative/TransitionAnimator.js +683 -0
  94. package/src/export/CSSExporter.js +226 -0
  95. package/src/export/CardGeneratorBase.js +279 -0
  96. package/src/export/ExportManager.js +580 -0
  97. package/src/export/FacetedCardGenerator.js +279 -0
  98. package/src/export/HolographicCardGenerator.js +543 -0
  99. package/src/export/LottieExporter.js +552 -0
  100. package/src/export/QuantumCardGenerator.js +315 -0
  101. package/src/export/SVGExporter.js +519 -0
  102. package/src/export/ShaderExporter.js +903 -0
  103. package/src/export/TradingCardGenerator.js +3055 -0
  104. package/src/export/TradingCardManager.js +181 -0
  105. package/src/export/VIB3PackageExporter.js +559 -0
  106. package/src/export/index.js +14 -0
  107. package/src/export/systems/TradingCardSystemFaceted.js +494 -0
  108. package/src/export/systems/TradingCardSystemHolographic.js +452 -0
  109. package/src/export/systems/TradingCardSystemQuantum.js +411 -0
  110. package/src/faceted/FacetedSystem.js +963 -0
  111. package/src/features/CollectionManager.js +433 -0
  112. package/src/gallery/CollectionManager.js +240 -0
  113. package/src/gallery/GallerySystem.js +485 -0
  114. package/src/geometry/GeometryFactory.js +314 -0
  115. package/src/geometry/GeometryLibrary.js +72 -0
  116. package/src/geometry/buffers/BufferBuilder.js +338 -0
  117. package/src/geometry/buffers/index.js +18 -0
  118. package/src/geometry/generators/Crystal.js +420 -0
  119. package/src/geometry/generators/Fractal.js +298 -0
  120. package/src/geometry/generators/KleinBottle.js +197 -0
  121. package/src/geometry/generators/Sphere.js +192 -0
  122. package/src/geometry/generators/Tesseract.js +160 -0
  123. package/src/geometry/generators/Tetrahedron.js +225 -0
  124. package/src/geometry/generators/Torus.js +304 -0
  125. package/src/geometry/generators/Wave.js +341 -0
  126. package/src/geometry/index.js +142 -0
  127. package/src/geometry/warp/HypersphereCore.js +211 -0
  128. package/src/geometry/warp/HypertetraCore.js +386 -0
  129. package/src/geometry/warp/index.js +57 -0
  130. package/src/holograms/HolographicVisualizer.js +1073 -0
  131. package/src/holograms/RealHolographicSystem.js +966 -0
  132. package/src/holograms/variantRegistry.js +69 -0
  133. package/src/integrations/FigmaPlugin.js +854 -0
  134. package/src/integrations/OBSMode.js +754 -0
  135. package/src/integrations/ThreeJsPackage.js +660 -0
  136. package/src/integrations/TouchDesignerExport.js +552 -0
  137. package/src/integrations/frameworks/Vib3React.js +591 -0
  138. package/src/integrations/frameworks/Vib3Svelte.js +654 -0
  139. package/src/integrations/frameworks/Vib3Vue.js +628 -0
  140. package/src/llm/LLMParameterInterface.js +240 -0
  141. package/src/llm/LLMParameterUI.js +577 -0
  142. package/src/math/Mat4x4.js +708 -0
  143. package/src/math/Projection.js +341 -0
  144. package/src/math/Rotor4D.js +637 -0
  145. package/src/math/Vec4.js +476 -0
  146. package/src/math/constants.js +164 -0
  147. package/src/math/index.js +68 -0
  148. package/src/math/projections.js +54 -0
  149. package/src/math/rotations.js +196 -0
  150. package/src/quantum/QuantumEngine.js +906 -0
  151. package/src/quantum/QuantumVisualizer.js +1103 -0
  152. package/src/reactivity/ReactivityConfig.js +499 -0
  153. package/src/reactivity/ReactivityManager.js +586 -0
  154. package/src/reactivity/SpatialInputSystem.js +1783 -0
  155. package/src/reactivity/index.js +93 -0
  156. package/src/render/CommandBuffer.js +465 -0
  157. package/src/render/MultiCanvasBridge.js +340 -0
  158. package/src/render/RenderCommand.js +514 -0
  159. package/src/render/RenderResourceRegistry.js +523 -0
  160. package/src/render/RenderState.js +552 -0
  161. package/src/render/RenderTarget.js +512 -0
  162. package/src/render/ShaderLoader.js +253 -0
  163. package/src/render/ShaderProgram.js +599 -0
  164. package/src/render/UnifiedRenderBridge.js +496 -0
  165. package/src/render/backends/WebGLBackend.js +1108 -0
  166. package/src/render/backends/WebGPUBackend.js +1409 -0
  167. package/src/render/commands/CommandBufferExecutor.js +607 -0
  168. package/src/render/commands/RenderCommandBuffer.js +661 -0
  169. package/src/render/commands/index.js +17 -0
  170. package/src/render/index.js +367 -0
  171. package/src/scene/Disposable.js +498 -0
  172. package/src/scene/MemoryPool.js +618 -0
  173. package/src/scene/Node4D.js +697 -0
  174. package/src/scene/ResourceManager.js +599 -0
  175. package/src/scene/Scene4D.js +540 -0
  176. package/src/scene/index.js +98 -0
  177. package/src/schemas/error.schema.json +84 -0
  178. package/src/schemas/extension.schema.json +88 -0
  179. package/src/schemas/index.js +214 -0
  180. package/src/schemas/parameters.schema.json +142 -0
  181. package/src/schemas/tool-pack.schema.json +44 -0
  182. package/src/schemas/tool-response.schema.json +127 -0
  183. package/src/shaders/common/fullscreen.vert.glsl +5 -0
  184. package/src/shaders/common/fullscreen.vert.wgsl +17 -0
  185. package/src/shaders/common/geometry24.glsl +65 -0
  186. package/src/shaders/common/geometry24.wgsl +54 -0
  187. package/src/shaders/common/rotation4d.glsl +85 -0
  188. package/src/shaders/common/rotation4d.wgsl +86 -0
  189. package/src/shaders/common/uniforms.glsl +44 -0
  190. package/src/shaders/common/uniforms.wgsl +48 -0
  191. package/src/shaders/faceted/faceted.frag.glsl +129 -0
  192. package/src/shaders/faceted/faceted.frag.wgsl +164 -0
  193. package/src/shaders/holographic/holographic.frag.glsl +406 -0
  194. package/src/shaders/holographic/holographic.frag.wgsl +185 -0
  195. package/src/shaders/quantum/quantum.frag.glsl +513 -0
  196. package/src/shaders/quantum/quantum.frag.wgsl +361 -0
  197. package/src/testing/ParallelTestFramework.js +519 -0
  198. package/src/testing/__snapshots__/exportFormats.test.js.snap +24 -0
  199. package/src/testing/exportFormats.test.js +8 -0
  200. package/src/testing/projections.test.js +14 -0
  201. package/src/testing/rotations.test.js +37 -0
  202. package/src/ui/InteractivityMenu.js +516 -0
  203. package/src/ui/StatusManager.js +96 -0
  204. package/src/ui/adaptive/renderers/webgpu/BufferLayout.ts +252 -0
  205. package/src/ui/adaptive/renderers/webgpu/PolytopeInstanceBuffer.ts +144 -0
  206. package/src/ui/adaptive/renderers/webgpu/TripleBufferedUniform.ts +170 -0
  207. package/src/ui/adaptive/renderers/webgpu/WebGPURenderer.ts +735 -0
  208. package/src/ui/adaptive/renderers/webgpu/index.ts +112 -0
  209. package/src/variations/VariationManager.js +431 -0
  210. package/src/viewer/AudioReactivity.js +505 -0
  211. package/src/viewer/CardBending.js +481 -0
  212. package/src/viewer/GalleryUI.js +832 -0
  213. package/src/viewer/ReactivityManager.js +590 -0
  214. package/src/viewer/TradingCardExporter.js +600 -0
  215. package/src/viewer/ViewerPortal.js +374 -0
  216. package/src/viewer/index.js +12 -0
  217. package/src/wasm/WasmLoader.js +296 -0
  218. package/src/wasm/index.js +132 -0
  219. package/tools/agentic/mcpTools.js +88 -0
  220. package/tools/cli/agent-cli.js +92 -0
  221. package/tools/export/formats.js +24 -0
  222. package/tools/math/rotation-baseline.mjs +64 -0
  223. package/tools/shader-sync-verify.js +937 -0
  224. package/tools/telemetry/manifestPipeline.js +141 -0
  225. package/tools/telemetry/telemetryEvents.js +35 -0
  226. package/types/adaptive-sdk.d.ts +185 -0
  227. package/types/advanced/AIPresetGenerator.d.ts +81 -0
  228. package/types/advanced/MIDIController.d.ts +100 -0
  229. package/types/advanced/OffscreenWorker.d.ts +82 -0
  230. package/types/advanced/WebGPUCompute.d.ts +52 -0
  231. package/types/advanced/WebXRRenderer.d.ts +77 -0
  232. package/types/advanced/index.d.ts +46 -0
  233. package/types/core/ErrorReporter.d.ts +50 -0
  234. package/types/core/VIB3Engine.d.ts +204 -0
  235. package/types/creative/ColorPresetsSystem.d.ts +91 -0
  236. package/types/creative/ParameterTimeline.d.ts +74 -0
  237. package/types/creative/PostProcessingPipeline.d.ts +109 -0
  238. package/types/creative/TransitionAnimator.d.ts +71 -0
  239. package/types/creative/index.d.ts +35 -0
  240. package/types/integrations/FigmaPlugin.d.ts +46 -0
  241. package/types/integrations/OBSMode.d.ts +74 -0
  242. package/types/integrations/ThreeJsPackage.d.ts +62 -0
  243. package/types/integrations/TouchDesignerExport.d.ts +36 -0
  244. package/types/integrations/Vib3React.d.ts +74 -0
  245. package/types/integrations/Vib3Svelte.d.ts +63 -0
  246. package/types/integrations/Vib3Vue.d.ts +55 -0
  247. package/types/integrations/index.d.ts +52 -0
  248. package/types/reactivity/SpatialInputSystem.d.ts +173 -0
  249. package/types/reactivity/index.d.ts +394 -0
  250. package/types/render/CommandBuffer.d.ts +169 -0
  251. package/types/render/RenderCommand.d.ts +312 -0
  252. package/types/render/RenderState.d.ts +279 -0
  253. package/types/render/RenderTarget.d.ts +254 -0
  254. package/types/render/ShaderProgram.d.ts +277 -0
  255. package/types/render/UnifiedRenderBridge.d.ts +143 -0
  256. package/types/render/WebGLBackend.d.ts +168 -0
  257. package/types/render/WebGPUBackend.d.ts +186 -0
  258. package/types/render/index.d.ts +141 -0
@@ -0,0 +1,77 @@
1
+ /**
2
+ * WebXRRenderer TypeScript Definitions
3
+ * VIB3+ SDK - WebXR VR/AR Renderer with 6DOF
4
+ */
5
+
6
+ /** XR session mode */
7
+ export type XRMode = 'immersive-vr' | 'immersive-ar' | 'inline';
8
+
9
+ /** XR support check result */
10
+ export interface XRSupportResult {
11
+ available: boolean;
12
+ vr: boolean;
13
+ ar: boolean;
14
+ inline: boolean;
15
+ }
16
+
17
+ /** 6DOF pose data extracted from XR frame */
18
+ export interface SixDOFPose {
19
+ position: { x: number; y: number; z: number };
20
+ orientation: { x: number; y: number; z: number; w: number };
21
+ linearVelocity?: { x: number; y: number; z: number };
22
+ angularVelocity?: { x: number; y: number; z: number };
23
+ }
24
+
25
+ /** Tracking-to-parameter mapping */
26
+ export interface TrackingMapping {
27
+ [trackingAxis: string]: {
28
+ param: string;
29
+ scale?: number;
30
+ offset?: number;
31
+ };
32
+ }
33
+
34
+ /** WebXR frame callback */
35
+ export type XRFrameCallback = (frame: any, pose: SixDOFPose | null) => void;
36
+
37
+ /** WebXRRenderer event names */
38
+ export type WebXREvent = 'sessionStart' | 'sessionEnd' | 'frameUpdate' | 'inputSourcesChange';
39
+
40
+ /**
41
+ * WebXR VR/AR renderer with 6DOF spatial extraction.
42
+ * Maps head pose to VIB3+ visualization parameters.
43
+ */
44
+ export declare class WebXRRenderer {
45
+ readonly isImmersive: boolean;
46
+ readonly mode: XRMode;
47
+ xrSession: any | null;
48
+
49
+ constructor(engine: any);
50
+
51
+ /** Check WebXR API support */
52
+ checkSupport(): Promise<XRSupportResult>;
53
+
54
+ /** Start an XR session */
55
+ startSession(mode?: XRMode): Promise<any>;
56
+
57
+ /** End the current XR session */
58
+ endSession(): Promise<void>;
59
+
60
+ /** Check if a session is active */
61
+ isSessionActive(): boolean;
62
+
63
+ /** Extract head pose from an XR frame */
64
+ extractHeadPose(frame: any): SixDOFPose | null;
65
+
66
+ /** Set how XR tracking maps to visualization parameters */
67
+ setTrackingToParameterMapping(mapping?: TrackingMapping): void;
68
+
69
+ /** XR frame callback (called internally each frame) */
70
+ onXRFrame(time: number, frame: any): void;
71
+
72
+ /** Set a custom frame callback */
73
+ setFrameCallback(fn: XRFrameCallback): void;
74
+
75
+ /** Dispose and end session */
76
+ dispose(): void;
77
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Advanced Module TypeScript Definitions
3
+ * VIB3+ SDK - WebXR, WebGPU Compute, MIDI, AI Presets, Offscreen Worker
4
+ */
5
+
6
+ export {
7
+ WebXRRenderer,
8
+ XRMode,
9
+ XRSupportResult,
10
+ SixDOFPose,
11
+ TrackingMapping,
12
+ XRFrameCallback,
13
+ WebXREvent
14
+ } from './WebXRRenderer';
15
+
16
+ export {
17
+ WebGPUCompute,
18
+ ParticleParams
19
+ } from './WebGPUCompute';
20
+
21
+ export {
22
+ MIDIController,
23
+ CCMapping,
24
+ CCMappingOptions,
25
+ NoteMapping,
26
+ MIDIInputInfo,
27
+ MIDIMappingState,
28
+ LearnCallback
29
+ } from './MIDIController';
30
+
31
+ export {
32
+ AIPresetGenerator,
33
+ VIB3Preset,
34
+ ParamRange,
35
+ ThemeName
36
+ } from './AIPresetGenerator';
37
+
38
+ export {
39
+ OffscreenCanvasManager,
40
+ WorkerMessage,
41
+ WorkerMessageType,
42
+ WorkerInitMessage,
43
+ WorkerParamsMessage,
44
+ WorkerSwitchMessage,
45
+ WorkerResizeMessage
46
+ } from './OffscreenWorker';
@@ -0,0 +1,50 @@
1
+ /**
2
+ * ErrorReporter TypeScript Definitions
3
+ * VIB3+ SDK - Opt-in Error Reporting
4
+ */
5
+
6
+ /** Error report payload */
7
+ export interface ErrorReport {
8
+ type: 'error' | 'unhandledrejection';
9
+ message: string;
10
+ filename?: string;
11
+ lineno?: number;
12
+ colno?: number;
13
+ stack?: string;
14
+ timestamp: string;
15
+ url: string;
16
+ userAgent: string;
17
+ sdkVersion: string;
18
+ }
19
+
20
+ /** ErrorReporter constructor options */
21
+ export interface ErrorReporterOptions {
22
+ /** Endpoint URL for POST reports */
23
+ endpoint?: string;
24
+ /** Custom error handler callback */
25
+ onError?: (report: ErrorReport) => void;
26
+ /** Maximum reports to send per session (default: 50) */
27
+ maxReports?: number;
28
+ /** Include stack traces (default: true) */
29
+ includeStack?: boolean;
30
+ }
31
+
32
+ /**
33
+ * Opt-in error reporter that captures unhandled errors and promise rejections.
34
+ * Disabled by default — must call enable() to activate.
35
+ */
36
+ export declare class ErrorReporter {
37
+ /** Whether the reporter is currently active */
38
+ readonly isEnabled: boolean;
39
+
40
+ constructor(options?: ErrorReporterOptions);
41
+
42
+ /** Enable error capture */
43
+ enable(): void;
44
+
45
+ /** Disable error capture */
46
+ disable(): void;
47
+
48
+ /** Dispose and disable */
49
+ dispose(): void;
50
+ }
@@ -0,0 +1,204 @@
1
+ /**
2
+ * VIB3Engine TypeScript Definitions
3
+ * VIB3+ SDK - Unified Visualization Engine
4
+ */
5
+
6
+ import { ReactivityManager, ReactivityConfigData, ValidationResult } from '../reactivity';
7
+ import { ReactivityConfig } from '../reactivity';
8
+
9
+ /** Visualization system name */
10
+ export type SystemName = 'quantum' | 'faceted' | 'holographic';
11
+
12
+ /** Backend type for the active system */
13
+ export type BackendType = 'webgl' | 'webgpu' | 'direct-webgl' | null;
14
+
15
+ /** VIB3Engine constructor options */
16
+ export interface VIB3EngineOptions {
17
+ /** Prefer WebGPU with WebGL fallback (default: true) */
18
+ preferWebGPU?: boolean;
19
+ /** Enable debug logging (default: false) */
20
+ debug?: boolean;
21
+ /** Initial reactivity configuration */
22
+ reactivityConfig?: Partial<ReactivityConfigData> | ReactivityConfig;
23
+ }
24
+
25
+ /** Exported engine state */
26
+ export interface VIB3EngineState {
27
+ system: SystemName;
28
+ parameters: Record<string, number>;
29
+ reactivity: ReactivityConfigData;
30
+ reactivityActive: boolean;
31
+ backend: BackendType;
32
+ timestamp: string;
33
+ version: string;
34
+ }
35
+
36
+ /** Geometry names array (24 entries) */
37
+ export type GeometryNames = string[];
38
+
39
+ /**
40
+ * VIB3+ Engine - Unified Visualization System
41
+ *
42
+ * Coordinates Quantum, Faceted, and Holographic systems.
43
+ * Supports 24 geometries per system with full 6D rotation.
44
+ * Backend selection: Faceted supports WebGL/WebGPU via UnifiedRenderBridge.
45
+ * Quantum and Holographic use direct WebGL (5-layer canvas architecture).
46
+ */
47
+ export declare class VIB3Engine {
48
+ /** Whether to prefer WebGPU for systems that support it */
49
+ readonly preferWebGPU: boolean;
50
+
51
+ /** Debug mode */
52
+ readonly debug: boolean;
53
+
54
+ /** Whether the engine is initialized */
55
+ readonly initialized: boolean;
56
+
57
+ /** Current system name */
58
+ readonly currentSystemName: SystemName;
59
+
60
+ constructor(options?: VIB3EngineOptions);
61
+
62
+ // ========================================================================
63
+ // Initialization & System Management
64
+ // ========================================================================
65
+
66
+ /**
67
+ * Initialize the VIB3+ engine.
68
+ * @param containerId - DOM container element ID (default: 'vib3-container')
69
+ * @returns Whether initialization succeeded
70
+ */
71
+ initialize(containerId?: string): Promise<boolean>;
72
+
73
+ /**
74
+ * Switch between visualization systems.
75
+ * Destroys the old system and creates the new one (proper WebGL cleanup).
76
+ */
77
+ switchSystem(systemName: SystemName): Promise<boolean>;
78
+
79
+ /** Get the active backend type for the current system */
80
+ getActiveBackendType(): BackendType;
81
+
82
+ /** Get current system name */
83
+ getCurrentSystem(): SystemName;
84
+
85
+ /** Get active system instance */
86
+ getActiveSystemInstance(): any;
87
+
88
+ // ========================================================================
89
+ // Parameters
90
+ // ========================================================================
91
+
92
+ /** Update a single parameter */
93
+ setParameter(name: string, value: number): void;
94
+
95
+ /** Update multiple parameters */
96
+ setParameters(params: Record<string, number>): void;
97
+
98
+ /** Get current parameter value */
99
+ getParameter(name: string): number;
100
+
101
+ /** Get all parameters */
102
+ getAllParameters(): Record<string, number>;
103
+
104
+ /** Randomize all parameters */
105
+ randomizeAll(): void;
106
+
107
+ /** Reset to defaults */
108
+ resetAll(): void;
109
+
110
+ // ========================================================================
111
+ // Reactivity
112
+ // ========================================================================
113
+
114
+ /** Get the ReactivityManager instance */
115
+ getReactivityManager(): ReactivityManager;
116
+
117
+ /** Load a reactivity configuration */
118
+ loadReactivityConfig(config: Partial<ReactivityConfigData> | ReactivityConfig): ValidationResult;
119
+
120
+ /** Get current reactivity configuration */
121
+ getReactivityConfig(): ReactivityConfigData;
122
+
123
+ /** Start reactivity processing (audio/tilt/interaction) */
124
+ startReactivity(): void;
125
+
126
+ /** Stop reactivity processing */
127
+ stopReactivity(): void;
128
+
129
+ /** Check if reactivity is active */
130
+ isReactivityActive(): boolean;
131
+
132
+ /**
133
+ * Feed audio data into the reactivity system
134
+ * @param bass - Bass level 0-1
135
+ * @param mid - Mid level 0-1
136
+ * @param high - High level 0-1
137
+ * @param energy - Overall energy (computed if omitted)
138
+ */
139
+ setAudioInput(bass: number, mid: number, high: number, energy?: number): void;
140
+
141
+ /**
142
+ * Feed device tilt data into the reactivity system
143
+ * @param alpha - Z-axis rotation (0-360)
144
+ * @param beta - X-axis rotation (-180 to 180)
145
+ * @param gamma - Y-axis rotation (-90 to 90)
146
+ */
147
+ setTiltInput(alpha: number, beta: number, gamma: number): void;
148
+
149
+ /**
150
+ * Feed mouse position into the reactivity system
151
+ * @param x - Normalized X (0-1)
152
+ * @param y - Normalized Y (0-1)
153
+ * @param velocityX - Horizontal velocity
154
+ * @param velocityY - Vertical velocity
155
+ */
156
+ setMouseInput(x: number, y: number, velocityX?: number, velocityY?: number): void;
157
+
158
+ /**
159
+ * Trigger a click event in the reactivity system
160
+ * @param intensity - Click intensity (default: 1.0)
161
+ */
162
+ triggerClick(intensity?: number): void;
163
+
164
+ /**
165
+ * Feed scroll delta into the reactivity system
166
+ * @param delta - Scroll delta value
167
+ */
168
+ setScrollDelta(delta: number): void;
169
+
170
+ /**
171
+ * Feed touch data into the reactivity system
172
+ * @param touches - Active touch points
173
+ * @param pinchScale - Pinch zoom scale (default: 1)
174
+ * @param rotation - Two-finger rotation (default: 0)
175
+ */
176
+ setTouchInput(touches: Touch[], pinchScale?: number, rotation?: number): void;
177
+
178
+ // ========================================================================
179
+ // Geometry
180
+ // ========================================================================
181
+
182
+ /**
183
+ * Get geometry names for current system (24 entries).
184
+ * Index encoding: core_type * 8 + base_geometry
185
+ */
186
+ getGeometryNames(): GeometryNames;
187
+
188
+ // ========================================================================
189
+ // State Management
190
+ // ========================================================================
191
+
192
+ /** Export current engine state */
193
+ exportState(): VIB3EngineState;
194
+
195
+ /** Import engine state (restores system, parameters, and reactivity) */
196
+ importState(state: Partial<VIB3EngineState>): Promise<void>;
197
+
198
+ // ========================================================================
199
+ // Lifecycle
200
+ // ========================================================================
201
+
202
+ /** Destroy engine and clean up all resources */
203
+ destroy(): void;
204
+ }
@@ -0,0 +1,91 @@
1
+ /**
2
+ * ColorPresetsSystem TypeScript Definitions
3
+ * VIB3+ SDK - Themed Color Presets
4
+ */
5
+
6
+ import { ParameterUpdateFn } from '../reactivity/index';
7
+
8
+ /** Color preset configuration */
9
+ export interface ColorPresetConfig {
10
+ hue: number;
11
+ saturation?: number;
12
+ intensity?: number;
13
+ speed?: number;
14
+ chaos?: number;
15
+ morphFactor?: number;
16
+ gridDensity?: number;
17
+ dimension?: number;
18
+ }
19
+
20
+ /** Preset info with metadata */
21
+ export interface PresetInfo {
22
+ name: string;
23
+ config: ColorPresetConfig;
24
+ isCustom: boolean;
25
+ }
26
+
27
+ /** Presets grouped by category */
28
+ export type PresetsByCategory = Record<string, PresetInfo[]>;
29
+
30
+ /** Built-in preset names */
31
+ export type BuiltinPresetName =
32
+ | 'Ocean' | 'Lava' | 'Neon' | 'Monochrome' | 'Sunset'
33
+ | 'Aurora' | 'Forest' | 'Candy' | 'Midnight' | 'Coral'
34
+ | 'Arctic' | 'Desert' | 'Toxic' | 'Rose' | 'Storm'
35
+ | 'Ember' | 'Frost' | 'Jungle' | 'Lavender' | 'Chrome'
36
+ | 'Hologram' | 'Blood';
37
+
38
+ /**
39
+ * 22 themed color presets with group parameter application.
40
+ * Supports custom presets, transitions, and import/export.
41
+ */
42
+ export declare class ColorPresetsSystem {
43
+ readonly currentPreset: string | null;
44
+
45
+ constructor(parameterUpdateFn: ParameterUpdateFn);
46
+
47
+ /** Get all presets (built-in and custom) */
48
+ getPresets(): PresetInfo[];
49
+
50
+ /** Get presets grouped by category */
51
+ getPresetsByCategory(): PresetsByCategory;
52
+
53
+ /** Get a specific preset config */
54
+ getPreset(name: string): ColorPresetConfig | null;
55
+
56
+ /** Get the currently applied preset name */
57
+ getCurrentPreset(): string | null;
58
+
59
+ /** Whether a transition is currently active */
60
+ isTransitioning(): boolean;
61
+
62
+ /** Apply a preset by name, optionally with smooth transition */
63
+ applyPreset(name: string, transition?: boolean, duration?: number, onComplete?: () => void): boolean;
64
+
65
+ /** Apply a raw config, optionally with smooth transition */
66
+ applyConfig(config: ColorPresetConfig, transition?: boolean, duration?: number): void;
67
+
68
+ /** Create a custom preset */
69
+ createCustomPreset(name: string, config: ColorPresetConfig): boolean;
70
+
71
+ /** Update an existing custom preset */
72
+ updateCustomPreset(name: string, config: ColorPresetConfig): boolean;
73
+
74
+ /** Delete a custom preset */
75
+ deleteCustomPreset(name: string): boolean;
76
+
77
+ /** Export a preset (or current) as a serializable object */
78
+ exportPreset(name?: string): Record<string, any> | null;
79
+
80
+ /** Export all custom presets */
81
+ exportAllCustomPresets(): Record<string, any>;
82
+
83
+ /** Import a preset from serialized data */
84
+ importPreset(data: Record<string, any>): boolean;
85
+
86
+ /** Cancel an active transition */
87
+ cancelTransition(): void;
88
+
89
+ /** Dispose and clean up */
90
+ dispose(): void;
91
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * ParameterTimeline TypeScript Definitions
3
+ * VIB3+ SDK - Keyframe Animation with BPM Sync
4
+ */
5
+
6
+ import { ParameterUpdateFn } from '../reactivity/index';
7
+ import { EasingName } from './TransitionAnimator';
8
+
9
+ /** Loop mode for timeline playback */
10
+ export type LoopMode = 'loop' | 'bounce' | 'once';
11
+
12
+ /** A single keyframe on a track */
13
+ export interface Keyframe {
14
+ time: number;
15
+ value: number;
16
+ easing?: EasingName;
17
+ }
18
+
19
+ /** Serialized timeline state */
20
+ export interface TimelineState {
21
+ tracks: Record<string, Keyframe[]>;
22
+ duration: number;
23
+ loopMode: LoopMode;
24
+ playbackSpeed: number;
25
+ bpm: number;
26
+ }
27
+
28
+ /**
29
+ * Keyframe-based parameter animation with BPM synchronization.
30
+ * Supports multiple parameter tracks, playback control, and serialization.
31
+ */
32
+ export declare class ParameterTimeline {
33
+ readonly playing: boolean;
34
+ readonly currentTime: number;
35
+ duration: number;
36
+ loopMode: LoopMode;
37
+ playbackSpeed: number;
38
+ bpm: number;
39
+
40
+ constructor(parameterUpdateFn: ParameterUpdateFn);
41
+
42
+ // Track management
43
+ addTrack(param: string): boolean;
44
+ removeTrack(param: string): boolean;
45
+ setTrackEnabled(param: string, enabled: boolean): boolean;
46
+ getTrackNames(): string[];
47
+ getTrackKeyframes(param: string): Keyframe[] | null;
48
+
49
+ // Keyframe management
50
+ addKeyframe(param: string, time: number, value: number, easing?: EasingName): boolean;
51
+ updateKeyframe(param: string, time: number, newValue: number, easing?: EasingName): boolean;
52
+ removeKeyframe(param: string, time: number): boolean;
53
+ clearTrack(param: string): void;
54
+
55
+ // Playback
56
+ setDuration(ms: number): void;
57
+ play(): void;
58
+ pause(): void;
59
+ stop(): void;
60
+ seek(time: number): void;
61
+ setLoopMode(mode: LoopMode): void;
62
+ setPlaybackSpeed(speed: number): void;
63
+
64
+ // Callbacks
65
+ onComplete(callback: () => void): void;
66
+ onTick(callback: (time: number, progress: number) => void): void;
67
+
68
+ // Serialization
69
+ exportState(): TimelineState;
70
+ importState(data: TimelineState): boolean;
71
+
72
+ // Lifecycle
73
+ dispose(): void;
74
+ }
@@ -0,0 +1,109 @@
1
+ /**
2
+ * PostProcessingPipeline TypeScript Definitions
3
+ * VIB3+ SDK - Composable Post-Processing Effects
4
+ */
5
+
6
+ /** Built-in effect names */
7
+ export type BuiltinEffectName =
8
+ | 'bloom' | 'blur' | 'hueRotate' | 'invert' | 'sharpen'
9
+ | 'chromaticAberration' | 'filmGrain' | 'vignette' | 'scanlines'
10
+ | 'glitch' | 'pixelate' | 'kaleidoscope' | 'mirror' | 'posterize';
11
+
12
+ /** Preset chain names */
13
+ export type PresetChainName =
14
+ | 'Retro CRT' | 'Holographic' | 'Glitch Art' | 'Clean'
15
+ | 'Cinematic' | 'Psychedelic' | 'Lo-Fi';
16
+
17
+ /** Effect parameter definition */
18
+ export interface EffectParamDef {
19
+ min: number;
20
+ max: number;
21
+ default: number;
22
+ step?: number;
23
+ }
24
+
25
+ /** Effect detail info */
26
+ export interface EffectDetail {
27
+ name: string;
28
+ enabled: boolean;
29
+ type: string;
30
+ params: Record<string, number>;
31
+ paramDefs: Record<string, EffectParamDef>;
32
+ }
33
+
34
+ /** Preset chain info */
35
+ export interface PresetChainInfo {
36
+ name: PresetChainName;
37
+ description: string;
38
+ }
39
+
40
+ /** Serialized pipeline state */
41
+ export interface PipelineState {
42
+ chain: string[];
43
+ effects: Record<string, Record<string, number>>;
44
+ enabled: boolean;
45
+ }
46
+
47
+ /**
48
+ * 14 composable post-processing effects with 7 preset chains.
49
+ * Effects are applied in chain order via CSS filters and canvas overlays.
50
+ */
51
+ export declare class PostProcessingPipeline {
52
+ readonly enabled: boolean;
53
+
54
+ constructor(targetElement: HTMLElement);
55
+
56
+ /** Add an effect to the chain */
57
+ addEffect(name: BuiltinEffectName | string, params?: Record<string, number>): boolean;
58
+
59
+ /** Remove an effect from the chain */
60
+ removeEffect(name: string): boolean;
61
+
62
+ /** Toggle an effect on/off */
63
+ toggleEffect(name: string): boolean | false;
64
+
65
+ /** Set a single parameter on an effect */
66
+ setEffectParam(effectName: string, param: string, value: number): boolean;
67
+
68
+ /** Set multiple parameters on an effect */
69
+ setEffectParams(effectName: string, params: Record<string, number>): void;
70
+
71
+ /** Reorder the effect chain */
72
+ reorder(newOrder: string[]): void;
73
+
74
+ /** Apply all active effects */
75
+ apply(): void;
76
+
77
+ /** Clear all effects */
78
+ clear(): void;
79
+
80
+ /** Load a preset chain by name */
81
+ loadPresetChain(name: PresetChainName): boolean;
82
+
83
+ /** Get all available preset chains */
84
+ getPresetChains(): PresetChainInfo[];
85
+
86
+ /** Get the active preset chain name, or null */
87
+ getActivePresetChain(): string | null;
88
+
89
+ /** Get all effects with their current state */
90
+ getEffects(): EffectDetail[];
91
+
92
+ /** Get the current chain order */
93
+ getChain(): string[];
94
+
95
+ /** Get detail for a specific effect */
96
+ getEffect(name: string): EffectDetail | null;
97
+
98
+ /** Export pipeline state */
99
+ exportState(): PipelineState;
100
+
101
+ /** Import pipeline state */
102
+ importState(data: PipelineState): boolean;
103
+
104
+ /** Enable/disable the entire pipeline */
105
+ setEnabled(enabled: boolean): void;
106
+
107
+ /** Dispose and clean up */
108
+ dispose(): void;
109
+ }