@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,315 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quantum Trading Card Generator
|
|
3
|
+
* Specializes in enhanced 3D lattice with complex holographic effects
|
|
4
|
+
*/
|
|
5
|
+
import { CardGeneratorBase } from './CardGeneratorBase.js';
|
|
6
|
+
|
|
7
|
+
export class QuantumCardGenerator extends CardGeneratorBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super('Quantum');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
getSystemShaders() {
|
|
13
|
+
return {
|
|
14
|
+
vertex: `
|
|
15
|
+
attribute vec2 a_position;
|
|
16
|
+
void main() {
|
|
17
|
+
gl_Position = vec4(a_position, 0.0, 1.0);
|
|
18
|
+
}
|
|
19
|
+
`,
|
|
20
|
+
fragment: `
|
|
21
|
+
precision highp float;
|
|
22
|
+
|
|
23
|
+
uniform vec2 u_resolution;
|
|
24
|
+
uniform float u_time;
|
|
25
|
+
uniform float u_geometry;
|
|
26
|
+
uniform float u_gridDensity;
|
|
27
|
+
uniform float u_hue;
|
|
28
|
+
uniform float u_intensity;
|
|
29
|
+
uniform float u_morphFactor;
|
|
30
|
+
uniform float u_chaos;
|
|
31
|
+
uniform float u_rot4dXW;
|
|
32
|
+
uniform float u_rot4dYW;
|
|
33
|
+
uniform float u_rot4dZW;
|
|
34
|
+
|
|
35
|
+
// Enhanced 4D rotation matrices
|
|
36
|
+
mat4 rotateXW(float theta) {
|
|
37
|
+
float c = cos(theta);
|
|
38
|
+
float s = sin(theta);
|
|
39
|
+
return mat4(c, 0, 0, -s, 0, 1, 0, 0, 0, 0, 1, 0, s, 0, 0, c);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
mat4 rotateYW(float theta) {
|
|
43
|
+
float c = cos(theta);
|
|
44
|
+
float s = sin(theta);
|
|
45
|
+
return mat4(1, 0, 0, 0, 0, c, 0, -s, 0, 0, 1, 0, 0, s, 0, c);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
mat4 rotateZW(float theta) {
|
|
49
|
+
float c = cos(theta);
|
|
50
|
+
float s = sin(theta);
|
|
51
|
+
return mat4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, c, -s, 0, 0, s, c);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
vec3 project4Dto3D(vec4 p) {
|
|
55
|
+
float w = 2.5 / (2.5 + p.w);
|
|
56
|
+
return vec3(p.x * w, p.y * w, p.z * w);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Enhanced quantum lattice patterns
|
|
60
|
+
float quantumLattice(vec3 p, float gridSize) {
|
|
61
|
+
vec3 q = fract(p * gridSize) - 0.5;
|
|
62
|
+
|
|
63
|
+
// Base structure
|
|
64
|
+
float d1 = length(q);
|
|
65
|
+
float d2 = length(q - vec3(0.4, 0.0, 0.0));
|
|
66
|
+
float d3 = length(q - vec3(0.0, 0.4, 0.0));
|
|
67
|
+
float d4 = length(q - vec3(0.0, 0.0, 0.4));
|
|
68
|
+
float vertices = 1.0 - smoothstep(0.0, 0.05, min(min(d1, d2), min(d3, d4)));
|
|
69
|
+
|
|
70
|
+
// Enhanced edges with shimmer
|
|
71
|
+
float edges = 0.0;
|
|
72
|
+
edges = max(edges, 1.0 - smoothstep(0.0, 0.02, abs(length(q.xy) - 0.25 + sin(u_time * 0.001) * 0.05)));
|
|
73
|
+
edges = max(edges, 1.0 - smoothstep(0.0, 0.02, abs(length(q.yz) - 0.25 + cos(u_time * 0.0012) * 0.05)));
|
|
74
|
+
edges = max(edges, 1.0 - smoothstep(0.0, 0.02, abs(length(q.xz) - 0.25 + sin(u_time * 0.0008) * 0.05)));
|
|
75
|
+
|
|
76
|
+
// Quantum interference patterns
|
|
77
|
+
float interference = sin(d1 * 20.0 + u_time * 0.002) * sin(d2 * 18.0 + u_time * 0.0015);
|
|
78
|
+
|
|
79
|
+
return max(vertices, edges * 0.7) + interference * 0.1;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
float getQuantumGeometry(vec3 p, float geometryType) {
|
|
83
|
+
vec3 q = fract(p * u_gridDensity * 0.12) - 0.5;
|
|
84
|
+
|
|
85
|
+
int geom = int(mod(geometryType, 8.0));
|
|
86
|
+
|
|
87
|
+
if (geom == 0) {
|
|
88
|
+
return quantumLattice(p, u_gridDensity * 0.15);
|
|
89
|
+
}
|
|
90
|
+
else if (geom == 1) {
|
|
91
|
+
// Quantum hypercube with shimmer
|
|
92
|
+
vec3 grid = abs(q);
|
|
93
|
+
float shimmer = sin(grid.x * 30.0 + u_time * 0.001) * sin(grid.y * 25.0 + u_time * 0.0012);
|
|
94
|
+
return (1.0 - smoothstep(0.0, 0.02, min(min(grid.x, grid.y), grid.z) - 0.4)) + shimmer * 0.1;
|
|
95
|
+
}
|
|
96
|
+
else if (geom == 2) {
|
|
97
|
+
// Quantum sphere with volumetric effects
|
|
98
|
+
float r = length(q);
|
|
99
|
+
float volume = sin(r * 15.0 + u_time * 0.001) * 0.1;
|
|
100
|
+
return (1.0 - smoothstep(0.2, 0.45, r)) + volume;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// Enhanced patterns for other geometries
|
|
104
|
+
return quantumLattice(p, u_gridDensity * 0.1 + sin(u_time * 0.0005) * 0.02);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
vec3 hsv2rgb(vec3 c) {
|
|
109
|
+
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
110
|
+
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
111
|
+
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// RGB glitch effect
|
|
115
|
+
vec3 rgbGlitch(vec3 color, vec2 uv, float intensity) {
|
|
116
|
+
vec2 offset = vec2(intensity * 0.008, 0.0);
|
|
117
|
+
float r = color.r + sin(uv.y * 40.0 + u_time * 0.001) * intensity * 0.08;
|
|
118
|
+
float g = color.g + sin(uv.y * 38.0 + u_time * 0.0015) * intensity * 0.08;
|
|
119
|
+
float b = color.b + sin(uv.y * 42.0 + u_time * 0.0008) * intensity * 0.08;
|
|
120
|
+
return vec3(r, g, b);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
void main() {
|
|
124
|
+
vec2 uv = gl_FragCoord.xy / u_resolution.xy;
|
|
125
|
+
float aspectRatio = u_resolution.x / u_resolution.y;
|
|
126
|
+
uv.x *= aspectRatio;
|
|
127
|
+
uv -= 0.5;
|
|
128
|
+
|
|
129
|
+
float time = u_time * 0.0008;
|
|
130
|
+
|
|
131
|
+
// Enhanced 4D transformations
|
|
132
|
+
vec4 p4d = vec4(uv,
|
|
133
|
+
sin(time * 0.4 + uv.x * 2.0) * 0.25,
|
|
134
|
+
cos(time * 0.3 + uv.y * 2.0) * 0.2);
|
|
135
|
+
|
|
136
|
+
// Enhanced rotations with quantum effects
|
|
137
|
+
p4d = rotateXW(u_rot4dXW + time * 0.2 + sin(time * 2.0) * 0.1) * p4d;
|
|
138
|
+
p4d = rotateYW(u_rot4dYW + time * 0.25 + cos(time * 1.5) * 0.1) * p4d;
|
|
139
|
+
p4d = rotateZW(u_rot4dZW + time * 0.3 + sin(time * 1.2) * 0.1) * p4d;
|
|
140
|
+
|
|
141
|
+
vec3 p = project4Dto3D(p4d);
|
|
142
|
+
|
|
143
|
+
// Enhanced morphing
|
|
144
|
+
p += vec3(
|
|
145
|
+
sin(p.y * 12.0 + time * 2.0) * u_morphFactor * 0.15,
|
|
146
|
+
cos(p.x * 10.0 + time * 1.5) * u_morphFactor * 0.12,
|
|
147
|
+
sin(p.z * 14.0 + time * 1.8) * u_morphFactor * 0.1
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
float pattern = getQuantumGeometry(p, u_geometry);
|
|
151
|
+
|
|
152
|
+
// Enhanced quantum color scheme
|
|
153
|
+
vec3 baseColor = hsv2rgb(vec3(u_hue / 360.0, 0.9, u_intensity));
|
|
154
|
+
vec3 quantumColor = hsv2rgb(vec3((u_hue + 60.0) / 360.0, 0.7, u_intensity * 0.8));
|
|
155
|
+
|
|
156
|
+
vec3 color = mix(baseColor, quantumColor, pattern * 0.6) * (0.4 + pattern * 0.8);
|
|
157
|
+
|
|
158
|
+
// Enhanced quantum effects
|
|
159
|
+
color += vec3(pattern * 0.5) * baseColor;
|
|
160
|
+
color += quantumColor * sin(length(uv) * 10.0 + time * 3.0) * 0.1;
|
|
161
|
+
|
|
162
|
+
// Enhanced chaos/glitch
|
|
163
|
+
color = rgbGlitch(color, uv, u_chaos);
|
|
164
|
+
color += vec3(sin(uv.x * 25.0 + time * 2.0) * u_chaos * 0.08);
|
|
165
|
+
|
|
166
|
+
// Quantum shimmer overlay
|
|
167
|
+
float shimmer = sin(length(uv) * 20.0 + time * 4.0) * 0.05;
|
|
168
|
+
color += vec3(shimmer) * baseColor;
|
|
169
|
+
|
|
170
|
+
gl_FragColor = vec4(color, 1.0);
|
|
171
|
+
}
|
|
172
|
+
`
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
getSystemStyles() {
|
|
177
|
+
return `
|
|
178
|
+
.visualization-area {
|
|
179
|
+
border: 2px solid rgba(0, 255, 255, 0.4);
|
|
180
|
+
box-shadow:
|
|
181
|
+
0 0 30px rgba(0, 255, 255, 0.3),
|
|
182
|
+
inset 0 0 20px rgba(0, 255, 255, 0.1);
|
|
183
|
+
background: rgba(0, 255, 255, 0.02);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.card-title {
|
|
187
|
+
color: #00ffff;
|
|
188
|
+
text-shadow: 0 0 20px rgba(0, 255, 255, 0.8);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.system-badge.quantum {
|
|
192
|
+
box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
|
|
193
|
+
animation: quantum-glow 2s ease-in-out infinite alternate;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
@keyframes quantum-glow {
|
|
197
|
+
from { box-shadow: 0 0 15px rgba(0, 255, 255, 0.5); }
|
|
198
|
+
to { box-shadow: 0 0 25px rgba(0, 255, 255, 0.8); }
|
|
199
|
+
}
|
|
200
|
+
`;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
generateSystemContent(parameters) {
|
|
204
|
+
return `<canvas id="quantum-canvas"></canvas>`;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
getSystemJavaScript() {
|
|
208
|
+
return `
|
|
209
|
+
function initializeCard(params) {
|
|
210
|
+
const canvas = document.getElementById('quantum-canvas');
|
|
211
|
+
const gl = canvas.getContext('webgl');
|
|
212
|
+
|
|
213
|
+
if (!gl) {
|
|
214
|
+
throw new Error('WebGL not supported');
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// Resize canvas
|
|
218
|
+
function resize() {
|
|
219
|
+
canvas.width = canvas.clientWidth;
|
|
220
|
+
canvas.height = canvas.clientHeight;
|
|
221
|
+
gl.viewport(0, 0, canvas.width, canvas.height);
|
|
222
|
+
}
|
|
223
|
+
window.addEventListener('resize', resize);
|
|
224
|
+
resize();
|
|
225
|
+
|
|
226
|
+
// Create shader program (same as faceted but with quantum shaders)
|
|
227
|
+
function createShader(type, source) {
|
|
228
|
+
const shader = gl.createShader(type);
|
|
229
|
+
gl.shaderSource(shader, source);
|
|
230
|
+
gl.compileShader(shader);
|
|
231
|
+
|
|
232
|
+
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
|
|
233
|
+
console.error('Shader compile error:', gl.getShaderInfoLog(shader));
|
|
234
|
+
gl.deleteShader(shader);
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
return shader;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
const vertexShader = createShader(gl.VERTEX_SHADER, vertexShaderSource);
|
|
241
|
+
const fragmentShader = createShader(gl.FRAGMENT_SHADER, fragmentShaderSource);
|
|
242
|
+
|
|
243
|
+
const program = gl.createProgram();
|
|
244
|
+
gl.attachShader(program, vertexShader);
|
|
245
|
+
gl.attachShader(program, fragmentShader);
|
|
246
|
+
gl.linkProgram(program);
|
|
247
|
+
|
|
248
|
+
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
|
|
249
|
+
console.error('Program link error:', gl.getProgramInfoLog(program));
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// Set up buffers
|
|
254
|
+
const positions = new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]);
|
|
255
|
+
const positionBuffer = gl.createBuffer();
|
|
256
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
|
|
257
|
+
gl.bufferData(gl.ARRAY_BUFFER, positions, gl.STATIC_DRAW);
|
|
258
|
+
|
|
259
|
+
const positionLocation = gl.getAttribLocation(program, 'a_position');
|
|
260
|
+
gl.enableVertexAttribArray(positionLocation);
|
|
261
|
+
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
|
|
262
|
+
|
|
263
|
+
// Get uniform locations
|
|
264
|
+
const uniforms = {
|
|
265
|
+
resolution: gl.getUniformLocation(program, 'u_resolution'),
|
|
266
|
+
time: gl.getUniformLocation(program, 'u_time'),
|
|
267
|
+
geometry: gl.getUniformLocation(program, 'u_geometry'),
|
|
268
|
+
gridDensity: gl.getUniformLocation(program, 'u_gridDensity'),
|
|
269
|
+
hue: gl.getUniformLocation(program, 'u_hue'),
|
|
270
|
+
intensity: gl.getUniformLocation(program, 'u_intensity'),
|
|
271
|
+
morphFactor: gl.getUniformLocation(program, 'u_morphFactor'),
|
|
272
|
+
chaos: gl.getUniformLocation(program, 'u_chaos'),
|
|
273
|
+
rot4dXW: gl.getUniformLocation(program, 'u_rot4dXW'),
|
|
274
|
+
rot4dYW: gl.getUniformLocation(program, 'u_rot4dYW'),
|
|
275
|
+
rot4dZW: gl.getUniformLocation(program, 'u_rot4dZW')
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
// Animation loop
|
|
279
|
+
const startTime = Date.now();
|
|
280
|
+
|
|
281
|
+
function render() {
|
|
282
|
+
const time = Date.now() - startTime;
|
|
283
|
+
|
|
284
|
+
gl.useProgram(program);
|
|
285
|
+
|
|
286
|
+
// Set uniforms (MATCHING QUANTUM ENGINE EXACTLY)
|
|
287
|
+
gl.uniform2f(uniforms.resolution, canvas.width, canvas.height);
|
|
288
|
+
gl.uniform1f(uniforms.time, time);
|
|
289
|
+
gl.uniform1f(uniforms.geometry, parseFloat(params.geometry) || 0);
|
|
290
|
+
gl.uniform1f(uniforms.gridDensity, parseFloat(params.gridDensity) || 15); // EXACT match to engine
|
|
291
|
+
gl.uniform1f(uniforms.hue, parseFloat(params.hue) || 200);
|
|
292
|
+
gl.uniform1f(uniforms.intensity, parseFloat(params.intensity) || 0.5); // EXACT match to engine
|
|
293
|
+
gl.uniform1f(uniforms.morphFactor, parseFloat(params.morphFactor) || 1.0);
|
|
294
|
+
gl.uniform1f(uniforms.chaos, parseFloat(params.chaos) || 0.2); // EXACT match to engine
|
|
295
|
+
gl.uniform1f(uniforms.rot4dXW, parseFloat(params.rot4dXW) || 0);
|
|
296
|
+
gl.uniform1f(uniforms.rot4dYW, parseFloat(params.rot4dYW) || 0);
|
|
297
|
+
gl.uniform1f(uniforms.rot4dZW, parseFloat(params.rot4dZW) || 0);
|
|
298
|
+
|
|
299
|
+
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
300
|
+
|
|
301
|
+
requestAnimationFrame(render);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
render();
|
|
305
|
+
console.log('✅ Quantum trading card initialized');
|
|
306
|
+
}
|
|
307
|
+
`;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
getCardTitle(parameters) {
|
|
311
|
+
return `QUANTUM ${this.getGeometryName(parameters)} ENHANCED`;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
export default QuantumCardGenerator;
|