@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,411 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TradingCardSystemQuantum.js - Complete Quantum System for Trading Cards
|
|
3
|
+
* Extracted from monolithic TradingCardGenerator.js for better maintainability
|
|
4
|
+
*
|
|
5
|
+
* Contains:
|
|
6
|
+
* - Enhanced 3D lattice functions (tetrahedron, hypercube)
|
|
7
|
+
* - HSV color system with quantum effects
|
|
8
|
+
* - RGB glitch effects and particle systems
|
|
9
|
+
* - Layer-specific multipliers for density, speed, intensity
|
|
10
|
+
* - Advanced holographic shimmer effects
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
export class TradingCardSystemQuantum {
|
|
14
|
+
/**
|
|
15
|
+
* Generate the complete HTML/JS code for a live quantum trading card
|
|
16
|
+
* @param {Object} state - Card state with parameters and metadata
|
|
17
|
+
* @returns {string} Complete JavaScript code for the card
|
|
18
|
+
*/
|
|
19
|
+
static generateLiveSystem(state) {
|
|
20
|
+
return `
|
|
21
|
+
// LIVE VIB34D Quantum System - Enhanced 5 Layer WebGL Rendering
|
|
22
|
+
class LiveQuantumTradingCardSystem {
|
|
23
|
+
constructor(canvas) {
|
|
24
|
+
this.canvas = canvas;
|
|
25
|
+
this.layers = [];
|
|
26
|
+
this.params = ${JSON.stringify(state.parameters)};
|
|
27
|
+
this.startTime = Date.now();
|
|
28
|
+
|
|
29
|
+
console.log('🌌 Initializing LIVE Quantum Trading Card System');
|
|
30
|
+
this.initializeLayers();
|
|
31
|
+
this.startRenderLoop();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
initializeLayers() {
|
|
35
|
+
const layerConfigs = [
|
|
36
|
+
{ id: 'quantum-bg', role: 'background', blend: 'multiply', opacity: 0.4, intensity: 0.4, densityMult: 0.8, speedMult: 0.6 },
|
|
37
|
+
{ id: 'quantum-shadow', role: 'shadow', blend: 'multiply', opacity: 0.6, intensity: 0.6, densityMult: 0.9, speedMult: 0.8 },
|
|
38
|
+
{ id: 'quantum-content', role: 'content', blend: 'normal', opacity: 1.0, intensity: 1.0, densityMult: 1.0, speedMult: 1.0 },
|
|
39
|
+
{ id: 'quantum-highlight', role: 'highlight', blend: 'screen', opacity: 0.8, intensity: 1.3, densityMult: 1.1, speedMult: 1.2 },
|
|
40
|
+
{ id: 'quantum-accent', role: 'accent', blend: 'color-dodge', opacity: 0.7, intensity: 1.6, densityMult: 1.2, speedMult: 1.4 }
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
layerConfigs.forEach(config => {
|
|
44
|
+
const layerCanvas = document.createElement('canvas');
|
|
45
|
+
layerCanvas.id = config.id;
|
|
46
|
+
layerCanvas.width = this.canvas.width;
|
|
47
|
+
layerCanvas.height = this.canvas.height;
|
|
48
|
+
layerCanvas.style.position = 'absolute';
|
|
49
|
+
layerCanvas.style.top = '0';
|
|
50
|
+
layerCanvas.style.left = '0';
|
|
51
|
+
layerCanvas.style.width = '100%';
|
|
52
|
+
layerCanvas.style.height = '100%';
|
|
53
|
+
layerCanvas.style.mixBlendMode = config.blend;
|
|
54
|
+
layerCanvas.style.opacity = config.opacity;
|
|
55
|
+
layerCanvas.style.pointerEvents = 'none';
|
|
56
|
+
|
|
57
|
+
this.canvas.parentNode.appendChild(layerCanvas);
|
|
58
|
+
|
|
59
|
+
const visualizer = new QuantumLayerVisualizer(layerCanvas, config);
|
|
60
|
+
this.layers.push({ visualizer, config });
|
|
61
|
+
console.log(\`🌌 Created quantum layer: \${config.role}\`);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
startRenderLoop() {
|
|
66
|
+
const render = () => {
|
|
67
|
+
this.layers.forEach(({ visualizer }) => {
|
|
68
|
+
if (visualizer && visualizer.render) {
|
|
69
|
+
visualizer.render(Date.now());
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
requestAnimationFrame(render);
|
|
73
|
+
};
|
|
74
|
+
render();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Enhanced Quantum Layer Visualizer with complex 3D lattice shaders
|
|
79
|
+
class QuantumLayerVisualizer {
|
|
80
|
+
constructor(canvas, roleConfig) {
|
|
81
|
+
this.canvas = canvas;
|
|
82
|
+
this.roleConfig = roleConfig;
|
|
83
|
+
this.gl = canvas.getContext('webgl');
|
|
84
|
+
this.params = ${JSON.stringify(state.parameters)};
|
|
85
|
+
this.mouseX = 0.5;
|
|
86
|
+
this.mouseY = 0.5;
|
|
87
|
+
this.mouseIntensity = 0.0;
|
|
88
|
+
this.clickIntensity = 0.0;
|
|
89
|
+
this.startTime = Date.now();
|
|
90
|
+
|
|
91
|
+
if (!this.gl) {
|
|
92
|
+
console.error(\`WebGL not supported for quantum layer \${roleConfig.role}\`);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
this.initShaders();
|
|
97
|
+
this.initBuffers();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
initShaders() {
|
|
101
|
+
const vertexShader = \`
|
|
102
|
+
attribute vec2 a_position;
|
|
103
|
+
void main() {
|
|
104
|
+
gl_Position = vec4(a_position, 0.0, 1.0);
|
|
105
|
+
}\`;
|
|
106
|
+
|
|
107
|
+
const fragmentShader = \`
|
|
108
|
+
precision highp float;
|
|
109
|
+
uniform vec2 u_resolution;
|
|
110
|
+
uniform float u_time;
|
|
111
|
+
uniform vec2 u_mouse;
|
|
112
|
+
uniform float u_geometry;
|
|
113
|
+
uniform float u_gridDensity;
|
|
114
|
+
uniform float u_morphFactor;
|
|
115
|
+
uniform float u_chaos;
|
|
116
|
+
uniform float u_speed;
|
|
117
|
+
uniform float u_hue;
|
|
118
|
+
uniform float u_intensity;
|
|
119
|
+
uniform float u_saturation;
|
|
120
|
+
uniform float u_rot4dXW;
|
|
121
|
+
uniform float u_rot4dYW;
|
|
122
|
+
uniform float u_rot4dZW;
|
|
123
|
+
uniform float u_mouseIntensity;
|
|
124
|
+
uniform float u_clickIntensity;
|
|
125
|
+
uniform float u_roleIntensity;
|
|
126
|
+
|
|
127
|
+
// 4D rotation matrices
|
|
128
|
+
mat4 rotateXW(float theta) {
|
|
129
|
+
float c = cos(theta);
|
|
130
|
+
float s = sin(theta);
|
|
131
|
+
return mat4(c, 0.0, 0.0, -s, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, s, 0.0, 0.0, c);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
mat4 rotateYW(float theta) {
|
|
135
|
+
float c = cos(theta);
|
|
136
|
+
float s = sin(theta);
|
|
137
|
+
return mat4(1.0, 0.0, 0.0, 0.0, 0.0, c, 0.0, -s, 0.0, 0.0, 1.0, 0.0, 0.0, s, 0.0, c);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
mat4 rotateZW(float theta) {
|
|
141
|
+
float c = cos(theta);
|
|
142
|
+
float s = sin(theta);
|
|
143
|
+
return mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, c, -s, 0.0, 0.0, s, c);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
vec3 project4Dto3D(vec4 p) {
|
|
147
|
+
float w = 2.5 / (2.5 + p.w);
|
|
148
|
+
return vec3(p.x * w, p.y * w, p.z * w);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// COMPLEX 3D LATTICE FUNCTIONS - QUANTUM ENHANCED
|
|
152
|
+
float tetrahedronLattice(vec3 p, float gridSize) {
|
|
153
|
+
vec3 q = fract(p * gridSize) - 0.5;
|
|
154
|
+
float d1 = length(q);
|
|
155
|
+
float d2 = length(q - vec3(0.4, 0.0, 0.0));
|
|
156
|
+
float d3 = length(q - vec3(0.0, 0.4, 0.0));
|
|
157
|
+
float d4 = length(q - vec3(0.0, 0.0, 0.4));
|
|
158
|
+
float vertices = 1.0 - smoothstep(0.0, 0.04, min(min(d1, d2), min(d3, d4)));
|
|
159
|
+
float edges = 0.0;
|
|
160
|
+
edges = max(edges, 1.0 - smoothstep(0.0, 0.02, abs(length(q.xy) - 0.2)));
|
|
161
|
+
edges = max(edges, 1.0 - smoothstep(0.0, 0.02, abs(length(q.yz) - 0.2)));
|
|
162
|
+
edges = max(edges, 1.0 - smoothstep(0.0, 0.02, abs(length(q.xz) - 0.2)));
|
|
163
|
+
return max(vertices, edges * 0.5);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
float hypercubeLattice(vec3 p, float gridSize) {
|
|
167
|
+
vec3 grid = fract(p * gridSize);
|
|
168
|
+
vec3 edges = min(grid, 1.0 - grid);
|
|
169
|
+
float minEdge = min(min(edges.x, edges.y), edges.z);
|
|
170
|
+
float lattice = 1.0 - smoothstep(0.0, 0.03, minEdge);
|
|
171
|
+
|
|
172
|
+
vec3 centers = abs(grid - 0.5);
|
|
173
|
+
float maxCenter = max(max(centers.x, centers.y), centers.z);
|
|
174
|
+
float vertices = 1.0 - smoothstep(0.45, 0.5, maxCenter);
|
|
175
|
+
|
|
176
|
+
return max(lattice * 0.7, vertices);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// ENHANCED GEOMETRY FUNCTION WITH QUANTUM EFFECTS
|
|
180
|
+
float quantumGeometry(vec4 p) {
|
|
181
|
+
int geomType = int(u_geometry);
|
|
182
|
+
vec3 p3d = project4Dto3D(p);
|
|
183
|
+
float gridSize = u_gridDensity * 0.08;
|
|
184
|
+
|
|
185
|
+
if (geomType == 0) {
|
|
186
|
+
return tetrahedronLattice(p3d, gridSize) * u_morphFactor;
|
|
187
|
+
} else if (geomType == 1) {
|
|
188
|
+
return hypercubeLattice(p3d, gridSize) * u_morphFactor;
|
|
189
|
+
} else {
|
|
190
|
+
return hypercubeLattice(p3d, gridSize) * u_morphFactor;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// HSV to RGB conversion
|
|
195
|
+
vec3 hsv2rgb(vec3 c) {
|
|
196
|
+
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
197
|
+
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
198
|
+
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// RGB Glitch effect
|
|
202
|
+
vec3 rgbGlitch(vec3 color, vec2 uv, float intensity) {
|
|
203
|
+
float r = color.r + sin(uv.y * 30.0 + u_time * 0.001) * intensity * 0.06;
|
|
204
|
+
float g = color.g + sin(uv.y * 28.0 + u_time * 0.0012) * intensity * 0.06;
|
|
205
|
+
float b = color.b + sin(uv.y * 32.0 + u_time * 0.0008) * intensity * 0.06;
|
|
206
|
+
return vec3(r, g, b);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
void main() {
|
|
210
|
+
vec2 uv = (gl_FragCoord.xy - u_resolution.xy * 0.5) / min(u_resolution.x, u_resolution.y);
|
|
211
|
+
|
|
212
|
+
// Enhanced 4D position with quantum effects
|
|
213
|
+
float timeSpeed = u_time * 0.0001 * u_speed;
|
|
214
|
+
vec4 pos = vec4(uv * 3.0, sin(timeSpeed * 3.0), cos(timeSpeed * 2.0));
|
|
215
|
+
pos.xy += (u_mouse - 0.5) * u_mouseIntensity * 2.0;
|
|
216
|
+
|
|
217
|
+
// Apply 4D rotations
|
|
218
|
+
pos = rotateXW(u_rot4dXW) * pos;
|
|
219
|
+
pos = rotateYW(u_rot4dYW) * pos;
|
|
220
|
+
pos = rotateZW(u_rot4dZW) * pos;
|
|
221
|
+
|
|
222
|
+
// Calculate quantum geometry value
|
|
223
|
+
float value = quantumGeometry(pos);
|
|
224
|
+
|
|
225
|
+
// Enhanced chaos with quantum noise
|
|
226
|
+
float noise = sin(pos.x * 7.0) * cos(pos.y * 11.0) * sin(pos.z * 13.0);
|
|
227
|
+
value += noise * u_chaos;
|
|
228
|
+
|
|
229
|
+
// Quantum intensity calculation with holographic glow
|
|
230
|
+
float geometryIntensity = 1.0 - clamp(abs(value * 0.8), 0.0, 1.0);
|
|
231
|
+
geometryIntensity = pow(geometryIntensity, 1.5);
|
|
232
|
+
geometryIntensity += u_clickIntensity * 0.3;
|
|
233
|
+
|
|
234
|
+
// Quantum shimmer effect
|
|
235
|
+
float shimmer = sin(uv.x * 20.0 + timeSpeed * 5.0) * cos(uv.y * 15.0 + timeSpeed * 3.0) * 0.1;
|
|
236
|
+
geometryIntensity += shimmer * geometryIntensity;
|
|
237
|
+
|
|
238
|
+
float finalIntensity = geometryIntensity * u_intensity;
|
|
239
|
+
|
|
240
|
+
// Enhanced quantum color system
|
|
241
|
+
float baseHue = u_hue / 360.0;
|
|
242
|
+
float hueShift = value * 0.2 + timeSpeed * 0.1;
|
|
243
|
+
float finalHue = baseHue + hueShift;
|
|
244
|
+
|
|
245
|
+
vec3 hsvColor = vec3(finalHue, u_saturation, finalIntensity);
|
|
246
|
+
vec3 baseColor = hsv2rgb(hsvColor);
|
|
247
|
+
|
|
248
|
+
// Add quantum particles
|
|
249
|
+
float particles = 0.0;
|
|
250
|
+
vec2 particleUV = uv * 8.0;
|
|
251
|
+
vec2 particleID = floor(particleUV);
|
|
252
|
+
vec2 particlePos = fract(particleUV) - 0.5;
|
|
253
|
+
float particleDist = length(particlePos);
|
|
254
|
+
|
|
255
|
+
float particleTime = timeSpeed + dot(particleID, vec2(127.1, 311.7));
|
|
256
|
+
float particleAlpha = sin(particleTime) * 0.5 + 0.5;
|
|
257
|
+
particles = (1.0 - smoothstep(0.1, 0.3, particleDist)) * particleAlpha * 0.3;
|
|
258
|
+
|
|
259
|
+
vec3 glitchedColor = rgbGlitch(baseColor, uv, finalIntensity * 0.5);
|
|
260
|
+
vec3 finalColor = glitchedColor + particles * vec3(1.0, 0.8, 1.0);
|
|
261
|
+
|
|
262
|
+
gl_FragColor = vec4(finalColor, finalIntensity * u_roleIntensity);
|
|
263
|
+
}\`;
|
|
264
|
+
|
|
265
|
+
this.program = this.createProgram(vertexShader, fragmentShader);
|
|
266
|
+
if (this.program) {
|
|
267
|
+
this.uniforms = {
|
|
268
|
+
resolution: this.gl.getUniformLocation(this.program, 'u_resolution'),
|
|
269
|
+
time: this.gl.getUniformLocation(this.program, 'u_time'),
|
|
270
|
+
mouse: this.gl.getUniformLocation(this.program, 'u_mouse'),
|
|
271
|
+
geometry: this.gl.getUniformLocation(this.program, 'u_geometry'),
|
|
272
|
+
gridDensity: this.gl.getUniformLocation(this.program, 'u_gridDensity'),
|
|
273
|
+
morphFactor: this.gl.getUniformLocation(this.program, 'u_morphFactor'),
|
|
274
|
+
chaos: this.gl.getUniformLocation(this.program, 'u_chaos'),
|
|
275
|
+
speed: this.gl.getUniformLocation(this.program, 'u_speed'),
|
|
276
|
+
hue: this.gl.getUniformLocation(this.program, 'u_hue'),
|
|
277
|
+
intensity: this.gl.getUniformLocation(this.program, 'u_intensity'),
|
|
278
|
+
saturation: this.gl.getUniformLocation(this.program, 'u_saturation'),
|
|
279
|
+
rot4dXW: this.gl.getUniformLocation(this.program, 'u_rot4dXW'),
|
|
280
|
+
rot4dYW: this.gl.getUniformLocation(this.program, 'u_rot4dYW'),
|
|
281
|
+
rot4dZW: this.gl.getUniformLocation(this.program, 'u_rot4dZW'),
|
|
282
|
+
mouseIntensity: this.gl.getUniformLocation(this.program, 'u_mouseIntensity'),
|
|
283
|
+
clickIntensity: this.gl.getUniformLocation(this.program, 'u_clickIntensity'),
|
|
284
|
+
roleIntensity: this.gl.getUniformLocation(this.program, 'u_roleIntensity')
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
createProgram(vertexSource, fragmentSource) {
|
|
290
|
+
const vertexShader = this.createShader(this.gl.VERTEX_SHADER, vertexSource);
|
|
291
|
+
const fragmentShader = this.createShader(this.gl.FRAGMENT_SHADER, fragmentSource);
|
|
292
|
+
|
|
293
|
+
if (!vertexShader || !fragmentShader) return null;
|
|
294
|
+
|
|
295
|
+
const program = this.gl.createProgram();
|
|
296
|
+
this.gl.attachShader(program, vertexShader);
|
|
297
|
+
this.gl.attachShader(program, fragmentShader);
|
|
298
|
+
this.gl.linkProgram(program);
|
|
299
|
+
|
|
300
|
+
if (!this.gl.getProgramParameter(program, this.gl.LINK_STATUS)) {
|
|
301
|
+
console.error('Quantum program linking failed:', this.gl.getProgramInfoLog(program));
|
|
302
|
+
return null;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
return program;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
createShader(type, source) {
|
|
309
|
+
const shader = this.gl.createShader(type);
|
|
310
|
+
this.gl.shaderSource(shader, source);
|
|
311
|
+
this.gl.compileShader(shader);
|
|
312
|
+
|
|
313
|
+
if (!this.gl.getShaderParameter(shader, this.gl.COMPILE_STATUS)) {
|
|
314
|
+
console.error('Quantum shader compilation failed:', this.gl.getShaderInfoLog(shader));
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
return shader;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
initBuffers() {
|
|
322
|
+
const positions = new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]);
|
|
323
|
+
this.buffer = this.gl.createBuffer();
|
|
324
|
+
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.buffer);
|
|
325
|
+
this.gl.bufferData(this.gl.ARRAY_BUFFER, positions, this.gl.STATIC_DRAW);
|
|
326
|
+
|
|
327
|
+
const positionLocation = this.gl.getAttribLocation(this.program, 'a_position');
|
|
328
|
+
this.gl.enableVertexAttribArray(positionLocation);
|
|
329
|
+
this.gl.vertexAttribPointer(positionLocation, 2, this.gl.FLOAT, false, 0, 0);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
render(time) {
|
|
333
|
+
if (!this.program) return;
|
|
334
|
+
|
|
335
|
+
this.canvas.width = this.canvas.clientWidth;
|
|
336
|
+
this.canvas.height = this.canvas.clientHeight;
|
|
337
|
+
this.gl.viewport(0, 0, this.canvas.width, this.canvas.height);
|
|
338
|
+
this.gl.useProgram(this.program);
|
|
339
|
+
|
|
340
|
+
this.gl.uniform2f(this.uniforms.resolution, this.canvas.width, this.canvas.height);
|
|
341
|
+
this.gl.uniform1f(this.uniforms.time, time);
|
|
342
|
+
this.gl.uniform2f(this.uniforms.mouse, this.mouseX || 0.5, this.mouseY || 0.5);
|
|
343
|
+
this.gl.uniform1f(this.uniforms.geometry, this.params.geometry || 0);
|
|
344
|
+
this.gl.uniform1f(this.uniforms.gridDensity, (this.params.gridDensity || 15) * this.roleConfig.densityMult);
|
|
345
|
+
this.gl.uniform1f(this.uniforms.morphFactor, this.params.morphFactor || 1.0);
|
|
346
|
+
this.gl.uniform1f(this.uniforms.chaos, this.params.chaos || 0.2);
|
|
347
|
+
this.gl.uniform1f(this.uniforms.speed, (this.params.speed || 1.0) * this.roleConfig.speedMult);
|
|
348
|
+
this.gl.uniform1f(this.uniforms.hue, this.params.hue || 280); // Quantum purple-blue
|
|
349
|
+
this.gl.uniform1f(this.uniforms.intensity, (this.params.intensity || 0.7) * this.roleConfig.intensity);
|
|
350
|
+
this.gl.uniform1f(this.uniforms.saturation, this.params.saturation || 0.9);
|
|
351
|
+
this.gl.uniform1f(this.uniforms.rot4dXW, this.params.rot4dXW || 0.0);
|
|
352
|
+
this.gl.uniform1f(this.uniforms.rot4dYW, this.params.rot4dYW || 0.0);
|
|
353
|
+
this.gl.uniform1f(this.uniforms.rot4dZW, this.params.rot4dZW || 0.0);
|
|
354
|
+
this.gl.uniform1f(this.uniforms.mouseIntensity, this.mouseIntensity || 0.0);
|
|
355
|
+
this.gl.uniform1f(this.uniforms.clickIntensity, this.clickIntensity || 0.0);
|
|
356
|
+
this.gl.uniform1f(this.uniforms.roleIntensity, this.roleConfig.intensity);
|
|
357
|
+
|
|
358
|
+
this.gl.drawArrays(this.gl.TRIANGLE_STRIP, 0, 4);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
// Enhanced interactivity system for Quantum cards - FIXED CANVAS SCOPE
|
|
363
|
+
const canvas = document.getElementById('vib34dCanvas');
|
|
364
|
+
if (!canvas) {
|
|
365
|
+
console.error('Canvas not found for quantum interactivity');
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
let mouseX = 0.5, mouseY = 0.5, mouseIntensity = 0.0;
|
|
370
|
+
let clickIntensity = 0.0;
|
|
371
|
+
|
|
372
|
+
canvas.addEventListener('mousemove', (e) => {
|
|
373
|
+
const rect = canvas.getBoundingClientRect();
|
|
374
|
+
mouseX = (e.clientX - rect.left) / rect.width;
|
|
375
|
+
mouseY = 1.0 - (e.clientY - rect.top) / rect.height;
|
|
376
|
+
mouseIntensity = Math.min(1.0, Math.sqrt(e.movementX*e.movementX + e.movementY*e.movementY) / 40);
|
|
377
|
+
|
|
378
|
+
if (typeof layers !== 'undefined') {
|
|
379
|
+
layers.forEach(layer => {
|
|
380
|
+
if (layer.visualizer) {
|
|
381
|
+
layer.visualizer.mouseX = mouseX;
|
|
382
|
+
layer.visualizer.mouseY = mouseY;
|
|
383
|
+
layer.visualizer.mouseIntensity = mouseIntensity;
|
|
384
|
+
}
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
canvas.addEventListener('dblclick', async () => {
|
|
390
|
+
console.log('🌌 Quantum card audio reactivity - Coming soon!');
|
|
391
|
+
canvas.style.border = '2px solid #ff00ff';
|
|
392
|
+
setTimeout(() => { canvas.style.border = ''; }, 2000);
|
|
393
|
+
});`;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/**
|
|
397
|
+
* Get system metadata for the quantum system
|
|
398
|
+
*/
|
|
399
|
+
static getSystemInfo() {
|
|
400
|
+
return {
|
|
401
|
+
name: 'Quantum',
|
|
402
|
+
type: 'quantum',
|
|
403
|
+
description: 'Enhanced 3D lattice with holographic effects and particle systems',
|
|
404
|
+
features: ['3D lattice functions', 'HSV color system', 'RGB glitch', 'Quantum particles', 'Shimmer effects'],
|
|
405
|
+
shaderComplexity: 'high',
|
|
406
|
+
layers: 5,
|
|
407
|
+
defaultHue: 280,
|
|
408
|
+
specialEffects: ['tetrahedronLattice', 'hypercubeLattice', 'particleSystem', 'rgbGlitch']
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
}
|