@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.
- package/CHANGELOG.md +118 -0
- package/DOCS/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +34 -0
- package/DOCS/CI_TESTING.md +38 -0
- package/DOCS/CLI_ONBOARDING.md +75 -0
- package/DOCS/CONTROL_REFERENCE.md +64 -0
- package/DOCS/DEV_TRACK_ANALYSIS.md +77 -0
- package/DOCS/DEV_TRACK_PLAN_2026-01-07.md +42 -0
- package/DOCS/DEV_TRACK_SESSION_2026-01-31.md +220 -0
- package/DOCS/ENV_SETUP.md +189 -0
- package/DOCS/EXPORT_FORMATS.md +417 -0
- package/DOCS/GPU_DISPOSAL_GUIDE.md +21 -0
- package/DOCS/LICENSING_TIERS.md +275 -0
- package/DOCS/MASTER_PLAN_2026-01-31.md +570 -0
- package/DOCS/OBS_SETUP_GUIDE.md +98 -0
- package/DOCS/PROJECT_SETUP.md +66 -0
- package/DOCS/RENDERER_LIFECYCLE.md +40 -0
- package/DOCS/REPO_MANIFEST.md +121 -0
- package/DOCS/SESSION_014_PLAN.md +195 -0
- package/DOCS/SESSION_LOG_2026-01-07.md +56 -0
- package/DOCS/STRATEGIC_BLUEPRINT_2026-01-07.md +72 -0
- package/DOCS/SYSTEM_AUDIT_2026-01-30.md +738 -0
- package/DOCS/SYSTEM_INVENTORY.md +520 -0
- package/DOCS/TELEMETRY_EXPORTS.md +34 -0
- package/DOCS/WEBGPU_STATUS.md +38 -0
- package/DOCS/XR_BENCHMARKS.md +608 -0
- package/LICENSE +21 -0
- package/README.md +426 -0
- package/docs/.nojekyll +0 -0
- package/docs/01-dissolution_of_euclidean_hegemony.html +346 -0
- package/docs/02-hyperspatial_ego_death.html +346 -0
- package/docs/03-post_cartesian_sublime.html +346 -0
- package/docs/04-crystalline_void_meditation.html +346 -0
- package/docs/05-quantum_decoherence_ballet.html +346 -0
- package/docs/06-dissolution_of_euclidean_hegemony.html +346 -0
- package/docs/07-hyperspatial_ego_death.html +346 -0
- package/docs/08-post_cartesian_sublime.html +346 -0
- package/docs/09-crystalline_void_meditation.html +346 -0
- package/docs/10-quantum_decoherence_ballet.html +346 -0
- package/docs/11-dissolution_of_euclidean_hegemony.html +346 -0
- package/docs/12-hyperspatial_ego_death.html +346 -0
- package/docs/13-post_cartesian_sublime.html +346 -0
- package/docs/index.html +794 -0
- package/docs/test-hub.html +441 -0
- package/docs/url-state.js +102 -0
- package/docs/vib3-exports/01-quantum-quantum-tetrahedron-lattice.html +489 -0
- package/docs/vib3-exports/02-quantum-quantum-hypersphere-matrix.html +489 -0
- package/docs/vib3-exports/03-quantum-quantum-hypertetra-fractal.html +489 -0
- package/docs/vib3-exports/04-faceted-faceted-crystal-structure.html +407 -0
- package/docs/vib3-exports/05-faceted-faceted-klein-bottle.html +407 -0
- package/docs/vib3-exports/06-faceted-faceted-hypertetra-torus.html +407 -0
- package/docs/vib3-exports/07-holographic-holographic-wave-field.html +457 -0
- package/docs/vib3-exports/08-holographic-holographic-hypersphere-sphere.html +457 -0
- package/docs/vib3-exports/09-holographic-holographic-hypertetra-crystal.html +457 -0
- package/docs/vib3-exports/index.html +238 -0
- package/docs/webgpu-live.html +702 -0
- package/package.json +367 -0
- package/src/advanced/AIPresetGenerator.js +777 -0
- package/src/advanced/MIDIController.js +703 -0
- package/src/advanced/OffscreenWorker.js +1051 -0
- package/src/advanced/WebGPUCompute.js +1051 -0
- package/src/advanced/WebXRRenderer.js +680 -0
- package/src/agent/cli/AgentCLI.js +615 -0
- package/src/agent/cli/index.js +14 -0
- package/src/agent/index.js +73 -0
- package/src/agent/mcp/MCPServer.js +950 -0
- package/src/agent/mcp/index.js +9 -0
- package/src/agent/mcp/tools.js +548 -0
- package/src/agent/telemetry/EventStream.js +669 -0
- package/src/agent/telemetry/Instrumentation.js +618 -0
- package/src/agent/telemetry/TelemetryExporters.js +427 -0
- package/src/agent/telemetry/TelemetryService.js +464 -0
- package/src/agent/telemetry/index.js +52 -0
- package/src/benchmarks/BenchmarkRunner.js +381 -0
- package/src/benchmarks/MetricsCollector.js +299 -0
- package/src/benchmarks/index.js +9 -0
- package/src/benchmarks/scenes.js +259 -0
- package/src/cli/index.js +675 -0
- package/src/config/ApiConfig.js +88 -0
- package/src/core/CanvasManager.js +217 -0
- package/src/core/ErrorReporter.js +117 -0
- package/src/core/ParameterMapper.js +333 -0
- package/src/core/Parameters.js +396 -0
- package/src/core/RendererContracts.js +200 -0
- package/src/core/UnifiedResourceManager.js +370 -0
- package/src/core/VIB3Engine.js +636 -0
- package/src/core/renderers/FacetedRendererAdapter.js +32 -0
- package/src/core/renderers/HolographicRendererAdapter.js +29 -0
- package/src/core/renderers/QuantumRendererAdapter.js +29 -0
- package/src/core/renderers/RendererLifecycleManager.js +63 -0
- package/src/creative/ColorPresetsSystem.js +980 -0
- package/src/creative/ParameterTimeline.js +1061 -0
- package/src/creative/PostProcessingPipeline.js +1113 -0
- package/src/creative/TransitionAnimator.js +683 -0
- package/src/export/CSSExporter.js +226 -0
- package/src/export/CardGeneratorBase.js +279 -0
- package/src/export/ExportManager.js +580 -0
- package/src/export/FacetedCardGenerator.js +279 -0
- package/src/export/HolographicCardGenerator.js +543 -0
- package/src/export/LottieExporter.js +552 -0
- package/src/export/QuantumCardGenerator.js +315 -0
- package/src/export/SVGExporter.js +519 -0
- package/src/export/ShaderExporter.js +903 -0
- package/src/export/TradingCardGenerator.js +3055 -0
- package/src/export/TradingCardManager.js +181 -0
- package/src/export/VIB3PackageExporter.js +559 -0
- package/src/export/index.js +14 -0
- package/src/export/systems/TradingCardSystemFaceted.js +494 -0
- package/src/export/systems/TradingCardSystemHolographic.js +452 -0
- package/src/export/systems/TradingCardSystemQuantum.js +411 -0
- package/src/faceted/FacetedSystem.js +963 -0
- package/src/features/CollectionManager.js +433 -0
- package/src/gallery/CollectionManager.js +240 -0
- package/src/gallery/GallerySystem.js +485 -0
- package/src/geometry/GeometryFactory.js +314 -0
- package/src/geometry/GeometryLibrary.js +72 -0
- package/src/geometry/buffers/BufferBuilder.js +338 -0
- package/src/geometry/buffers/index.js +18 -0
- package/src/geometry/generators/Crystal.js +420 -0
- package/src/geometry/generators/Fractal.js +298 -0
- package/src/geometry/generators/KleinBottle.js +197 -0
- package/src/geometry/generators/Sphere.js +192 -0
- package/src/geometry/generators/Tesseract.js +160 -0
- package/src/geometry/generators/Tetrahedron.js +225 -0
- package/src/geometry/generators/Torus.js +304 -0
- package/src/geometry/generators/Wave.js +341 -0
- package/src/geometry/index.js +142 -0
- package/src/geometry/warp/HypersphereCore.js +211 -0
- package/src/geometry/warp/HypertetraCore.js +386 -0
- package/src/geometry/warp/index.js +57 -0
- package/src/holograms/HolographicVisualizer.js +1073 -0
- package/src/holograms/RealHolographicSystem.js +966 -0
- package/src/holograms/variantRegistry.js +69 -0
- package/src/integrations/FigmaPlugin.js +854 -0
- package/src/integrations/OBSMode.js +754 -0
- package/src/integrations/ThreeJsPackage.js +660 -0
- package/src/integrations/TouchDesignerExport.js +552 -0
- package/src/integrations/frameworks/Vib3React.js +591 -0
- package/src/integrations/frameworks/Vib3Svelte.js +654 -0
- package/src/integrations/frameworks/Vib3Vue.js +628 -0
- package/src/llm/LLMParameterInterface.js +240 -0
- package/src/llm/LLMParameterUI.js +577 -0
- package/src/math/Mat4x4.js +708 -0
- package/src/math/Projection.js +341 -0
- package/src/math/Rotor4D.js +637 -0
- package/src/math/Vec4.js +476 -0
- package/src/math/constants.js +164 -0
- package/src/math/index.js +68 -0
- package/src/math/projections.js +54 -0
- package/src/math/rotations.js +196 -0
- package/src/quantum/QuantumEngine.js +906 -0
- package/src/quantum/QuantumVisualizer.js +1103 -0
- package/src/reactivity/ReactivityConfig.js +499 -0
- package/src/reactivity/ReactivityManager.js +586 -0
- package/src/reactivity/SpatialInputSystem.js +1783 -0
- package/src/reactivity/index.js +93 -0
- package/src/render/CommandBuffer.js +465 -0
- package/src/render/MultiCanvasBridge.js +340 -0
- package/src/render/RenderCommand.js +514 -0
- package/src/render/RenderResourceRegistry.js +523 -0
- package/src/render/RenderState.js +552 -0
- package/src/render/RenderTarget.js +512 -0
- package/src/render/ShaderLoader.js +253 -0
- package/src/render/ShaderProgram.js +599 -0
- package/src/render/UnifiedRenderBridge.js +496 -0
- package/src/render/backends/WebGLBackend.js +1108 -0
- package/src/render/backends/WebGPUBackend.js +1409 -0
- package/src/render/commands/CommandBufferExecutor.js +607 -0
- package/src/render/commands/RenderCommandBuffer.js +661 -0
- package/src/render/commands/index.js +17 -0
- package/src/render/index.js +367 -0
- package/src/scene/Disposable.js +498 -0
- package/src/scene/MemoryPool.js +618 -0
- package/src/scene/Node4D.js +697 -0
- package/src/scene/ResourceManager.js +599 -0
- package/src/scene/Scene4D.js +540 -0
- package/src/scene/index.js +98 -0
- package/src/schemas/error.schema.json +84 -0
- package/src/schemas/extension.schema.json +88 -0
- package/src/schemas/index.js +214 -0
- package/src/schemas/parameters.schema.json +142 -0
- package/src/schemas/tool-pack.schema.json +44 -0
- package/src/schemas/tool-response.schema.json +127 -0
- package/src/shaders/common/fullscreen.vert.glsl +5 -0
- package/src/shaders/common/fullscreen.vert.wgsl +17 -0
- package/src/shaders/common/geometry24.glsl +65 -0
- package/src/shaders/common/geometry24.wgsl +54 -0
- package/src/shaders/common/rotation4d.glsl +85 -0
- package/src/shaders/common/rotation4d.wgsl +86 -0
- package/src/shaders/common/uniforms.glsl +44 -0
- package/src/shaders/common/uniforms.wgsl +48 -0
- package/src/shaders/faceted/faceted.frag.glsl +129 -0
- package/src/shaders/faceted/faceted.frag.wgsl +164 -0
- package/src/shaders/holographic/holographic.frag.glsl +406 -0
- package/src/shaders/holographic/holographic.frag.wgsl +185 -0
- package/src/shaders/quantum/quantum.frag.glsl +513 -0
- package/src/shaders/quantum/quantum.frag.wgsl +361 -0
- package/src/testing/ParallelTestFramework.js +519 -0
- package/src/testing/__snapshots__/exportFormats.test.js.snap +24 -0
- package/src/testing/exportFormats.test.js +8 -0
- package/src/testing/projections.test.js +14 -0
- package/src/testing/rotations.test.js +37 -0
- package/src/ui/InteractivityMenu.js +516 -0
- package/src/ui/StatusManager.js +96 -0
- package/src/ui/adaptive/renderers/webgpu/BufferLayout.ts +252 -0
- package/src/ui/adaptive/renderers/webgpu/PolytopeInstanceBuffer.ts +144 -0
- package/src/ui/adaptive/renderers/webgpu/TripleBufferedUniform.ts +170 -0
- package/src/ui/adaptive/renderers/webgpu/WebGPURenderer.ts +735 -0
- package/src/ui/adaptive/renderers/webgpu/index.ts +112 -0
- package/src/variations/VariationManager.js +431 -0
- package/src/viewer/AudioReactivity.js +505 -0
- package/src/viewer/CardBending.js +481 -0
- package/src/viewer/GalleryUI.js +832 -0
- package/src/viewer/ReactivityManager.js +590 -0
- package/src/viewer/TradingCardExporter.js +600 -0
- package/src/viewer/ViewerPortal.js +374 -0
- package/src/viewer/index.js +12 -0
- package/src/wasm/WasmLoader.js +296 -0
- package/src/wasm/index.js +132 -0
- package/tools/agentic/mcpTools.js +88 -0
- package/tools/cli/agent-cli.js +92 -0
- package/tools/export/formats.js +24 -0
- package/tools/math/rotation-baseline.mjs +64 -0
- package/tools/shader-sync-verify.js +937 -0
- package/tools/telemetry/manifestPipeline.js +141 -0
- package/tools/telemetry/telemetryEvents.js +35 -0
- package/types/adaptive-sdk.d.ts +185 -0
- package/types/advanced/AIPresetGenerator.d.ts +81 -0
- package/types/advanced/MIDIController.d.ts +100 -0
- package/types/advanced/OffscreenWorker.d.ts +82 -0
- package/types/advanced/WebGPUCompute.d.ts +52 -0
- package/types/advanced/WebXRRenderer.d.ts +77 -0
- package/types/advanced/index.d.ts +46 -0
- package/types/core/ErrorReporter.d.ts +50 -0
- package/types/core/VIB3Engine.d.ts +204 -0
- package/types/creative/ColorPresetsSystem.d.ts +91 -0
- package/types/creative/ParameterTimeline.d.ts +74 -0
- package/types/creative/PostProcessingPipeline.d.ts +109 -0
- package/types/creative/TransitionAnimator.d.ts +71 -0
- package/types/creative/index.d.ts +35 -0
- package/types/integrations/FigmaPlugin.d.ts +46 -0
- package/types/integrations/OBSMode.d.ts +74 -0
- package/types/integrations/ThreeJsPackage.d.ts +62 -0
- package/types/integrations/TouchDesignerExport.d.ts +36 -0
- package/types/integrations/Vib3React.d.ts +74 -0
- package/types/integrations/Vib3Svelte.d.ts +63 -0
- package/types/integrations/Vib3Vue.d.ts +55 -0
- package/types/integrations/index.d.ts +52 -0
- package/types/reactivity/SpatialInputSystem.d.ts +173 -0
- package/types/reactivity/index.d.ts +394 -0
- package/types/render/CommandBuffer.d.ts +169 -0
- package/types/render/RenderCommand.d.ts +312 -0
- package/types/render/RenderState.d.ts +279 -0
- package/types/render/RenderTarget.d.ts +254 -0
- package/types/render/ShaderProgram.d.ts +277 -0
- package/types/render/UnifiedRenderBridge.d.ts +143 -0
- package/types/render/WebGLBackend.d.ts +168 -0
- package/types/render/WebGPUBackend.d.ts +186 -0
- package/types/render/index.d.ts +141 -0
|
@@ -0,0 +1,570 @@
|
|
|
1
|
+
# VIB3+ CORE — Master Plan & Full Audit
|
|
2
|
+
|
|
3
|
+
**Date**: January 31, 2026
|
|
4
|
+
**Version**: 2.0.0 (`@vib3code/sdk`)
|
|
5
|
+
**Owner**: Clear Seas Solutions LLC
|
|
6
|
+
**Status**: Engine complete. Product launch pending.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Executive Summary
|
|
11
|
+
|
|
12
|
+
The codebase is complete. The product isn't. You have 95,000+ lines of working engine code across 570+ files, but the gap between "engine" and "product people adopt" is **distribution, onboarding, and ecosystem**. Phases A–D of the v2.0.0 roadmap shipped all planned features. This document captures everything that remains — from the previous session's Phase 5 plan, to the full codebase audit, to new items discovered during review — organized into a single actionable plan.
|
|
13
|
+
|
|
14
|
+
**What's done**:
|
|
15
|
+
- 3 active visualization systems (Quantum, Faceted, Holographic) — all working
|
|
16
|
+
- 24-geometry system with 6D rotation — all working
|
|
17
|
+
- Dual GPU backends (WebGL primary, WebGPU secondary) — both functional
|
|
18
|
+
- SpatialInputSystem (8 input sources, 6 profiles) — complete
|
|
19
|
+
- Creative Tooling (color presets, transitions, post-processing, timeline) — complete
|
|
20
|
+
- Platform Integrations (React, Vue, Svelte, Figma, Three.js, TouchDesigner, OBS) — code complete
|
|
21
|
+
- Advanced Features (WebXR, WebGPU Compute, MIDI, AI Presets, OffscreenWorker) — code complete
|
|
22
|
+
- MCP Agentic Control (14 tools) — working
|
|
23
|
+
- C++ WASM Core with JS fallback — working
|
|
24
|
+
- Export System (SVG, CSS, Lottie, Shader, Trading Cards, VIB3Package) — working
|
|
25
|
+
- 693+ tests passing, 34 test files
|
|
26
|
+
- 6 CI/CD workflows active
|
|
27
|
+
|
|
28
|
+
**What's not done**: Everything below.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 1. Dev Track Priorities: Expand, Launch, Scale, Integrate
|
|
33
|
+
|
|
34
|
+
### 1.1 Expand
|
|
35
|
+
|
|
36
|
+
#### CLI Scaffolding (`npx @vib3code/sdk init`)
|
|
37
|
+
- **Status**: NOT DONE
|
|
38
|
+
- **Current state**: `bin.vib3` exists in package.json pointing to `src/cli/index.js` (580 lines). CLI supports `create`, `state`, `set`, `geometry`, `system`, `randomize`, `reset`, `tools`, `validate`. But there is NO `init` command that scaffolds a new project.
|
|
39
|
+
- **Why it matters**: This is how Three.js, Vite, and every modern tool gets adopted. If someone can't go from zero to a running visualization in under 60 seconds, you lose them.
|
|
40
|
+
- **Action**: Add `vib3 init` command that creates a minimal project with `index.html`, `package.json`, and a working VIB3+ visualization. Support `--template react|vue|svelte|vanilla`.
|
|
41
|
+
- **Priority**: HIGH
|
|
42
|
+
|
|
43
|
+
#### Preset Gallery as Hosted Web App
|
|
44
|
+
- **Status**: NOT DONE
|
|
45
|
+
- **Current state**: `docs/index.html` is a static gallery of 13 algorithmic art HTML pages. No shareable permalinks. No embed codes. No user-created presets.
|
|
46
|
+
- **Why it matters**: Not just a docs page. A shareable, embeddable gallery where each preset has a permalink. Think CodePen but for 4D visualizations. This becomes your viral loop.
|
|
47
|
+
- **Action**: Build a gallery app where each visualization state gets a unique URL (`vib3.app/?geometry=16&hue=180&system=quantum`), embed snippet, and social share card.
|
|
48
|
+
- **Priority**: HIGH
|
|
49
|
+
|
|
50
|
+
#### TypeScript Types
|
|
51
|
+
- **Status**: PARTIALLY DONE — Critical gaps
|
|
52
|
+
- **Current state**: `types/adaptive-sdk.d.ts` referenced in package.json line 7 **DOES NOT EXIST**. 11 type files exist (2,527 lines total) covering `core/VIB3Engine.d.ts`, `reactivity/index.d.ts`, and `render/*.d.ts`.
|
|
53
|
+
- **Missing types for v2.0.0 modules**:
|
|
54
|
+
- `SpatialInputSystem` — no types
|
|
55
|
+
- `creative/*` (ColorPresetsSystem, TransitionAnimator, PostProcessingPipeline, ParameterTimeline) — no types
|
|
56
|
+
- `integrations/*` (React, Vue, Svelte, Figma, Three.js, TouchDesigner, OBS) — no types
|
|
57
|
+
- `advanced/*` (WebXR, WebGPU Compute, MIDI, AI Presets, OffscreenWorker) — no types
|
|
58
|
+
- `agent/mcp/*` — no types
|
|
59
|
+
- **Why it matters**: TypeScript users won't adopt without autocomplete. The main entry point's types field points to a file that doesn't exist — `import` from `@vib3code/sdk` gives no type info at all.
|
|
60
|
+
- **Action**: Create `types/adaptive-sdk.d.ts` as a barrel that re-exports all module types. Add `.d.ts` files for all v2.0.0 modules.
|
|
61
|
+
- **Priority**: HIGH
|
|
62
|
+
|
|
63
|
+
### 1.2 Launch
|
|
64
|
+
|
|
65
|
+
#### npm Publish
|
|
66
|
+
- **Status**: NOT DONE
|
|
67
|
+
- **Current state**: `package.json` declares `@vib3code/sdk` v2.0.0 with 80+ export paths. No publish scripts. No CI automation. No `prepublishOnly` hook. Package has never been published.
|
|
68
|
+
- **Why it matters**: `@vib3code/sdk` needs to be on npm. That's the launch. Everything else is secondary.
|
|
69
|
+
- **Action**: Add `prepublishOnly` script (runs tests + build), create `.github/workflows/publish.yml` for automated publish on Git tags.
|
|
70
|
+
- **Priority**: CRITICAL
|
|
71
|
+
|
|
72
|
+
#### GitHub Pages Demo Site
|
|
73
|
+
- **Status**: PARTIALLY DONE — Needs polish
|
|
74
|
+
- **Current state**: `docs/` has 26 HTML pages deployed to GitHub Pages. Root `index.html` is a meta-refresh redirect (3-second delay to `docs/webgpu-live.html`). Not a landing page.
|
|
75
|
+
- **Why it matters**: Polish one into a proper landing page with live interactive demos, not a redirect. First impressions matter.
|
|
76
|
+
- **Action**: Replace `index.html` redirect with a proper landing page. Include live embedded demo, feature highlights, quick-start code snippet, and links to docs/gallery.
|
|
77
|
+
- **Priority**: HIGH
|
|
78
|
+
|
|
79
|
+
#### One Killer Integration Example Per Framework
|
|
80
|
+
- **Status**: NOT DONE
|
|
81
|
+
- **Current state**: Integration code exists in `src/integrations/` but no standalone example apps. `examples/` directory has Flutter demo and two standalone HTML demos only.
|
|
82
|
+
- **Why it matters**: A React app, a Three.js scene, a TouchDesigner patch. Each in its own example directory with its own README. Developers evaluate tools by running examples.
|
|
83
|
+
- **Action**: Create `examples/react/`, `examples/vue/`, `examples/svelte/`, `examples/threejs/`, `examples/touchdesigner/` with minimal working apps.
|
|
84
|
+
- **Priority**: HIGH
|
|
85
|
+
|
|
86
|
+
### 1.3 Scale
|
|
87
|
+
|
|
88
|
+
#### CDN Distribution
|
|
89
|
+
- **Status**: NOT DONE
|
|
90
|
+
- **Current state**: Vite config outputs ESM bundles only. No UMD/IIFE build for `<script src="https://unpkg.com/@vib3code/sdk">`. Creative coders who don't use npm can't use VIB3+.
|
|
91
|
+
- **Why it matters**: `<script src="https://unpkg.com/@vib3code/sdk">` for people who don't use npm. This is how many creative coders work.
|
|
92
|
+
- **Action**: Add UMD/IIFE build target to vite.config.js. Expose `window.VIB3` global. Test with plain HTML `<script>` tag.
|
|
93
|
+
- **Priority**: MEDIUM
|
|
94
|
+
|
|
95
|
+
#### WebGPU as Primary Path
|
|
96
|
+
- **Status**: NOT DONE — WebGL is primary, WebGPU is secondary
|
|
97
|
+
- **Current state**: `UnifiedRenderBridge` tries WebGPU first but WebGL is the tested/default path. WebGPU backend (1,409 lines) is functional but not actively tested in CI with real GPU. Playwright tests run Chromium only.
|
|
98
|
+
- **Why it matters**: WebGPU is shipping in all major browsers now. Make it the default with WebGL as fallback, not the other way around. Performance will be your differentiator.
|
|
99
|
+
- **Action**: Flip default priority in UnifiedRenderBridge. Add WebGPU-specific CI tests. Benchmark WebGL vs WebGPU and document results.
|
|
100
|
+
- **Priority**: MEDIUM
|
|
101
|
+
|
|
102
|
+
#### WASM Build Pipeline
|
|
103
|
+
- **Status**: PARTIALLY DONE — Manual build only
|
|
104
|
+
- **Current state**: `cpp/build.sh` (130 lines) supports release/debug/native/clean modes. Requires locally-installed Emscripten SDK. Pre-built `wasm/vib3_core.{js,wasm}` committed to repo. No CI workflow compiles WASM.
|
|
105
|
+
- **Why it matters**: The C++ core needs a reproducible build. Emscripten in CI, pre-built `.wasm` in the npm package. Users should never need to compile C++.
|
|
106
|
+
- **Action**: Add WASM build step to CI. Include pre-built `.wasm` in npm package via `files` field. Document the build process.
|
|
107
|
+
- **Priority**: MEDIUM
|
|
108
|
+
|
|
109
|
+
### 1.4 Integrate into Workflows
|
|
110
|
+
|
|
111
|
+
#### Figma Plugin Published to Community
|
|
112
|
+
- **Status**: NOT DONE
|
|
113
|
+
- **Current state**: `src/integrations/FigmaPlugin.js` (854 lines) generates complete plugin manifest, code, and UI. But it's a code generator, not a published plugin.
|
|
114
|
+
- **Why it matters**: You have the code. Ship the plugin. The Figma Community is where designers discover tools.
|
|
115
|
+
- **Action**: Generate the plugin bundle, test in Figma Dev Mode, publish to Figma Community.
|
|
116
|
+
- **Priority**: MEDIUM
|
|
117
|
+
|
|
118
|
+
#### OBS Plugin Documented with Screenshots
|
|
119
|
+
- **Status**: NOT DONE
|
|
120
|
+
- **Current state**: `src/integrations/OBSMode.js` (754 lines) implements transparent background + browser source mode. No visual documentation.
|
|
121
|
+
- **Why it matters**: VJs and streamers won't read API docs. They need a 5-step visual guide with screenshots.
|
|
122
|
+
- **Action**: Create `DOCS/OBS_SETUP_GUIDE.md` with screenshots showing OBS configuration step by step.
|
|
123
|
+
- **Priority**: LOW-MEDIUM
|
|
124
|
+
|
|
125
|
+
#### Storybook
|
|
126
|
+
- **Status**: NOT DONE — Broken setup
|
|
127
|
+
- **Current state**: Storybook scripts and devDependencies exist in package.json (`@storybook/html-vite ^8.1.6`). But `.storybook/` config directory **DOES NOT EXIST**. Running `npm run storybook` will fail.
|
|
128
|
+
- **Why it matters**: This is how design system teams evaluate tools. A working Storybook with all geometry variants, color presets, and system demos is a powerful evaluation tool.
|
|
129
|
+
- **Action**: Create `.storybook/main.js` and `.storybook/preview.js`. Add stories for each visualization system, geometry variant, and creative tool.
|
|
130
|
+
- **Priority**: LOW-MEDIUM
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 2. Low-Hanging Fruit
|
|
135
|
+
|
|
136
|
+
These are high-impact, low-effort improvements. Audit status for each:
|
|
137
|
+
|
|
138
|
+
### 2.1 Add Root LICENSE File
|
|
139
|
+
- **Status**: NOT DONE
|
|
140
|
+
- **Audit**: No `LICENSE`, `LICENSE.md`, or `LICENSE.txt` exists. `package.json` declares `"license": "SEE LICENSE IN DOCS/LICENSE_ATTESTATION_PROFILE_CATALOG.md"` but that file was not found either.
|
|
141
|
+
- **Why it matters**: Companies won't touch code without a clear license. This blocks all adoption.
|
|
142
|
+
- **Action**: Create root `LICENSE` file. Pick MIT for community (or dual-license for commercial) and ship it.
|
|
143
|
+
- **Priority**: CRITICAL — Unblocks everything
|
|
144
|
+
|
|
145
|
+
### 2.2 Fix `index.html` Entry Point
|
|
146
|
+
- **Status**: NOT DONE — Currently a meta-refresh redirect
|
|
147
|
+
- **Audit**: `index.html` does `<meta http-equiv="refresh" content="3; url=docs/webgpu-live.html">` with fallback links. Styled but not a real landing page.
|
|
148
|
+
- **Why it matters**: First impressions matter. A 3-second redirect is not a product experience.
|
|
149
|
+
- **Action**: Replace with proper landing page or at minimum a clean hub with live demo embed.
|
|
150
|
+
- **Priority**: HIGH
|
|
151
|
+
|
|
152
|
+
### 2.3 Verify 80+ Package Exports
|
|
153
|
+
- **Status**: BROKEN — 14 broken export paths found
|
|
154
|
+
- **Audit**: The following exports reference files that DO NOT EXIST:
|
|
155
|
+
| Export Path | Missing File |
|
|
156
|
+
|-------------|-------------|
|
|
157
|
+
| `./` (types) | `types/adaptive-sdk.d.ts` |
|
|
158
|
+
| `./ui/adaptive/renderers/webgpu` | `src/ui/adaptive/renderers/webgpu/index.ts` |
|
|
159
|
+
| `./quaternion` | `src/ui/adaptive/renderers/ShaderQuaternionSynchronizer.js` |
|
|
160
|
+
| `./sensors` | `src/ui/adaptive/SensoryInputBridge.js` |
|
|
161
|
+
| `./core/quaternion` | `src/core/quaternion/index.ts` |
|
|
162
|
+
| `./core/quaternion/poseSchema` | `src/core/quaternion/poseSchema.ts` |
|
|
163
|
+
| `./core/quaternion/registry` | `src/core/quaternion/registry.ts` |
|
|
164
|
+
| `./ui/adaptive/renderers/pose-registry` | `src/ui/adaptive/renderers/QuaternionPoseRegistrySynchronizer.ts` |
|
|
165
|
+
| `./ui/adaptive/renderers/pose-monitor` | `src/ui/adaptive/renderers/PoseReliabilityMonitor.ts` |
|
|
166
|
+
| `./ui/adaptive/renderers/pose-confidence` | `src/ui/adaptive/renderers/poseConfidence.ts` |
|
|
167
|
+
| `./ui/adaptive/localization` | `src/ui/adaptive/localization/index.ts` |
|
|
168
|
+
| `./product/telemetry/facade` | `src/product/telemetry/createTelemetryFacade.js` |
|
|
169
|
+
| `./product/telemetry/reference-providers` | `src/product/telemetry/providers/referenceTelemetryProviders.js` |
|
|
170
|
+
| Types references | `types/product/telemetry/*.d.ts` (entire directory) |
|
|
171
|
+
- **Why it matters**: One broken import kills trust. `import { X } from '@vib3code/sdk/quaternion'` will crash at runtime.
|
|
172
|
+
- **Action**: Remove dead exports (quaternion, pose, product/telemetry, sensors, localization) or implement the missing modules. Verify every remaining path resolves.
|
|
173
|
+
- **Priority**: CRITICAL — Must fix before npm publish
|
|
174
|
+
|
|
175
|
+
### 2.4 Add `engines` Field to package.json
|
|
176
|
+
- **Status**: DONE
|
|
177
|
+
- **Audit**: `"engines": { "node": ">=18.19.0" }` exists at line 354.
|
|
178
|
+
- **No action needed**.
|
|
179
|
+
|
|
180
|
+
### 2.5 Create CHANGELOG.md
|
|
181
|
+
- **Status**: NOT DONE
|
|
182
|
+
- **Audit**: No `CHANGELOG.md`, `CHANGELOG.txt`, or `HISTORY.md` exists anywhere in the project.
|
|
183
|
+
- **Why it matters**: You've been versioning but there's no changelog. This is trivial to write and signals professionalism.
|
|
184
|
+
- **Action**: Create `CHANGELOG.md` covering v1.0.0 through v2.0.0 changes.
|
|
185
|
+
- **Priority**: MEDIUM
|
|
186
|
+
|
|
187
|
+
### 2.6 Screenshot/GIF Assets in README
|
|
188
|
+
- **Status**: NOT DONE
|
|
189
|
+
- **Audit**: README.md contains only 3 SVG badge shields. Zero embedded screenshots, GIFs, or videos. No `/assets`, `/images`, or `/screenshots` directories.
|
|
190
|
+
- **Why it matters**: A picture of a 4D tesseract rotating is worth more than any amount of API documentation for getting people interested.
|
|
191
|
+
- **Action**: Record 30-second demo videos/GIFs of each system. Embed in README. Create `assets/` directory for media.
|
|
192
|
+
- **Priority**: HIGH
|
|
193
|
+
|
|
194
|
+
### 2.7 Error Messages Audit
|
|
195
|
+
- **Status**: PARTIALLY DONE
|
|
196
|
+
- **Audit results**:
|
|
197
|
+
| Scenario | Handling | Quality |
|
|
198
|
+
|----------|----------|---------|
|
|
199
|
+
| WebGPU unavailable | Falls back to WebGL via UnifiedRenderBridge | GOOD |
|
|
200
|
+
| WASM fails to load | Falls back to JS math modules, 10s timeout | EXCELLENT |
|
|
201
|
+
| AudioContext blocked | Returns `false`, emits error event | PARTIAL — no silent mode |
|
|
202
|
+
| WebGL unavailable | Draws "WebGL Required" text on canvas | GOOD |
|
|
203
|
+
| WebGPU device error | `console.error` only, not wired to telemetry | GAP |
|
|
204
|
+
- **Action**: Wire WebGPU device errors to telemetry. Add silent/fallback mode for audio. Ensure all error states produce user-friendly messages.
|
|
205
|
+
- **Priority**: MEDIUM
|
|
206
|
+
|
|
207
|
+
### 2.8 Add `npm run dev` Alias
|
|
208
|
+
- **Status**: NOT DONE
|
|
209
|
+
- **Audit**: Only `"dev:web": "vite --open"` exists. No `"dev"` alias.
|
|
210
|
+
- **Why it matters**: Most people type `npm run dev`. The `:web` suffix adds friction.
|
|
211
|
+
- **Action**: Add `"dev": "vite --open"` to scripts.
|
|
212
|
+
- **Priority**: LOW — Trivial fix
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## 3. Testing, Feedback, and Infrastructure for Beta
|
|
217
|
+
|
|
218
|
+
### 3.1 Testing Gaps to Close
|
|
219
|
+
|
|
220
|
+
#### Unit Tests for v2.0.0 Modules
|
|
221
|
+
- **Status**: NOT DONE — 15,512 lines of new code with zero test coverage
|
|
222
|
+
- **Audit**: The following v2.0.0 files have NO tests:
|
|
223
|
+
| Module | File | Lines | Tests |
|
|
224
|
+
|--------|------|-------|-------|
|
|
225
|
+
| SpatialInputSystem | `src/reactivity/SpatialInputSystem.js` | 1,783 | NONE |
|
|
226
|
+
| ColorPresetsSystem | `src/creative/ColorPresetsSystem.js` | 980 | NONE |
|
|
227
|
+
| TransitionAnimator | `src/creative/TransitionAnimator.js` | 683 | NONE |
|
|
228
|
+
| PostProcessingPipeline | `src/creative/PostProcessingPipeline.js` | 1,113 | NONE |
|
|
229
|
+
| ParameterTimeline | `src/creative/ParameterTimeline.js` | 1,061 | NONE |
|
|
230
|
+
| Vib3React | `src/integrations/frameworks/Vib3React.js` | 591 | NONE |
|
|
231
|
+
| Vib3Vue | `src/integrations/frameworks/Vib3Vue.js` | 628 | NONE |
|
|
232
|
+
| Vib3Svelte | `src/integrations/frameworks/Vib3Svelte.js` | 654 | NONE |
|
|
233
|
+
| FigmaPlugin | `src/integrations/FigmaPlugin.js` | 854 | NONE |
|
|
234
|
+
| ThreeJsPackage | `src/integrations/ThreeJsPackage.js` | 660 | NONE |
|
|
235
|
+
| TouchDesignerExport | `src/integrations/TouchDesignerExport.js` | 552 | NONE |
|
|
236
|
+
| OBSMode | `src/integrations/OBSMode.js` | 754 | NONE |
|
|
237
|
+
| WebXRRenderer | `src/advanced/WebXRRenderer.js` | 680 | NONE |
|
|
238
|
+
| WebGPUCompute | `src/advanced/WebGPUCompute.js` | 1,051 | NONE |
|
|
239
|
+
| MIDIController | `src/advanced/MIDIController.js` | 703 | NONE |
|
|
240
|
+
| AIPresetGenerator | `src/advanced/AIPresetGenerator.js` | 777 | NONE |
|
|
241
|
+
| OffscreenWorker | `src/advanced/OffscreenWorker.js` | 1,051 | NONE |
|
|
242
|
+
| shader-sync-verify | `tools/shader-sync-verify.js` | 937 | NONE |
|
|
243
|
+
- **Priority**: HIGH
|
|
244
|
+
|
|
245
|
+
#### Math Library Edge Cases
|
|
246
|
+
- **Status**: NOT DONE
|
|
247
|
+
- **Why it matters**: NaN inputs, zero vectors, degenerate rotors. The math is correct but you need proof it's robust. Geometric algebra has subtle normalization issues.
|
|
248
|
+
- **Action**: Add edge-case tests for Vec4, Mat4x4, Rotor4D, Projection with NaN, Infinity, zero, and denormalized inputs.
|
|
249
|
+
- **Priority**: MEDIUM
|
|
250
|
+
|
|
251
|
+
#### Cross-Browser Matrix
|
|
252
|
+
- **Status**: NOT DONE — Chromium only
|
|
253
|
+
- **Audit**: `playwright.config.js` defines a single project: `chromium` with `Desktop Chrome` device. No Firefox, Safari, or mobile browser projects.
|
|
254
|
+
- **Why it matters**: WebGPU support varies significantly across browsers. Safari has different WebGL quirks. You need proof it works everywhere.
|
|
255
|
+
- **Action**: Add Firefox and WebKit projects to Playwright config. Test WebGPU on Chrome, WebGL fallback on Firefox/Safari.
|
|
256
|
+
- **Priority**: HIGH for beta
|
|
257
|
+
|
|
258
|
+
#### Mobile Testing
|
|
259
|
+
- **Status**: NOT DONE
|
|
260
|
+
- **Why it matters**: DeviceOrientation, touch input, gyroscope — these are core features of SpatialInputSystem. You need real device testing or at minimum BrowserStack/Sauce Labs in CI.
|
|
261
|
+
- **Action**: Add mobile browser projects to Playwright. Consider BrowserStack integration for real device testing.
|
|
262
|
+
- **Priority**: MEDIUM
|
|
263
|
+
|
|
264
|
+
#### Performance Benchmarks as Tests
|
|
265
|
+
- **Status**: PARTIALLY DONE — Benchmarks exist, no thresholds
|
|
266
|
+
- **Audit**: `benchmarks.yml` workflow exists. `src/benchmarks/BenchmarkRunner.js` and `MetricsCollector.js` implemented. But benchmarks don't fail CI if frame time exceeds thresholds.
|
|
267
|
+
- **Action**: Add assertion thresholds to benchmark runner. Fail CI on regression.
|
|
268
|
+
- **Priority**: MEDIUM
|
|
269
|
+
|
|
270
|
+
#### Accessibility Audit
|
|
271
|
+
- **Status**: NOT DONE — Zero accessibility support
|
|
272
|
+
- **Audit**: Zero occurrences of `prefers-reduced-motion` in the entire codebase. Zero `aria-` attributes. No keyboard focus management. No screen reader support.
|
|
273
|
+
- **Why it matters**: `prefers-reduced-motion` should disable or slow animations. Keyboard navigation matters for all interactive controls.
|
|
274
|
+
- **Action**: Add `@media (prefers-reduced-motion: reduce)` CSS rules. Add ARIA labels to interactive UI elements. Document keyboard shortcuts in accessible format.
|
|
275
|
+
- **Priority**: MEDIUM
|
|
276
|
+
|
|
277
|
+
#### Memory Leak Testing
|
|
278
|
+
- **Status**: NOT DONE — But cleanup patterns are comprehensive
|
|
279
|
+
- **Audit**: Strong `destroy()`/`dispose()` patterns across all systems. Guard flags prevent double-destruction. WebGL resources explicitly deleted. Workers properly terminated. However, no automated memory leak detection tests exist.
|
|
280
|
+
- **Gap found**: `SpatialInputSystem` has no explicit `destroy()` method. Inconsistent naming between `destroy()` and `dispose()` across modules.
|
|
281
|
+
- **Action**: Add memory leak detection test (run engine for N minutes, switch systems, measure heap). Standardize cleanup method naming. Add `destroy()` to SpatialInputSystem.
|
|
282
|
+
- **Priority**: MEDIUM
|
|
283
|
+
|
|
284
|
+
### 3.2 Feedback Infrastructure
|
|
285
|
+
|
|
286
|
+
#### GitHub Discussions
|
|
287
|
+
- **Status**: NOT DONE
|
|
288
|
+
- **Audit**: No `.github/discussions.yml` or discussion configuration. Only `.github/workflows/` exists.
|
|
289
|
+
- **Action**: Enable GitHub Discussions for the repo. Create categories: Q&A, Showcases, Feature Requests.
|
|
290
|
+
- **Priority**: LOW-MEDIUM
|
|
291
|
+
|
|
292
|
+
#### Error Telemetry (opt-in)
|
|
293
|
+
- **Status**: PARTIALLY DONE
|
|
294
|
+
- **Audit**: `TelemetryService.js` (464 lines) has OpenTelemetry-compatible event tracing with span tracking, structured events, and multiple exporters (Prometheus, JSON, NDJSON, Console). But no `window.onerror` crash reporter for end-user error collection.
|
|
295
|
+
- **Action**: Add opt-in `window.onerror` / `window.onunhandledrejection` reporter that sends anonymized crash data. Must be off by default.
|
|
296
|
+
- **Priority**: LOW-MEDIUM
|
|
297
|
+
|
|
298
|
+
#### Public Roadmap
|
|
299
|
+
- **Status**: NOT DONE
|
|
300
|
+
- **Action**: Create GitHub Projects board. Let potential users see what's coming and vote.
|
|
301
|
+
- **Priority**: LOW
|
|
302
|
+
|
|
303
|
+
#### Discord Community
|
|
304
|
+
- **Status**: NOT DONE
|
|
305
|
+
- **Why it matters**: Creative coders live in Discord. You need a channel for real-time feedback during beta.
|
|
306
|
+
- **Action**: Create Discord server with channels: #general, #showcase, #bugs, #feature-requests, #dev.
|
|
307
|
+
- **Priority**: LOW-MEDIUM
|
|
308
|
+
|
|
309
|
+
### 3.3 Infrastructure
|
|
310
|
+
|
|
311
|
+
#### Automated npm Publish from CI
|
|
312
|
+
- **Status**: NOT DONE
|
|
313
|
+
- **Audit**: No publish workflow. No `prepublishOnly` script. No release automation of any kind.
|
|
314
|
+
- **Action**: Create `.github/workflows/publish.yml` triggered by Git tags. Flow: tag → CI builds → tests → publishes to npm. Add `prepublishOnly: "npm test && npm run build:web"`.
|
|
315
|
+
- **Priority**: CRITICAL
|
|
316
|
+
|
|
317
|
+
#### Canary/Nightly Builds
|
|
318
|
+
- **Status**: NOT DONE
|
|
319
|
+
- **Audit**: No scheduled workflows. All workflows triggered by push or manual dispatch.
|
|
320
|
+
- **Action**: Add workflow publishing `@vib3code/sdk@canary` on every main branch commit. Power users test bleeding edge.
|
|
321
|
+
- **Priority**: LOW-MEDIUM
|
|
322
|
+
|
|
323
|
+
#### CDN with Versioning
|
|
324
|
+
- **Status**: NOT DONE — Depends on npm publish
|
|
325
|
+
- **Why it matters**: unpkg and jsDelivr automatically work with npm packages. Once published, CDN URLs work for free.
|
|
326
|
+
- **Action**: After npm publish, verify `https://unpkg.com/@vib3code/sdk` and `https://cdn.jsdelivr.net/npm/@vib3code/sdk` work. Document CDN usage.
|
|
327
|
+
- **Priority**: MEDIUM (after npm publish)
|
|
328
|
+
|
|
329
|
+
#### Hosted Demo with URL State
|
|
330
|
+
- **Status**: NOT DONE
|
|
331
|
+
- **Audit**: Zero occurrences of `URLSearchParams`, `location.search`, or `location.hash` in any `docs/*.html` file. Demo pages don't support shareable state URLs.
|
|
332
|
+
- **Why it matters**: `vib3.app/?geometry=16&hue=180&system=quantum` — shareable URLs that reproduce exact states.
|
|
333
|
+
- **Action**: Add URL state serialization/deserialization to `docs/webgpu-live.html`. Read params on load, update URL on parameter change.
|
|
334
|
+
- **Priority**: HIGH
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## 4. Distribution, Supplemental Media, and Repo Strategy
|
|
339
|
+
|
|
340
|
+
### 4.1 Distribution Strategy
|
|
341
|
+
|
|
342
|
+
| Channel | Priority | Status | Notes |
|
|
343
|
+
|---------|----------|--------|-------|
|
|
344
|
+
| **npm** | Critical | NOT DONE | `@vib3code/sdk` — primary distribution channel |
|
|
345
|
+
| **CDN** | High | NOT DONE | unpkg/jsDelivr (automatic after npm publish) |
|
|
346
|
+
| **GitHub Releases** | High | NOT DONE | Pre-built WASM + bundles as release assets |
|
|
347
|
+
| **Figma Community** | Medium | NOT DONE | Plugin listing from `FigmaPlugin.js` |
|
|
348
|
+
| **Chrome Web Store** | Low-Medium | NOT DONE | Standalone visualizer extension |
|
|
349
|
+
| **Flutter pub.dev** | Medium | NOT DONE | If the Flutter integration matures |
|
|
350
|
+
|
|
351
|
+
### 4.2 Supplemental Media and Assets to Plan
|
|
352
|
+
|
|
353
|
+
#### 30-Second Demo Videos
|
|
354
|
+
- **Status**: NOT DONE
|
|
355
|
+
- One per system (Quantum, Faceted, Holographic). Screen captures of the actual engine running. Post on Twitter/X, embed in README.
|
|
356
|
+
|
|
357
|
+
#### Interactive Tutorial
|
|
358
|
+
- **Status**: NOT DONE
|
|
359
|
+
- A step-by-step guided experience in the browser. "Click here to change the geometry. Now drag to rotate in 4D." This is your onboarding.
|
|
360
|
+
|
|
361
|
+
#### API Reference Site
|
|
362
|
+
- **Status**: NOT DONE
|
|
363
|
+
- Generated from JSDoc/TSDoc. Host on GitHub Pages or a subdomain. The CLAUDE.md is great for AI context but humans need searchable docs.
|
|
364
|
+
|
|
365
|
+
#### Blog Post Series
|
|
366
|
+
- **Status**: NOT DONE
|
|
367
|
+
- "How 4D rotation actually works", "Building a WebGPU visualization engine", "Geometric algebra for graphics programmers". Content marketing that also attracts contributors.
|
|
368
|
+
|
|
369
|
+
#### Trading Card Showcase
|
|
370
|
+
- **Status**: PARTIALLY DONE — Generator exists, no public gallery
|
|
371
|
+
- You have `TradingCardGenerator.js` (3,054 lines) and 13 card HTML pages in `docs/`. Make a public gallery of generated cards. This is inherently shareable content.
|
|
372
|
+
|
|
373
|
+
### 4.3 Repo Strategy
|
|
374
|
+
|
|
375
|
+
Recommended multi-repo structure:
|
|
376
|
+
|
|
377
|
+
```
|
|
378
|
+
Domusgpt/vib3-core ← Engine SDK (this repo)
|
|
379
|
+
Domusgpt/vib3-docs ← Documentation site (Docusaurus/Starlight)
|
|
380
|
+
Domusgpt/vib3-examples ← Example projects (one per framework)
|
|
381
|
+
Domusgpt/vib3-site ← Marketing site / landing page
|
|
382
|
+
Domusgpt/vib3-figma-plugin ← Figma plugin (separate publish cycle)
|
|
383
|
+
Domusgpt/vib3-media ← Screenshots, videos, press kit, brand assets
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
**Why separate repos**:
|
|
387
|
+
- **vib3-docs**: Docs have a different deploy cycle than code. Fix a typo without triggering CI tests. Use Docusaurus or Starlight — they have versioned docs built in.
|
|
388
|
+
- **vib3-examples**: Each example should be independently clonable. A React developer shouldn't need to clone the whole engine to see the React example.
|
|
389
|
+
- **vib3-site**: Marketing copy, landing page, SEO. Different team/skills than engine development.
|
|
390
|
+
- **vib3-media**: Brand guidelines, logos, screenshots, video assets, press kit. Creative assets don't belong in a code repo.
|
|
391
|
+
|
|
392
|
+
**Keep in core repo**:
|
|
393
|
+
- Tests — tests and code must always be in sync
|
|
394
|
+
- CI/CD — workflows need access to source
|
|
395
|
+
- CLAUDE.md and technical docs — they're engineering context, not user docs
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## 5. Additional Issues Found in Audit (Not in Previous Plan)
|
|
400
|
+
|
|
401
|
+
These items were discovered during the full codebase audit and are NOT covered in the screenshots above.
|
|
402
|
+
|
|
403
|
+
### 5.1 Broken TypeScript Entry Point
|
|
404
|
+
- **Severity**: CRITICAL
|
|
405
|
+
- **Finding**: `package.json` line 7 declares `"types": "./types/adaptive-sdk.d.ts"` but this file does not exist. Any TypeScript consumer gets zero type information.
|
|
406
|
+
- **Action**: Create the file immediately or update the path.
|
|
407
|
+
|
|
408
|
+
### 5.2 Storybook Configuration Missing
|
|
409
|
+
- **Severity**: LOW
|
|
410
|
+
- **Finding**: `storybook` and `build:storybook` scripts exist. `@storybook/html-vite` is in devDependencies. But `.storybook/` directory does not exist. Scripts will crash.
|
|
411
|
+
- **Action**: Either create `.storybook/` config or remove the broken scripts/deps.
|
|
412
|
+
|
|
413
|
+
### 5.3 SpatialInputSystem Missing Cleanup
|
|
414
|
+
- **Severity**: MEDIUM
|
|
415
|
+
- **Finding**: `SpatialInputSystem.js` (1,783 lines) has no `destroy()` or `dispose()` method. Event listeners are registered but never explicitly cleaned up.
|
|
416
|
+
- **Action**: Add `destroy()` method that removes all event listeners and clears state.
|
|
417
|
+
|
|
418
|
+
### 5.4 Inconsistent Cleanup Method Naming
|
|
419
|
+
- **Severity**: LOW
|
|
420
|
+
- **Finding**: Some systems use `destroy()`, others use `dispose()`. HolographicVisualizer uses `destroy()`, FacetedSystem uses `dispose()`, MIDIController uses `destroy()`.
|
|
421
|
+
- **Action**: Standardize on one name (prefer `dispose()` to match the `Disposable.js` base class in `src/scene/`).
|
|
422
|
+
|
|
423
|
+
### 5.5 WebGPU Device Errors Not Wired to Telemetry
|
|
424
|
+
- **Severity**: LOW
|
|
425
|
+
- **Finding**: `WebGPUBackend.js` has `device.onuncapturederror = (event) => { console.error(...) }` but doesn't record to TelemetryService.
|
|
426
|
+
- **Action**: Wire WebGPU errors to telemetry event stream.
|
|
427
|
+
|
|
428
|
+
### 5.6 Archive Directory Bloat
|
|
429
|
+
- **Severity**: LOW
|
|
430
|
+
- **Finding**: `archive/` contains 15 directories of legacy code. This inflates repo size and clone time.
|
|
431
|
+
- **Action**: Consider moving to a separate branch or deleting entirely. Keep a release tag for historical reference.
|
|
432
|
+
|
|
433
|
+
### 5.7 Missing GitHub Community Files
|
|
434
|
+
- **Severity**: LOW
|
|
435
|
+
- **Finding**: No `CODEOWNERS`, `SECURITY.md`, `FUNDING.yml`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, issue templates, or PR templates.
|
|
436
|
+
- **Action**: Add standard community health files to `.github/`.
|
|
437
|
+
|
|
438
|
+
### 5.8 Flaky Timing Test
|
|
439
|
+
- **Severity**: LOW
|
|
440
|
+
- **Finding**: `withTiming` test sometimes fails by <1ms (documented in SESSION_014_PLAN).
|
|
441
|
+
- **Action**: Increase tolerance or use `performance.now()` with wider margins.
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## 6. Complete Priority Roadmap
|
|
446
|
+
|
|
447
|
+
### Phase E-1: Pre-Launch Blockers (Do First)
|
|
448
|
+
|
|
449
|
+
| # | Item | Status | Effort |
|
|
450
|
+
|---|------|--------|--------|
|
|
451
|
+
| 1 | Add root `LICENSE` file | NOT DONE | Trivial |
|
|
452
|
+
| 2 | Fix/remove 14 broken package.json exports | NOT DONE | Small |
|
|
453
|
+
| 3 | Create `types/adaptive-sdk.d.ts` barrel file | NOT DONE | Small |
|
|
454
|
+
| 4 | Add `npm run dev` alias | NOT DONE | Trivial |
|
|
455
|
+
| 5 | Add `prepublishOnly` script | NOT DONE | Trivial |
|
|
456
|
+
| 6 | Create `.github/workflows/publish.yml` | NOT DONE | Small |
|
|
457
|
+
| 7 | Create `CHANGELOG.md` | NOT DONE | Small |
|
|
458
|
+
|
|
459
|
+
### Phase E-2: Launch (npm Publish + Landing Page)
|
|
460
|
+
|
|
461
|
+
| # | Item | Status | Effort |
|
|
462
|
+
|---|------|--------|--------|
|
|
463
|
+
| 8 | npm publish `@vib3code/sdk` v2.0.0 | NOT DONE | Small (after E-1) |
|
|
464
|
+
| 9 | Replace `index.html` with proper landing page | NOT DONE | Medium |
|
|
465
|
+
| 10 | Add URL state to demo page | NOT DONE | Medium |
|
|
466
|
+
| 11 | Record 3 demo videos/GIFs | NOT DONE | Medium |
|
|
467
|
+
| 12 | Embed media in README.md | NOT DONE | Small |
|
|
468
|
+
|
|
469
|
+
### Phase E-3: Adoption Friction (Onboarding)
|
|
470
|
+
|
|
471
|
+
| # | Item | Status | Effort |
|
|
472
|
+
|---|------|--------|--------|
|
|
473
|
+
| 13 | CLI `init` scaffolding command | NOT DONE | Medium |
|
|
474
|
+
| 14 | Framework example apps (React, Vue, Svelte, Three.js) | NOT DONE | Large |
|
|
475
|
+
| 15 | TypeScript types for all v2.0.0 modules | PARTIAL | Large |
|
|
476
|
+
| 16 | Storybook configuration + stories | NOT DONE | Medium |
|
|
477
|
+
| 17 | CDN/UMD build configuration | NOT DONE | Small |
|
|
478
|
+
|
|
479
|
+
### Phase E-4: Quality & Confidence (Testing)
|
|
480
|
+
|
|
481
|
+
| # | Item | Status | Effort |
|
|
482
|
+
|---|------|--------|--------|
|
|
483
|
+
| 18 | Unit tests for 18 v2.0.0 modules | NOT DONE | Large |
|
|
484
|
+
| 19 | Math edge-case tests (NaN, zero, degenerate) | NOT DONE | Medium |
|
|
485
|
+
| 20 | Cross-browser Playwright (Firefox, Safari) | NOT DONE | Medium |
|
|
486
|
+
| 21 | Mobile testing setup | NOT DONE | Medium |
|
|
487
|
+
| 22 | Memory leak detection tests | NOT DONE | Medium |
|
|
488
|
+
| 23 | Performance benchmark thresholds | PARTIAL | Small |
|
|
489
|
+
| 24 | Accessibility (prefers-reduced-motion, ARIA) | NOT DONE | Medium |
|
|
490
|
+
| 25 | Fix SpatialInputSystem missing destroy() | NOT DONE | Small |
|
|
491
|
+
| 26 | Fix flaky timing test | NOT DONE | Trivial |
|
|
492
|
+
|
|
493
|
+
### Phase E-5: Scale & Distribution
|
|
494
|
+
|
|
495
|
+
| # | Item | Status | Effort |
|
|
496
|
+
|---|------|--------|--------|
|
|
497
|
+
| 27 | WebGPU as primary render path | NOT DONE | Medium |
|
|
498
|
+
| 28 | WASM build in CI | PARTIAL | Medium |
|
|
499
|
+
| 29 | Canary/nightly builds | NOT DONE | Small |
|
|
500
|
+
| 30 | Figma Community plugin publish | NOT DONE | Medium |
|
|
501
|
+
| 31 | OBS visual setup guide | NOT DONE | Small |
|
|
502
|
+
| 32 | GitHub Releases with WASM + bundles | NOT DONE | Small |
|
|
503
|
+
|
|
504
|
+
### Phase E-6: Ecosystem & Community
|
|
505
|
+
|
|
506
|
+
| # | Item | Status | Effort |
|
|
507
|
+
|---|------|--------|--------|
|
|
508
|
+
| 33 | Preset gallery web app with permalinks | NOT DONE | Large |
|
|
509
|
+
| 34 | Interactive tutorial | NOT DONE | Large |
|
|
510
|
+
| 35 | API reference site (JSDoc → Docusaurus) | NOT DONE | Large |
|
|
511
|
+
| 36 | GitHub Discussions | NOT DONE | Trivial |
|
|
512
|
+
| 37 | GitHub community health files | NOT DONE | Small |
|
|
513
|
+
| 38 | Discord community | NOT DONE | Trivial |
|
|
514
|
+
| 39 | Public roadmap (GitHub Projects) | NOT DONE | Trivial |
|
|
515
|
+
| 40 | Error telemetry (opt-in) | PARTIAL | Medium |
|
|
516
|
+
| 41 | Blog post series | NOT DONE | Large (content) |
|
|
517
|
+
| 42 | Trading card public gallery | PARTIAL | Medium |
|
|
518
|
+
| 43 | Archive cleanup | NOT DONE | Small |
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
## 7. Summary: What to Do Next (Priority Order)
|
|
523
|
+
|
|
524
|
+
1. **License file** — Unblocks everything
|
|
525
|
+
2. **Fix broken exports** — Trust killer if shipped broken
|
|
526
|
+
3. **npm publish pipeline** — Makes the product real
|
|
527
|
+
4. **Landing page with live demo** — First impression
|
|
528
|
+
5. **CLI scaffolding (`npx @vib3code/sdk init`)** — Adoption friction
|
|
529
|
+
6. **3 demo videos** — Marketing fuel
|
|
530
|
+
7. **Cross-browser test matrix** — Confidence for beta
|
|
531
|
+
8. **vib3-examples repo** — One per integration
|
|
532
|
+
9. **CHANGELOG.md** — Signals professionalism
|
|
533
|
+
10. **Discord community** — Feedback channel
|
|
534
|
+
|
|
535
|
+
---
|
|
536
|
+
|
|
537
|
+
## 8. File Reference
|
|
538
|
+
|
|
539
|
+
### Key Files to Modify
|
|
540
|
+
| File | Action Needed |
|
|
541
|
+
|------|---------------|
|
|
542
|
+
| `package.json` | Remove broken exports, add `dev` alias, add `prepublishOnly` |
|
|
543
|
+
| `index.html` | Replace redirect with landing page |
|
|
544
|
+
| `LICENSE` | Create (new file) |
|
|
545
|
+
| `CHANGELOG.md` | Create (new file) |
|
|
546
|
+
| `types/adaptive-sdk.d.ts` | Create (new file) |
|
|
547
|
+
| `playwright.config.js` | Add Firefox + WebKit projects |
|
|
548
|
+
| `vite.config.js` | Add UMD/IIFE build target |
|
|
549
|
+
| `.storybook/main.js` | Create (new file) |
|
|
550
|
+
| `.github/workflows/publish.yml` | Create (new file) |
|
|
551
|
+
| `src/cli/index.js` | Add `init` command |
|
|
552
|
+
| `src/reactivity/SpatialInputSystem.js` | Add `destroy()` method |
|
|
553
|
+
| `README.md` | Add screenshots/GIFs, improve quick-start |
|
|
554
|
+
| `docs/webgpu-live.html` | Add URL state support |
|
|
555
|
+
|
|
556
|
+
### New Directories Needed
|
|
557
|
+
| Directory | Purpose |
|
|
558
|
+
|-----------|---------|
|
|
559
|
+
| `examples/react/` | React integration example |
|
|
560
|
+
| `examples/vue/` | Vue integration example |
|
|
561
|
+
| `examples/svelte/` | Svelte integration example |
|
|
562
|
+
| `examples/threejs/` | Three.js integration example |
|
|
563
|
+
| `assets/` | Screenshots, GIFs, demo videos |
|
|
564
|
+
| `.storybook/` | Storybook configuration |
|
|
565
|
+
| `.github/ISSUE_TEMPLATE/` | Issue templates |
|
|
566
|
+
|
|
567
|
+
---
|
|
568
|
+
|
|
569
|
+
*Generated: January 31, 2026 — Full codebase audit + Phase 5 plan consolidation*
|
|
570
|
+
*VIB3+ CORE — Clear Seas Solutions LLC*
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# VIB3+ OBS Setup Guide
|
|
2
|
+
|
|
3
|
+
Use VIB3+ as a live visualization overlay in OBS Studio.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## What You Get
|
|
8
|
+
|
|
9
|
+
VIB3+ OBS Mode renders visualizations with a transparent background, perfect for:
|
|
10
|
+
- Stream overlays
|
|
11
|
+
- VJ performances
|
|
12
|
+
- Live music visualization backgrounds
|
|
13
|
+
- Webcam overlay effects
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Setup Steps
|
|
18
|
+
|
|
19
|
+
### Step 1: Start VIB3+ in OBS Mode
|
|
20
|
+
|
|
21
|
+
```javascript
|
|
22
|
+
import { OBSMode } from '@vib3code/sdk/integrations/obs';
|
|
23
|
+
|
|
24
|
+
const obs = new OBSMode({
|
|
25
|
+
system: 'quantum', // or 'faceted' or 'holographic'
|
|
26
|
+
geometry: 10,
|
|
27
|
+
transparent: true, // transparent background
|
|
28
|
+
fps: 30, // match your stream FPS
|
|
29
|
+
resolution: [1920, 1080]
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
obs.start();
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Or use the hosted version: open `docs/webgpu-live.html` in a browser.
|
|
36
|
+
|
|
37
|
+
### Step 2: Add Browser Source in OBS
|
|
38
|
+
|
|
39
|
+
1. Open OBS Studio
|
|
40
|
+
2. In your Scene, click **+** under Sources
|
|
41
|
+
3. Select **Browser**
|
|
42
|
+
4. Name it "VIB3+ Overlay"
|
|
43
|
+
5. Set the URL to your VIB3+ page (local: `http://localhost:5173/docs/webgpu-live.html`)
|
|
44
|
+
6. Set **Width** to 1920, **Height** to 1080
|
|
45
|
+
7. Check **"Shutdown source when not visible"** to save GPU
|
|
46
|
+
8. Click OK
|
|
47
|
+
|
|
48
|
+
### Step 3: Enable Transparency
|
|
49
|
+
|
|
50
|
+
1. Right-click the VIB3+ source in OBS
|
|
51
|
+
2. Select **Properties**
|
|
52
|
+
3. Scroll down and find **Custom CSS**
|
|
53
|
+
4. Add:
|
|
54
|
+
```css
|
|
55
|
+
body { background-color: rgba(0, 0, 0, 0) !important; }
|
|
56
|
+
```
|
|
57
|
+
5. Click OK
|
|
58
|
+
|
|
59
|
+
### Step 4: Position the Overlay
|
|
60
|
+
|
|
61
|
+
1. Drag the VIB3+ source to resize/position it
|
|
62
|
+
2. Right-click → **Transform** → **Fit to Screen** for fullscreen
|
|
63
|
+
3. Move it below your webcam source for a background effect
|
|
64
|
+
4. Move it above your webcam for an overlay effect
|
|
65
|
+
|
|
66
|
+
### Step 5: Control Parameters
|
|
67
|
+
|
|
68
|
+
From the browser source's page, use keyboard shortcuts:
|
|
69
|
+
- **1/2/3** — Switch systems (Faceted/Quantum/Holographic)
|
|
70
|
+
- **A** — Toggle audio reactivity
|
|
71
|
+
- **F** — Toggle fullscreen
|
|
72
|
+
- **Alt+1/2/3** — Switch core type (Base/Hypersphere/Hypertetra)
|
|
73
|
+
|
|
74
|
+
Or control programmatically via the MCP server or URL parameters:
|
|
75
|
+
```
|
|
76
|
+
http://localhost:5173/docs/webgpu-live.html?system=quantum&geometry=10&hue=180
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Tips
|
|
82
|
+
|
|
83
|
+
- **Performance**: Use 30 FPS for the browser source to reduce GPU load
|
|
84
|
+
- **Audio reactivity**: Enable OBS audio monitoring so VIB3+ can access the audio stream
|
|
85
|
+
- **Multiple sources**: Add separate VIB3+ sources with different systems for layered effects
|
|
86
|
+
- **Chroma key**: If transparency CSS doesn't work, use a solid color background and OBS Chroma Key filter
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Troubleshooting
|
|
91
|
+
|
|
92
|
+
| Issue | Fix |
|
|
93
|
+
|-------|-----|
|
|
94
|
+
| Black screen | Check that the URL is correct and the dev server is running |
|
|
95
|
+
| No transparency | Add the Custom CSS shown in Step 3 |
|
|
96
|
+
| Laggy | Reduce resolution to 1280x720 or lower FPS to 24 |
|
|
97
|
+
| No audio reactivity | Enable "Control Audio via OBS" in browser source Advanced settings |
|
|
98
|
+
| WebGL error | Some OBS versions have limited WebGL support; update OBS to latest |
|