@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,520 @@
1
+ # VIB3+ SDK System Inventory
2
+
3
+ **Document Version:** 2.0.0
4
+ **Last Updated:** 2026-01-30
5
+ **Purpose:** Complete technical inventory for developers and AI agents
6
+
7
+ ---
8
+
9
+ ## Executive Summary
10
+
11
+ VIB3+ is a **general-purpose 4D rotation visualization SDK** designed for:
12
+ - Plugin marketplaces and browser extensions
13
+ - Wearable devices and XR platforms
14
+ - Agentic AI integration (MCP protocol)
15
+ - Cross-platform deployment (Web, Flutter, WASM)
16
+
17
+ The SDK provides 3 active visualization systems with shared 6D rotation mathematics, unified rendering contracts, comprehensive telemetry, a universal spatial input system, creative tooling, cross-platform framework integrations, and advanced features including WebXR, WebGPU compute, and MIDI.
18
+
19
+ ---
20
+
21
+ ## Quick Reference Card
22
+
23
+ | Metric | Value |
24
+ |--------|-------|
25
+ | **SDK Version** | 2.0.0 |
26
+ | **Visualization Systems** | 3 active (Quantum, Faceted, Holographic) + 1 archived (Polychora - TBD) |
27
+ | **Rotation Planes** | 6 (XY, XZ, YZ for 3D; XW, YW, ZW for 4D) |
28
+ | **Base Geometries** | 8 per system |
29
+ | **Core Warp Types** | 3 (Base, Hypersphere, Hypertetrahedron) |
30
+ | **Total Geometries** | 24 per system (8 base × 3 cores) |
31
+ | **Canvas Layers** | 5 per system (background, shadow, content, highlight, accent) |
32
+ | **MCP Tools** | 12 agent-accessible tools |
33
+ | **Spatial Input Sources** | 8 (deviceTilt, mouse, gyroscope, gamepad, perspective, programmatic, audio, MIDI) |
34
+ | **Spatial Profiles** | 6 built-in (cardTilt, wearablePerspective, gameAsset, vjAudioSpatial, uiElement, immersiveXR) |
35
+ | **Creative Effects** | 14 post-processing effects, 22 color presets, 14 easing functions |
36
+ | **Platform Integrations** | 7 (React, Vue, Svelte, Figma, Three.js, TouchDesigner, OBS) |
37
+ | **Advanced Modules** | 5 (WebXR, WebGPU Compute, MIDI, AI Presets, OffscreenWorker) |
38
+ | **Test Coverage** | 694+ tests passing |
39
+
40
+ ---
41
+
42
+ ## Architecture Overview
43
+
44
+ ```
45
+ ┌─────────────────────────────────────────────────────────────────┐
46
+ │ VIB3+ SDK Architecture │
47
+ ├─────────────────────────────────────────────────────────────────┤
48
+ │ │
49
+ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
50
+ │ │ MCP Server │ │ Agent CLI │ │ Telemetry │ │
51
+ │ │ (12 tools) │ │ (JSONL) │ │ (Prometheus)│ │
52
+ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
53
+ │ │ │ │ │
54
+ │ └──────────────────┼──────────────────┘ │
55
+ │ ▼ │
56
+ │ ┌─────────────────────────────────────────────────────────┐ │
57
+ │ │ VIB3Engine │ │
58
+ │ │ - System switching (quantum/faceted/holographic/poly) │ │
59
+ │ │ - Parameter management (ParameterManager) │ │
60
+ │ │ - Canvas orchestration (CanvasManager) │ │
61
+ │ └─────────────────────────┬───────────────────────────────┘ │
62
+ │ ▼ │
63
+ │ ┌─────────────────────────────────────────────────────────┐ │
64
+ │ │ RendererLifecycleManager │ │
65
+ │ │ - Renderer registration and activation │ │
66
+ │ │ - Context transitions │ │
67
+ │ │ - Contract enforcement │ │
68
+ │ └──────┬──────────┬──────────┬──────────┬─────────────────┘ │
69
+ │ ▼ ▼ ▼ ▼ │
70
+ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
71
+ │ │ Quantum │ │ Faceted │ │Holograph │ │Polychora │ │
72
+ │ │ Adapter │ │ Adapter │ │ Adapter │ │ Adapter │ │
73
+ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
74
+ │ ▼ ▼ ▼ ▼ │
75
+ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
76
+ │ │ Quantum │ │ Faceted │ │ Holo │ │Polychora │ │
77
+ │ │ Engine │ │ System │ │ System │ │ System │ │
78
+ │ │ (588 LOC)│ │(~400 LOC)│ │(652 LOC) │ │(1065 LOC)│ │
79
+ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
80
+ │ │ │ │ │ │
81
+ │ └────────────┴────────────┴────────────┘ │
82
+ │ ▼ │
83
+ │ ┌─────────────────────────────────────────────────────────┐ │
84
+ │ │ 5-Layer Canvas System │ │
85
+ │ │ [background] [shadow] [content] [highlight] [accent] │ │
86
+ │ └─────────────────────────────────────────────────────────┘ │
87
+ │ ▼ │
88
+ │ ┌─────────────────────────────────────────────────────────┐ │
89
+ │ │ WebGL / WebGPU Backend │ │
90
+ │ │ - Resource tracking (UnifiedResourceManager) │ │
91
+ │ │ - Command buffers (RenderCommandBuffer) │ │
92
+ │ │ - Shader programs (ShaderProgram.js) │ │
93
+ │ └─────────────────────────────────────────────────────────┘ │
94
+ │ │
95
+ └─────────────────────────────────────────────────────────────────┘
96
+ ```
97
+
98
+ ---
99
+
100
+ ## The 4 Visualization Systems
101
+
102
+ ### 1. Quantum Engine
103
+ **File:** `src/quantum/QuantumEngine.js` (588 LOC)
104
+ **Purpose:** Complex quantum lattice visualizations with 24 geometry variants
105
+
106
+ | Property | Value |
107
+ |----------|-------|
108
+ | Canvas IDs | `quantum-background-canvas`, `quantum-shadow-canvas`, `quantum-content-canvas`, `quantum-highlight-canvas`, `quantum-accent-canvas` |
109
+ | Geometries | 24 (8 base × 3 cores) |
110
+ | Audio Reactive | Yes |
111
+ | Physics | No |
112
+
113
+ **Core Features:**
114
+ - Uses `QuantumHolographicVisualizer` for rendering
115
+ - Full 6D rotation support in shader
116
+ - `warpHypersphereCore()` and `warpHypertetraCore()` for geometry variants
117
+
118
+ ### 2. Faceted System
119
+ **File:** `src/faceted/FacetedSystem.js`
120
+ **Purpose:** Clean 2D geometric patterns with 4D rotation projection
121
+
122
+ | Property | Value |
123
+ |----------|-------|
124
+ | Canvas IDs | `background-canvas`, `shadow-canvas`, `content-canvas`, `highlight-canvas`, `accent-canvas` |
125
+ | Geometries | 24 (8 base × 3 cores) |
126
+ | Audio Reactive | Yes (bass/mid/high uniforms — wired in v2.0.0) |
127
+ | Color Control | Full HSL (hue + saturation via `hsl2rgb()` — wired in v2.0.0) |
128
+ | Physics | No |
129
+
130
+ **Core Features:**
131
+ - Single WebGL context on `content-canvas`
132
+ - Geometry functions in fragment shader
133
+ - Core warp applied via `applyCoreWarp()` shader function
134
+ - Full `hsl2rgb()` color pipeline with saturation control (v2.0.0)
135
+ - Audio-reactive density/morph/hue shift (v2.0.0)
136
+ - Click intensity boost (v2.0.0)
137
+
138
+ ### 3. Holographic System
139
+ **File:** `src/holograms/RealHolographicSystem.js` (652 LOC)
140
+ **Purpose:** 5-layer audio-reactive holographic effects
141
+
142
+ | Property | Value |
143
+ |----------|-------|
144
+ | Canvas IDs | `holo-background-canvas`, `holo-shadow-canvas`, `holo-content-canvas`, `holo-highlight-canvas`, `holo-accent-canvas` |
145
+ | Variants | 30 named variants |
146
+ | Audio Reactive | Yes (native) |
147
+ | Physics | No |
148
+
149
+ **Core Features:**
150
+ - Each layer has its own `HolographicVisualizer` instance
151
+ - Native microphone input for audio reactivity
152
+ - Beat detection (bass), melody detection (mid/high)
153
+ - Per-layer reactivity multipliers
154
+
155
+ ### 4. Polychora System (ARCHIVED - TBD)
156
+
157
+ > **Status:** This system is archived and not production-ready. Files are located in `archive/polychora/`.
158
+
159
+ **File:** `archive/polychora/PolychoraSystem.js` (1065 LOC)
160
+ **Purpose:** 4D polytope visualization with glassmorphic effects (planned)
161
+
162
+ | Property | Value |
163
+ |----------|-------|
164
+ | Status | **ARCHIVED / TBD** |
165
+ | Canvas IDs | `polychora-*-canvas` (5 layers) |
166
+ | Polytopes | 6 planned (5-Cell, Tesseract, 16-Cell, 24-Cell, 600-Cell, 120-Cell) |
167
+ | Audio Reactive | Planned |
168
+ | Physics | Planned (`Polychora4DPhysics.js` in archive) |
169
+
170
+ **Planned Features (not yet production-ready):**
171
+ - 4D polytope distance functions in shader
172
+ - Complete 6D rotation matrices
173
+ - Advanced glass effects (refraction, chromatic aberration)
174
+ - 4D physics simulation
175
+
176
+ ---
177
+
178
+ ## The 24 Geometry System
179
+
180
+ ### Encoding Formula
181
+ ```
182
+ geometry_index = core_index * 8 + base_index
183
+
184
+ Where:
185
+ - core_index: 0 (Base), 1 (Hypersphere), 2 (Hypertetrahedron)
186
+ - base_index: 0-7 (one of 8 base geometries)
187
+ ```
188
+
189
+ ### Base Geometries (base_index 0-7)
190
+ | Index | Name | Description |
191
+ |-------|------|-------------|
192
+ | 0 | Tetrahedron | Simple 4-vertex lattice, fundamental polytope |
193
+ | 1 | Hypercube | 4D cube projection with 16 vertices, 32 edges |
194
+ | 2 | Sphere | Radial harmonic sphere with smooth surfaces |
195
+ | 3 | Torus | Toroidal field with continuous surface |
196
+ | 4 | Klein Bottle | Non-orientable surface with topological twist |
197
+ | 5 | Fractal | Recursive subdivision with self-similar structure |
198
+ | 6 | Wave | Sinusoidal interference patterns |
199
+ | 7 | Crystal | Octahedral crystal lattice structure |
200
+
201
+ ### Core Warp Types (core_index 0-2)
202
+ | Index | Name | Effect |
203
+ |-------|------|--------|
204
+ | 0 | Base | Pure geometry, no warp applied |
205
+ | 1 | Hypersphere | Wraps base in 4D sphere using `warpHypersphereCore()` |
206
+ | 2 | Hypertetrahedron | Wraps base in 4D tetrahedron using `warpHypertetraCore()` |
207
+
208
+ ### Full Geometry Table
209
+ | Index | Base | Core | Full Name |
210
+ |-------|------|------|-----------|
211
+ | 0-7 | 0-7 | Base | Tetrahedron, Hypercube, Sphere, Torus, Klein, Fractal, Wave, Crystal |
212
+ | 8-15 | 0-7 | Hypersphere | Hypersphere(Tetrahedron), Hypersphere(Hypercube), ... |
213
+ | 16-23 | 0-7 | Hypertetrahedron | Hypertetra(Tetrahedron), Hypertetra(Hypercube), ... |
214
+
215
+ ---
216
+
217
+ ## The 6D Rotation System
218
+
219
+ ### Rotation Planes
220
+
221
+ | Plane | Axes | Type | Parameter |
222
+ |-------|------|------|-----------|
223
+ | XY | X ↔ Y | 3D Space | `rot4dXY` |
224
+ | XZ | X ↔ Z | 3D Space | `rot4dXZ` |
225
+ | YZ | Y ↔ Z | 3D Space | `rot4dYZ` |
226
+ | XW | X ↔ W | 4D Hyperspace | `rot4dXW` |
227
+ | YW | Y ↔ W | 4D Hyperspace | `rot4dYW` |
228
+ | ZW | Z ↔ W | 4D Hyperspace | `rot4dZW` |
229
+
230
+ ### Application Order
231
+ Rotations are applied sequentially in shaders:
232
+ 1. XY (3D)
233
+ 2. XZ (3D)
234
+ 3. YZ (3D)
235
+ 4. XW (4D)
236
+ 5. YW (4D)
237
+ 6. ZW (4D)
238
+
239
+ ### Parameter Range
240
+ All rotation parameters: `-6.28` to `6.28` (radians, ±2π)
241
+
242
+ ---
243
+
244
+ ## MCP Server & Agent Tools
245
+
246
+ ### Available Tools (12 total)
247
+
248
+ | Tool | Description | Key Parameters |
249
+ |------|-------------|----------------|
250
+ | `create_4d_visualization` | Create new visualization scene | `system`, `geometry_index`, `projection` |
251
+ | `set_rotation` | Set 6D rotation values | `XY`, `XZ`, `YZ`, `XW`, `YW`, `ZW` |
252
+ | `set_visual_parameters` | Set visual properties | Any parameter object |
253
+ | `switch_system` | Change visualization system | `system` |
254
+ | `change_geometry` | Change geometry type | `geometry_index` OR `base_type` + `core_type` |
255
+ | `get_state` | Get current engine state | (none) |
256
+ | `randomize_parameters` | Randomize all parameters | (none) |
257
+ | `reset_parameters` | Reset to defaults | (none) |
258
+ | `save_to_gallery` | Save to gallery slot | `slot`, `name` |
259
+ | `load_from_gallery` | Load from gallery slot | `slot` |
260
+ | `search_geometries` | Search available geometries | `core_type` |
261
+ | `get_parameter_schema` | Get parameter validation schema | (none) |
262
+
263
+ ### Tool Response Format
264
+ ```json
265
+ {
266
+ "success": true,
267
+ "operation": "tool_name",
268
+ "timestamp": "2026-01-24T12:00:00.000Z",
269
+ "duration_ms": 5.2,
270
+ "suggested_next_actions": ["next_tool_1", "next_tool_2"],
271
+ ...tool_specific_data
272
+ }
273
+ ```
274
+
275
+ ---
276
+
277
+ ## Agent CLI Commands
278
+
279
+ ### Command Types
280
+ | Command | Description |
281
+ |---------|-------------|
282
+ | `ping` | Health check |
283
+ | `status` | Get engine status |
284
+ | `help` | List available commands |
285
+ | `quit` / `exit` | Stop CLI |
286
+ | `set <param> <value>` | Set parameter value |
287
+ | `get <param>` | Get parameter value |
288
+ | `rotate <plane> <angle>` | Rotate on plane |
289
+ | `geometry <index>` | Set geometry (0-23) |
290
+ | `system <name>` | Switch system |
291
+ | `metrics` | Get telemetry metrics |
292
+
293
+ ### Input/Output Formats
294
+ - **JSONL** (default): One JSON object per line
295
+ - **JSON**: Pretty-printed JSON
296
+ - **Text**: Human-readable text
297
+
298
+ ---
299
+
300
+ ## Renderer Contracts
301
+
302
+ ### RendererContract Interface
303
+ ```javascript
304
+ class RendererContract {
305
+ init(context) // Initialize with WebGL/WebGPU context
306
+ resize(width, height, pixelRatio) // Handle viewport changes
307
+ render(frameState) // Main render loop
308
+ setActive(active) // Activate/deactivate renderer
309
+ dispose() // Clean up GPU resources
310
+ }
311
+ ```
312
+
313
+ ### ResourceManagerContract Interface
314
+ ```javascript
315
+ class ResourceManagerContract {
316
+ registerResource(type, id, resource, bytes) // Track GPU resource
317
+ releaseResource(type, id) // Free GPU resource
318
+ disposeAll() // Clean all resources
319
+ getStats() // Memory usage telemetry
320
+ }
321
+ ```
322
+
323
+ ---
324
+
325
+ ## File Structure Summary
326
+
327
+ ```
328
+ /home/user/Vib3-CORE-Documented01-/
329
+ ├── src/ # Core SDK (~72,000+ LOC)
330
+ │ ├── core/ # Engine orchestration
331
+ │ │ ├── VIB3Engine.js # Main unified engine (+ SpatialInput)
332
+ │ │ ├── RendererContracts.js # Shared interfaces
333
+ │ │ └── renderers/ # System adapters
334
+ │ ├── quantum/ # Quantum visualization
335
+ │ ├── faceted/ # Faceted visualization (+ audio/saturation)
336
+ │ ├── holograms/ # Holographic visualization
337
+ │ ├── geometry/ # 24-geometry system
338
+ │ ├── math/ # 4D math utilities
339
+ │ ├── render/ # Rendering pipeline
340
+ │ ├── scene/ # Scene graph
341
+ │ ├── agent/ # MCP/CLI/Telemetry
342
+ │ ├── export/ # Export generators
343
+ │ ├── wasm/ # WASM loader
344
+ │ ├── reactivity/ # Reactivity + SpatialInputSystem (v2.0.0)
345
+ │ ├── creative/ # Creative tooling (v2.0.0)
346
+ │ ├── integrations/ # Platform integrations (v2.0.0)
347
+ │ └── advanced/ # Advanced features (v2.0.0)
348
+ ├── tools/ # Tooling (+ shader-sync-verify.js)
349
+ ├── cpp/ # C++ math core (1,783 LOC)
350
+ ├── js/ # Client-side integration
351
+ ├── tests/ # Test suite (60 files)
352
+ ├── DOCS/ # Documentation
353
+ └── types/ # TypeScript definitions
354
+ ```
355
+
356
+ ---
357
+
358
+ ## Agent Onboarding Quiz
359
+
360
+ Before proceeding with development tasks, verify understanding by answering these questions:
361
+
362
+ ### Required Knowledge Check
363
+
364
+ **Q1: How many rotation planes does the system support?**
365
+ Expected: 6 (XY, XZ, YZ for 3D; XW, YW, ZW for 4D)
366
+
367
+ **Q2: What is the geometry encoding formula?**
368
+ Expected: `geometry = coreIndex * 8 + baseIndex`
369
+
370
+ **Q3: How many canvas layers does each visualization system use?**
371
+ Expected: 5 (background, shadow, content, highlight, accent)
372
+
373
+ **Q4: What are the active visualization systems?**
374
+ Expected: 3 active (Quantum, Faceted, Holographic) + 1 archived (Polychora - TBD)
375
+
376
+ **Q5: What are the 3 core warp types?**
377
+ Expected: Base (0), Hypersphere (1), Hypertetrahedron (2)
378
+
379
+ **Q6: What are the 8 base geometry types?**
380
+ Expected: Tetrahedron, Hypercube, Sphere, Torus, Klein Bottle, Fractal, Wave, Crystal
381
+
382
+ **Q7: Which system has 4D physics support?**
383
+ Expected: Polychora (archived/TBD - not production-ready)
384
+
385
+ **Q8: What MCP tool changes the geometry?**
386
+ Expected: `change_geometry`
387
+
388
+ ### If answers are incomplete:
389
+ - Review this document
390
+ - Check `DOCS/CONTROL_REFERENCE.md` for parameter details
391
+ - Read `src/agent/mcp/tools.js` for MCP tool definitions
392
+
393
+ ---
394
+
395
+ ## Current Development Status
396
+
397
+ ### Phase Status (as of v2.0.0, 2026-01-30)
398
+ | Phase | Status | Notes |
399
+ |-------|--------|-------|
400
+ | Phase 1: Foundation | ✅ Complete | Math, geometry, parameters |
401
+ | Phase 2: Rendering | ✅ Mostly Complete | Contracts exist, adapters implemented |
402
+ | Phase 3: Agentic | ✅ Complete | MCP, CLI, Telemetry working |
403
+ | Phase 4: WebGPU | 🔄 In Progress | Scaffold exists, needs shader pipeline |
404
+ | Phase 5: Hardening | ✅ Complete | 694 tests passing, XSS prevention, input validation |
405
+ | **Phase A: Parity & Polish** | **✅ Complete** | Quantum color, Faceted saturation/audio, clickIntensity fix, shader sync tool |
406
+ | **Phase B: Creative Tooling** | **✅ Complete** | Color presets, transitions, post-processing, timeline |
407
+ | **Phase C: Platform Integrations** | **✅ Complete** | React, Vue, Svelte, Figma, Three.js, TouchDesigner, OBS |
408
+ | **Phase D: Advanced** | **✅ Complete** | WebXR, WebGPU compute, MIDI, AI presets, OffscreenWorker |
409
+ | **SpatialInputSystem** | **✅ Complete** | 8 source types, 6 profiles, integrated into VIB3Engine |
410
+
411
+ ### v2.0.0 Bugs Fixed
412
+ 1. ~~`clickIntensity` uniform mapped to `u_mouseIntensity`~~ → Fixed (QuantumVisualizer.js:792)
413
+ 2. ~~Faceted system missing saturation control~~ → Fixed (hsl2rgb + u_saturation uniform)
414
+ 3. ~~Faceted system missing audio reactivity~~ → Fixed (bass/mid/high uniforms wired)
415
+ 4. ~~Inline shaders can drift from external files~~ → Mitigated (shader-sync-verify.js tooling)
416
+
417
+ ### Remaining Gaps
418
+ 1. WebGPU backend needs full shader pipeline
419
+ 2. Some systems don't fully implement RendererContract
420
+ 3. New v2.0.0 modules need test coverage
421
+
422
+ ---
423
+
424
+ ## Cross-Platform Support
425
+
426
+ | Platform | Status | Implementation |
427
+ |----------|--------|----------------|
428
+ | Web (Browser) | ✅ Production | index.html + JS modules |
429
+ | WASM | ✅ Working | cpp/ → Emscripten → vib3.wasm |
430
+ | Flutter | 🔄 Scaffold | src/platforms/flutter/ |
431
+ | Node.js CLI | ✅ Working | src/agent/cli/ |
432
+ | React | ✅ Component (v2.0.0) | src/integrations/frameworks/Vib3React.js |
433
+ | Vue 3 | ✅ Component (v2.0.0) | src/integrations/frameworks/Vib3Vue.js |
434
+ | Svelte | ✅ Component (v2.0.0) | src/integrations/frameworks/Vib3Svelte.js |
435
+ | Three.js | ✅ ShaderMaterial (v2.0.0) | src/integrations/ThreeJsPackage.js |
436
+ | Figma | ✅ Plugin (v2.0.0) | src/integrations/FigmaPlugin.js |
437
+ | TouchDesigner | ✅ GLSL Export (v2.0.0) | src/integrations/TouchDesignerExport.js |
438
+ | OBS Studio | ✅ Browser Source (v2.0.0) | src/integrations/OBSMode.js |
439
+ | WebXR (VR/AR) | ✅ Renderer (v2.0.0) | src/advanced/WebXRRenderer.js |
440
+
441
+ ---
442
+
443
+ ## v2.0.0 New Systems
444
+
445
+ ### SpatialInputSystem (`src/reactivity/SpatialInputSystem.js` — 1,783 lines)
446
+ Universal spatial input that decouples "card tilting" from physical device orientation. Any input source maps through a normalized spatial state (pitch/yaw/roll/x/y/z/intensity/velocity) to any visualization parameter.
447
+
448
+ - **8 input sources**: deviceTilt, mousePosition, gyroscope, gamepad, perspective, programmatic, audio, midi
449
+ - **6 built-in profiles**: cardTilt, wearablePerspective, gameAsset, vjAudioSpatial, uiElement, immersiveXR
450
+ - **Per-axis lerp smoothing**, dramatic mode (8x), sensitivity control
451
+ - **Full serialization** (exportConfig/importConfig)
452
+ - **Integrated into VIB3Engine** with 7 new methods
453
+
454
+ ### Creative Tooling (`src/creative/` — 3,837 lines)
455
+ | Module | Lines | Purpose |
456
+ |--------|-------|---------|
457
+ | ColorPresetsSystem.js | 980 | 22 themed presets (Ocean, Lava, Neon, Monochrome, etc.) |
458
+ | TransitionAnimator.js | 683 | 14 easing functions, smooth state interpolation, sequencing |
459
+ | PostProcessingPipeline.js | 1,113 | 14 composable effects (bloom, chromatic aberration, vignette, etc.), 7 preset chains |
460
+ | ParameterTimeline.js | 1,061 | Keyframe animation with BPM sync for music-driven sequences |
461
+
462
+ ### Platform Integrations (`src/integrations/` — 4,693 lines)
463
+ | Module | Lines | Purpose |
464
+ |--------|-------|---------|
465
+ | frameworks/Vib3React.js | 591 | `<Vib3Canvas>` React component + `useVib3()` hook |
466
+ | frameworks/Vib3Vue.js | 628 | Vue 3 component + composable |
467
+ | frameworks/Vib3Svelte.js | 654 | Svelte component + store |
468
+ | FigmaPlugin.js | 854 | Figma plugin manifest, code generator, and UI |
469
+ | ThreeJsPackage.js | 660 | Three.js ShaderMaterial with 4D rotation uniforms |
470
+ | TouchDesignerExport.js | 552 | GLSL TOP export for TouchDesigner |
471
+ | OBSMode.js | 754 | Transparent background + OBS browser source mode |
472
+
473
+ ### Advanced Features (`src/advanced/` — 4,262 lines)
474
+ | Module | Lines | Purpose |
475
+ |--------|-------|---------|
476
+ | WebXRRenderer.js | 680 | WebXR VR/AR with 6DOF spatial extraction |
477
+ | WebGPUCompute.js | 1,051 | WGSL particle simulation + audio FFT compute shaders |
478
+ | MIDIController.js | 703 | Web MIDI API with learn mode and CC mapping |
479
+ | AIPresetGenerator.js | 777 | Text-to-preset via LLM + mutation/crossbreeding algorithms |
480
+ | OffscreenWorker.js | 1,051 | OffscreenCanvas worker rendering + SharedArrayBuffer |
481
+
482
+ ### Shader Sync Tool (`tools/shader-sync-verify.js` — 937 lines)
483
+ Verifies inline shaders match external shader files. Parses GLSL uniforms and WGSL struct fields, compares across all 3 systems, produces color-coded console reports.
484
+
485
+ ---
486
+
487
+ ## Next Steps for Development
488
+
489
+ ### Immediate Priorities
490
+ 1. Add test coverage for v2.0.0 modules (creative, integrations, advanced, SpatialInput)
491
+ 2. Complete WebGPU shader pipeline
492
+ 3. Production-harden platform integration wrappers
493
+ 4. Publish @vib3code/sdk v2.0.0 to NPM
494
+
495
+ ### Consolidation Tasks
496
+ - [ ] Audit RendererContract compliance for all 3 active systems
497
+ - [ ] Write integration tests for SpatialInputSystem profiles
498
+ - [ ] Add E2E tests for creative tooling (transitions, post-processing)
499
+ - [ ] Verify framework components (React, Vue, Svelte) with sample apps
500
+ - [ ] Document lifecycle rules in code comments
501
+
502
+ ---
503
+
504
+ ## Document References
505
+
506
+ | Document | Purpose |
507
+ |----------|---------|
508
+ | `CLAUDE.md` | Development instructions (v2.0.0 updated) |
509
+ | `DEV_TRACK.md` | Session-by-session progress |
510
+ | `DOCS/CLI_ONBOARDING.md` | Agent CLI setup |
511
+ | `DOCS/CONTROL_REFERENCE.md` | UI control parameters |
512
+ | `DOCS/RENDERER_LIFECYCLE.md` | Renderer architecture |
513
+ | `DOCS/GPU_DISPOSAL_GUIDE.md` | Memory management |
514
+ | `DOCS/SYSTEM_AUDIT_2026-01-30.md` | Full system audit (v2.0.0 updated) |
515
+ | `24-GEOMETRY-6D-ROTATION-SUMMARY.md` | Geometry encoding |
516
+
517
+ ---
518
+
519
+ *This document is the canonical system inventory. Update after significant changes.*
520
+ *Last major update: v2.0.0 — 2026-01-30*
@@ -0,0 +1,34 @@
1
+ # Telemetry export manifests
2
+
3
+ The telemetry export pipeline standardizes manifest payloads for downstream automation, QA, and observability. Each manifest is designed to be cache-friendly with deterministic hashes so CI can diff outputs without ambiguity.
4
+
5
+ ## Manifest fields
6
+ - **license**: Propagates the source license for downstream consumers.
7
+ - **themeTags**: Array of descriptors (e.g., `"neon"`, `"calm"`) describing the aesthetic intent.
8
+ - **colorPalettes**: Named palettes with ordered swatches to aid sprite sheet rendering and CSS variable generation.
9
+ - **typography**: Token block containing font families and scale presets.
10
+ - **responsiveBreakpoints**: Design-system-aligned breakpoints for layout-sensitive exports.
11
+ - **previews**: Thumbnail or sprite sheet references with deterministic hashes.
12
+ - **assets**: Asset records (path/url/name) with hashes for cache validation.
13
+ - **hash**: Top-level manifest hash used by CI for drift detection.
14
+
15
+ ## Preview generation
16
+ The telemetry director (`js/core/telemetry-director.js`) produces preview thumbnails or sprite sheets for representative scenes/states.
17
+
18
+ 1. Collect scenes from the pack (`pack.scenes` or `pack.states`).
19
+ 2. For each scene, render via `renderer.captureFrame(scene)` if available; otherwise, emit a metadata-only placeholder data URL.
20
+ 3. Attach preview records to the manifest with computed hashes.
21
+
22
+ ## CLI/export integration
23
+ Use `exportTelemetryManifest` from `tools/telemetry/manifestPipeline.js` to build manifests in export pipelines. The helper returns:
24
+
25
+ - `manifest`: enriched manifest payload.
26
+ - `hash`: deterministic hash of the manifest.
27
+ - `summary`: human-readable lines for CLI output including asset and preview hashes.
28
+
29
+ Include the summary in CLI logs to make cache validation and diffing easier for CI and agent workflows.
30
+
31
+ ### Agentic CLI usage
32
+ For a step-by-step command runbook (setup, lint, export, and verification), see [`DOCS/CLI_ONBOARDING.md`](DOCS/CLI_ONBOARDING.md).
33
+
34
+ CLI entry point: `tools/cli/agent-cli.js` supports `telemetry:export` with `--json` and `--non-interactive` flags for agent pipelines.
@@ -0,0 +1,38 @@
1
+ # WebGPU status and testing requirements
2
+
3
+ This document records the current WebGPU backend state, what is implemented, and what is required
4
+ to validate it in local development or CI.
5
+
6
+ ## Current status
7
+ - **Backend scaffold:** `WebGPUBackend` initializes adapter/device, configures the canvas, manages
8
+ resize, and supports a clear-pass `renderFrame()` path.
9
+ - **Async context creation:** `createRenderContextAsync()` can instantiate WebGPU contexts using
10
+ `{ backend: 'webgpu' }`.
11
+ - **Resource tracking:** depth textures are registered in the shared `RenderResourceRegistry`.
12
+
13
+ ## What is still needed
14
+ 1. **Pipeline parity:** implement basic shader pipelines (vertex/fragment) and buffer binding that
15
+ match the WebGL backend command flow.
16
+ 2. **Command buffer bridge:** map existing render commands to WebGPU render passes.
17
+ 3. **Feature gating:** add host-app controls to toggle WebGPU via feature flags.
18
+ 4. **Diagnostics:** add per-frame stats and resource delta reporting for WebGPU.
19
+
20
+ ## Testing requirements
21
+ ### Local smoke test
22
+ Prerequisites:
23
+ - A browser with WebGPU enabled (Chrome/Edge with `chrome://flags/#enable-unsafe-webgpu`, or a
24
+ Chromium build with WebGPU support).
25
+ - A device with WebGPU-capable GPU drivers.
26
+
27
+ Suggested smoke flow:
28
+ 1. Create a canvas and call `createRenderContextAsync(canvas, { backend: 'webgpu' })`.
29
+ 2. Call `backend.renderFrame({ clearColor: [0.1, 0.1, 0.2, 1] })` and confirm the canvas clears.
30
+ 3. Resize the canvas and ensure the clear pass still succeeds.
31
+
32
+ ### CI validation
33
+ - WebGPU cannot be reliably validated in headless CI without GPU support.
34
+ - CI should instead run WebGL tests and lint/static checks; keep a manual WebGPU smoke checklist.
35
+
36
+ ## File locations
37
+ - `src/render/backends/WebGPUBackend.js`
38
+ - `src/render/index.js` (`createRenderContextAsync`)