@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,277 @@
1
+ /**
2
+ * ShaderProgram TypeScript Definitions
3
+ * VIB3+ SDK - Shader Compilation Abstraction
4
+ */
5
+
6
+ /** Shader stage identifiers */
7
+ export const enum ShaderStage {
8
+ VERTEX = 'vertex',
9
+ FRAGMENT = 'fragment',
10
+ COMPUTE = 'compute'
11
+ }
12
+
13
+ /** Uniform type identifiers */
14
+ export const enum UniformType {
15
+ FLOAT = 'float',
16
+ INT = 'int',
17
+ BOOL = 'bool',
18
+ VEC2 = 'vec2',
19
+ VEC3 = 'vec3',
20
+ VEC4 = 'vec4',
21
+ IVEC2 = 'ivec2',
22
+ IVEC3 = 'ivec3',
23
+ IVEC4 = 'ivec4',
24
+ MAT2 = 'mat2',
25
+ MAT3 = 'mat3',
26
+ MAT4 = 'mat4',
27
+ SAMPLER_2D = 'sampler2D',
28
+ SAMPLER_CUBE = 'samplerCube',
29
+ SAMPLER_3D = 'sampler3D'
30
+ }
31
+
32
+ /** Uniform value types */
33
+ export type UniformValue =
34
+ | number
35
+ | boolean
36
+ | number[]
37
+ | Float32Array
38
+ | Int32Array;
39
+
40
+ /** Preprocessor defines map */
41
+ export interface ShaderDefines {
42
+ [key: string]: number | string | boolean;
43
+ }
44
+
45
+ /** Shader source options */
46
+ export interface ShaderSourceOptions {
47
+ entryPoint?: string;
48
+ defines?: ShaderDefines;
49
+ includes?: string[];
50
+ }
51
+
52
+ /**
53
+ * Shader source with preprocessing support
54
+ */
55
+ export declare class ShaderSource {
56
+ readonly stage: ShaderStage;
57
+ readonly code: string;
58
+ readonly entryPoint: string;
59
+ readonly defines: ShaderDefines;
60
+ readonly includes: string[];
61
+
62
+ constructor(
63
+ stage: ShaderStage,
64
+ code: string,
65
+ options?: ShaderSourceOptions
66
+ );
67
+
68
+ /**
69
+ * Get processed code with defines injected
70
+ */
71
+ getProcessedCode(): string;
72
+ }
73
+
74
+ /**
75
+ * Uniform descriptor
76
+ */
77
+ export declare class UniformDescriptor {
78
+ readonly name: string;
79
+ readonly type: UniformType;
80
+ readonly defaultValue: UniformValue | null;
81
+ readonly arraySize: number;
82
+ location: any;
83
+
84
+ constructor(
85
+ name: string,
86
+ type: UniformType,
87
+ defaultValue?: UniformValue | null
88
+ );
89
+ }
90
+
91
+ /**
92
+ * Vertex attribute descriptor
93
+ */
94
+ export declare class AttributeDescriptor {
95
+ readonly name: string;
96
+ readonly location: number;
97
+ readonly type: string;
98
+
99
+ constructor(name: string, location: number, type?: string);
100
+ }
101
+
102
+ /** Uniform descriptor input */
103
+ export interface UniformInput {
104
+ name: string;
105
+ type: UniformType;
106
+ defaultValue?: UniformValue;
107
+ }
108
+
109
+ /** Attribute descriptor input */
110
+ export interface AttributeInput {
111
+ name: string;
112
+ location: number;
113
+ type?: string;
114
+ }
115
+
116
+ /** Shader program options */
117
+ export interface ShaderProgramOptions {
118
+ name?: string;
119
+ vertex: string;
120
+ fragment: string;
121
+ defines?: ShaderDefines;
122
+ uniforms?: UniformInput[];
123
+ attributes?: AttributeInput[];
124
+ }
125
+
126
+ /**
127
+ * Shader program abstraction
128
+ */
129
+ export declare class ShaderProgram {
130
+ readonly id: number;
131
+ readonly name: string;
132
+ readonly vertexSource: ShaderSource;
133
+ readonly fragmentSource: ShaderSource;
134
+ readonly uniforms: UniformDescriptor[];
135
+ readonly attributes: AttributeDescriptor[];
136
+ error: string | null;
137
+
138
+ constructor(options: ShaderProgramOptions);
139
+
140
+ /**
141
+ * Check if shader is compiled
142
+ */
143
+ readonly isCompiled: boolean;
144
+
145
+ /**
146
+ * Get uniform by name
147
+ */
148
+ getUniform(name: string): UniformDescriptor | undefined;
149
+
150
+ /**
151
+ * Get attribute by name
152
+ */
153
+ getAttribute(name: string): AttributeDescriptor | undefined;
154
+
155
+ /**
156
+ * Add a uniform descriptor
157
+ */
158
+ addUniform(
159
+ name: string,
160
+ type: UniformType,
161
+ defaultValue?: UniformValue
162
+ ): void;
163
+
164
+ /**
165
+ * Add an attribute descriptor
166
+ */
167
+ addAttribute(name: string, location: number, type?: string): void;
168
+
169
+ /**
170
+ * Set uniform value (returns true if value changed)
171
+ */
172
+ setUniformValue(name: string, value: UniformValue): boolean;
173
+
174
+ /**
175
+ * Get cached uniform value
176
+ */
177
+ getUniformValue(name: string): UniformValue | undefined;
178
+
179
+ /**
180
+ * Clear uniform value cache
181
+ */
182
+ clearUniformCache(): void;
183
+
184
+ /**
185
+ * Get native handle
186
+ */
187
+ getHandle(): any;
188
+
189
+ /**
190
+ * Set native handle
191
+ */
192
+ setHandle(handle: any): void;
193
+
194
+ /**
195
+ * Set compilation error
196
+ */
197
+ setError(error: string): void;
198
+
199
+ /**
200
+ * Clone shader program
201
+ */
202
+ clone(): ShaderProgram;
203
+
204
+ /**
205
+ * Dispose resources
206
+ */
207
+ dispose(): void;
208
+ }
209
+
210
+ /**
211
+ * 4D shader code library
212
+ */
213
+ export declare const ShaderLib: {
214
+ /**
215
+ * GLSL functions for 6-plane 4D rotation
216
+ * Includes: rotateXY, rotateXZ, rotateYZ, rotateXW, rotateYW, rotateZW, rotate4D
217
+ */
218
+ readonly rotation4D: string;
219
+
220
+ /**
221
+ * GLSL functions for 4D projection
222
+ * Includes: projectPerspective, projectStereographic, projectOrthographic
223
+ */
224
+ readonly projection4D: string;
225
+
226
+ /**
227
+ * Basic 4D vertex shader template
228
+ */
229
+ readonly vertex4D: string;
230
+
231
+ /**
232
+ * Basic 4D fragment shader with W-fog
233
+ */
234
+ readonly fragment4D: string;
235
+ };
236
+
237
+ /**
238
+ * Cache for compiled shaders
239
+ */
240
+ export declare class ShaderCache {
241
+ /**
242
+ * Number of cached shaders
243
+ */
244
+ readonly size: number;
245
+
246
+ constructor();
247
+
248
+ /**
249
+ * Get or create shader by key
250
+ */
251
+ getOrCreate(key: string, factory: () => ShaderProgram): ShaderProgram;
252
+
253
+ /**
254
+ * Get shader by key
255
+ */
256
+ get(key: string): ShaderProgram | undefined;
257
+
258
+ /**
259
+ * Set shader by key
260
+ */
261
+ set(key: string, shader: ShaderProgram): void;
262
+
263
+ /**
264
+ * Check if shader exists
265
+ */
266
+ has(key: string): boolean;
267
+
268
+ /**
269
+ * Clear cache and dispose all shaders
270
+ */
271
+ clear(): void;
272
+ }
273
+
274
+ /**
275
+ * Global shader cache instance
276
+ */
277
+ export declare const shaderCache: ShaderCache;
@@ -0,0 +1,143 @@
1
+ /**
2
+ * UnifiedRenderBridge TypeScript Definitions
3
+ * VIB3+ SDK - WebGL/WebGPU Abstraction Bridge
4
+ */
5
+
6
+ import { WebGPUBackend } from './WebGPUBackend';
7
+
8
+ /** Backend type identifier */
9
+ export type BackendType = 'webgl' | 'webgpu';
10
+
11
+ /** Shader source bundle for dual-backend compilation */
12
+ export interface ShaderSources {
13
+ /** GLSL vertex shader source */
14
+ glslVertex: string;
15
+ /** GLSL fragment shader source */
16
+ glslFragment: string;
17
+ /** WGSL fragment shader source (optional, required for WebGPU) */
18
+ wgslFragment?: string;
19
+ }
20
+
21
+ /** Render options for fullscreen quad rendering */
22
+ export interface BridgeRenderOptions {
23
+ /** Clear color as RGBA 0-1 */
24
+ clearColor?: [number, number, number, number];
25
+ /** Whether to clear before drawing (default: true) */
26
+ clear?: boolean;
27
+ }
28
+
29
+ /** VIB3+ uniform values accepted by setUniforms */
30
+ export interface VIB3Uniforms {
31
+ u_time?: number;
32
+ u_resolution?: [number, number];
33
+ u_geometry?: number;
34
+ u_rot4dXY?: number;
35
+ u_rot4dXZ?: number;
36
+ u_rot4dYZ?: number;
37
+ u_rot4dXW?: number;
38
+ u_rot4dYW?: number;
39
+ u_rot4dZW?: number;
40
+ u_dimension?: number;
41
+ u_gridDensity?: number;
42
+ u_morphFactor?: number;
43
+ u_chaos?: number;
44
+ u_speed?: number;
45
+ u_hue?: number;
46
+ u_intensity?: number;
47
+ u_saturation?: number;
48
+ u_mouseIntensity?: number;
49
+ u_clickIntensity?: number;
50
+ u_bass?: number;
51
+ u_mid?: number;
52
+ u_high?: number;
53
+ u_layerScale?: number;
54
+ u_layerOpacity?: number;
55
+ u_layerColor?: [number, number, number];
56
+ u_densityMult?: number;
57
+ u_speedMult?: number;
58
+ [key: string]: number | number[] | boolean | undefined;
59
+ }
60
+
61
+ /** Bridge creation options */
62
+ export interface BridgeCreateOptions {
63
+ /** Try WebGPU first (default: true) */
64
+ preferWebGPU?: boolean;
65
+ /** Enable debug logging */
66
+ debug?: boolean;
67
+ }
68
+
69
+ /**
70
+ * Pack VIB3+ parameters into a Float32Array for WebGPU uniform buffer.
71
+ * Layout matches VIB3Uniforms struct in WGSL (256 bytes).
72
+ */
73
+ export declare function packVIB3Uniforms(uniforms: VIB3Uniforms): Float32Array;
74
+
75
+ /**
76
+ * UnifiedRenderBridge - Connects VIB3+ visualization systems to WebGL/WebGPU backends.
77
+ *
78
+ * All three VIB3+ visualization systems (Quantum, Faceted, Holographic) use the same
79
+ * rendering pattern: procedural fragment shaders on a fullscreen quad. This bridge
80
+ * abstracts that pattern so systems can render identically on either backend.
81
+ */
82
+ export declare class UnifiedRenderBridge {
83
+ readonly canvas: HTMLCanvasElement;
84
+ readonly backendType: BackendType;
85
+ readonly backend: WebGLRenderingContext | WebGL2RenderingContext | WebGPUBackend;
86
+
87
+ constructor(
88
+ canvas: HTMLCanvasElement,
89
+ backendType: BackendType,
90
+ backend: WebGLRenderingContext | WebGL2RenderingContext | WebGPUBackend
91
+ );
92
+
93
+ /**
94
+ * Create a UnifiedRenderBridge with automatic backend selection.
95
+ * Tries WebGPU first (if preferred), falls back to WebGL.
96
+ */
97
+ static create(
98
+ canvas: HTMLCanvasElement,
99
+ options?: BridgeCreateOptions
100
+ ): Promise<UnifiedRenderBridge>;
101
+
102
+ /** Get the active backend type */
103
+ getBackendType(): BackendType;
104
+
105
+ /** Check if the bridge is initialized */
106
+ readonly initialized: boolean;
107
+
108
+ /**
109
+ * Compile a shader program for a named visualization.
110
+ * For WebGL: compiles GLSL vertex + fragment shaders.
111
+ * For WebGPU: compiles WGSL fragment shader with fullscreen pipeline.
112
+ */
113
+ compileShader(name: string, sources: ShaderSources): boolean;
114
+
115
+ /**
116
+ * Set uniforms for the next render call.
117
+ * Accepts a flat object with uniform names as keys.
118
+ */
119
+ setUniforms(uniforms: VIB3Uniforms): void;
120
+
121
+ /**
122
+ * Render a fullscreen quad using the named shader program.
123
+ */
124
+ render(name: string, options?: BridgeRenderOptions): void;
125
+
126
+ /**
127
+ * Resize the rendering surface.
128
+ */
129
+ resize(width: number, height: number, pixelRatio?: number): void;
130
+
131
+ /**
132
+ * Get the raw WebGL context or WebGPU backend for advanced usage.
133
+ */
134
+ getRawBackend(): WebGLRenderingContext | WebGL2RenderingContext | WebGPUBackend;
135
+
136
+ /** Dispose of all resources */
137
+ dispose(): void;
138
+ }
139
+
140
+ /** Check if WebGPU is available in the current environment */
141
+ export declare function canUseWebGPU(): boolean;
142
+
143
+ export { WGSLShaderLib } from './WebGPUBackend';
@@ -0,0 +1,168 @@
1
+ /**
2
+ * WebGLBackend TypeScript Definitions
3
+ * VIB3+ SDK - WebGL 2.0 Rendering Backend
4
+ */
5
+
6
+ import { RenderBackend } from './RenderCommand';
7
+ import { RenderState } from './RenderState';
8
+
9
+ /** WebGL context options */
10
+ export interface WebGLContextOptions {
11
+ alpha?: boolean;
12
+ depth?: boolean;
13
+ stencil?: boolean;
14
+ antialias?: boolean;
15
+ premultipliedAlpha?: boolean;
16
+ preserveDrawingBuffer?: boolean;
17
+ powerPreference?: 'default' | 'high-performance' | 'low-power';
18
+ failIfMajorPerformanceCaveat?: boolean;
19
+ }
20
+
21
+ /** Backend options */
22
+ export interface WebGLBackendOptions extends WebGLContextOptions {
23
+ debug?: boolean;
24
+ }
25
+
26
+ /** Buffer descriptor */
27
+ export interface BufferDescriptor {
28
+ data?: ArrayBufferView;
29
+ size?: number;
30
+ usage?: 'vertex' | 'index';
31
+ dynamic?: boolean;
32
+ }
33
+
34
+ /** GPU buffer handle */
35
+ export interface GPUBuffer {
36
+ _handle: WebGLBuffer | null;
37
+ _target: number;
38
+ size: number;
39
+ usage: string;
40
+ }
41
+
42
+ /** WebGL extensions */
43
+ export interface WebGLExtensions {
44
+ colorBufferFloat: any;
45
+ floatBlend: any;
46
+ textureFilterAnisotropic: any;
47
+ debugRendererInfo: any;
48
+ loseContext: any;
49
+ parallelShaderCompile: any;
50
+ }
51
+
52
+ /** Backend statistics */
53
+ export interface BackendStats {
54
+ drawCalls: number;
55
+ stateChanges: number;
56
+ shaderSwitches: number;
57
+ textureBinds: number;
58
+ }
59
+
60
+ /**
61
+ * WebGL 2.0 rendering backend
62
+ */
63
+ export declare class WebGLBackend implements RenderBackend {
64
+ readonly gl: WebGL2RenderingContext;
65
+ readonly debug: boolean;
66
+ readonly extensions: WebGLExtensions;
67
+
68
+ constructor(gl: WebGL2RenderingContext, options?: WebGLBackendOptions);
69
+
70
+ /**
71
+ * Clear framebuffer
72
+ */
73
+ clear(command: any): void;
74
+
75
+ /**
76
+ * Set render state
77
+ */
78
+ setState(state: RenderState): void;
79
+
80
+ /**
81
+ * Set viewport
82
+ */
83
+ setViewport(x: number, y: number, width: number, height: number): void;
84
+
85
+ /**
86
+ * Bind shader program
87
+ */
88
+ bindShader(shader: any): void;
89
+
90
+ /**
91
+ * Set shader uniform
92
+ */
93
+ setUniform(name: string, value: any, type?: string): void;
94
+
95
+ /**
96
+ * Bind texture to slot
97
+ */
98
+ bindTexture(texture: any, slot?: number): void;
99
+
100
+ /**
101
+ * Bind vertex array object
102
+ */
103
+ bindVertexArray(vao: any): void;
104
+
105
+ /**
106
+ * Bind render target (framebuffer)
107
+ */
108
+ bindRenderTarget(target: any): void;
109
+
110
+ /**
111
+ * Draw non-indexed primitives
112
+ */
113
+ draw(command: any): void;
114
+
115
+ /**
116
+ * Draw indexed primitives
117
+ */
118
+ drawIndexed(command: any): void;
119
+
120
+ /**
121
+ * Draw instanced primitives
122
+ */
123
+ drawInstanced(command: any): void;
124
+
125
+ /**
126
+ * Draw indexed instanced primitives
127
+ */
128
+ drawIndexedInstanced(command: any): void;
129
+
130
+ /**
131
+ * Create a GPU buffer
132
+ */
133
+ createBuffer(descriptor: BufferDescriptor): GPUBuffer;
134
+
135
+ /**
136
+ * Update buffer data
137
+ */
138
+ updateBuffer(buffer: GPUBuffer, data: ArrayBufferView, offset?: number): void;
139
+
140
+ /**
141
+ * Delete buffer
142
+ */
143
+ deleteBuffer(buffer: GPUBuffer): void;
144
+
145
+ /**
146
+ * Get render statistics
147
+ */
148
+ getStats(): BackendStats;
149
+
150
+ /**
151
+ * Reset statistics
152
+ */
153
+ resetStats(): void;
154
+
155
+ /**
156
+ * Dispose all resources
157
+ */
158
+ dispose(): void;
159
+ }
160
+
161
+ /**
162
+ * Create WebGL 2.0 backend from canvas
163
+ * @returns Backend instance or null if WebGL 2.0 is not supported
164
+ */
165
+ export declare function createWebGLBackend(
166
+ canvas: HTMLCanvasElement,
167
+ options?: WebGLBackendOptions
168
+ ): WebGLBackend | null;