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