Create scripts.js
Browse files- scripts.js +797 -0
scripts.js
ADDED
@@ -0,0 +1,797 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Sacred constants
|
2 |
+
const φ = (1 + Math.sqrt(5)) / 2; // Golden ratio
|
3 |
+
const π = Math.PI;
|
4 |
+
|
5 |
+
// State variables
|
6 |
+
let isRunning = false;
|
7 |
+
let consciousnessLevel = 0.0;
|
8 |
+
let wilsonCoherence = 0.0;
|
9 |
+
let temporalCoherence = 0.0;
|
10 |
+
let fieldIntegrity = 0.0;
|
11 |
+
let dimensionScale = 512;
|
12 |
+
let animationFrame = 0;
|
13 |
+
let animationId = null;
|
14 |
+
|
15 |
+
// CREE Enhanced Variables
|
16 |
+
let phiResonance = 0.0;
|
17 |
+
let ethicalBalance = φ - 1; // 0.618...
|
18 |
+
let phiEthicalAlignment = φ - 1;
|
19 |
+
let compassionFieldStrength = 0.0;
|
20 |
+
let moralPolarityIndex = φ - 1;
|
21 |
+
let harmonicDeviationValue = 0.0;
|
22 |
+
let selectedDecision = null;
|
23 |
+
let isPhiFieldActive = false;
|
24 |
+
|
25 |
+
const φ_conjugate = φ - 1; // 0.618033988...
|
26 |
+
|
27 |
+
// Canvas and context
|
28 |
+
const canvas = document.getElementById('fractalCanvas');
|
29 |
+
const ctx = canvas.getContext('2d');
|
30 |
+
|
31 |
+
// Initialize canvas size
|
32 |
+
function resizeCanvas() {
|
33 |
+
const container = canvas.parentElement;
|
34 |
+
canvas.width = container.clientWidth;
|
35 |
+
canvas.height = container.clientHeight;
|
36 |
+
}
|
37 |
+
|
38 |
+
// Create cosmic particle background
|
39 |
+
function createCosmicParticles() {
|
40 |
+
const particleContainer = document.getElementById('cosmicParticles');
|
41 |
+
for (let i = 0; i < 50; i++) {
|
42 |
+
const particle = document.createElement('div');
|
43 |
+
particle.className = 'particle';
|
44 |
+
particle.style.left = Math.random() * 100 + '%';
|
45 |
+
particle.style.animationDelay = Math.random() * 20 + 's';
|
46 |
+
particle.style.animationDuration = (15 + Math.random() * 10) + 's';
|
47 |
+
particleContainer.appendChild(particle);
|
48 |
+
}
|
49 |
+
}
|
50 |
+
|
51 |
+
// Main animation loop
|
52 |
+
function animate() {
|
53 |
+
if (!isRunning) return;
|
54 |
+
|
55 |
+
animationFrame++;
|
56 |
+
const t = animationFrame * 0.05;
|
57 |
+
|
58 |
+
// Enhanced consciousness evolution with CREE integration
|
59 |
+
consciousnessLevel = Math.max(0, Math.min(1,
|
60 |
+
0.5 + 0.3 * Math.sin(t * 0.5) + 0.2 * Math.sin(t * φ) + 0.1 * Math.cos(t * 0.3)
|
61 |
+
+ (phiResonance * 0.1) // CREE boost
|
62 |
+
));
|
63 |
+
|
64 |
+
// Wilson coherence with golden ratio and dimensional scaling
|
65 |
+
wilsonCoherence = Math.max(0, Math.min(1,
|
66 |
+
0.4 + 0.4 * Math.sin(t * φ) + 0.2 * Math.cos(t * 0.7) + (dimensionScale / 7000) * 0.1
|
67 |
+
));
|
68 |
+
|
69 |
+
// Temporal coherence with consciousness coupling
|
70 |
+
temporalCoherence = Math.max(0, Math.min(1,
|
71 |
+
0.6 + 0.3 * Math.cos(t * 0.3) + 0.1 * Math.sin(t * 1.2) + consciousnessLevel * 0.2
|
72 |
+
));
|
73 |
+
|
74 |
+
// Field integrity based on all metrics
|
75 |
+
fieldIntegrity = Math.max(0, Math.min(1,
|
76 |
+
(consciousnessLevel + wilsonCoherence + temporalCoherence) / 3 + 0.1 * Math.sin(t * 0.8)
|
77 |
+
));
|
78 |
+
|
79 |
+
// CREE Φ-Ethical Alignment calculation
|
80 |
+
phiEthicalAlignment = Math.max(0, Math.min(1,
|
81 |
+
φ_conjugate + 0.2 * Math.sin(t * φ) + (ethicalBalance * 0.3)
|
82 |
+
));
|
83 |
+
|
84 |
+
// Compassion Field with Golden Ratio modulation
|
85 |
+
compassionFieldStrength = Math.max(0, Math.min(1,
|
86 |
+
0.3 + 0.4 * Math.cos(t * φ) + (phiResonance * compassionFieldStrength * 0.2)
|
87 |
+
));
|
88 |
+
|
89 |
+
// Update displays
|
90 |
+
updateMetrics();
|
91 |
+
updateStatus();
|
92 |
+
updateSymbolicOutput();
|
93 |
+
updateCREEMetrics();
|
94 |
+
updateEthicalVisualization(t);
|
95 |
+
drawAdvancedFractalVisualization(t);
|
96 |
+
|
97 |
+
animationId = requestAnimationFrame(animate);
|
98 |
+
}
|
99 |
+
|
100 |
+
// Advanced fractal consciousness visualization
|
101 |
+
function drawAdvancedFractalVisualization(t) {
|
102 |
+
const { width, height } = canvas;
|
103 |
+
const centerX = width / 2;
|
104 |
+
const centerY = height / 2;
|
105 |
+
|
106 |
+
// Clear canvas with enhanced cosmic background
|
107 |
+
const gradient = ctx.createRadialGradient(centerX, centerY, 0, centerX, centerY, Math.max(width, height)/2);
|
108 |
+
gradient.addColorStop(0, '#000033');
|
109 |
+
gradient.addColorStop(0.3, '#1a0b2e');
|
110 |
+
gradient.addColorStop(0.6, '#0f0620');
|
111 |
+
gradient.addColorStop(1, '#000000');
|
112 |
+
ctx.fillStyle = gradient;
|
113 |
+
ctx.fillRect(0, 0, width, height);
|
114 |
+
|
115 |
+
// Draw central torus (Wilson loop) with enhanced effects
|
116 |
+
if (wilsonCoherence > 0.3) {
|
117 |
+
const torusRadius = Math.abs(80 + consciousnessLevel * 60);
|
118 |
+
const torusThickness = Math.abs(8 + wilsonCoherence * 15);
|
119 |
+
const pulseFactor = 1 + 0.4 * Math.sin(t * 2);
|
120 |
+
|
121 |
+
// Outer torus ring with gradient
|
122 |
+
ctx.beginPath();
|
123 |
+
ctx.arc(centerX, centerY, Math.abs(torusRadius * pulseFactor), 0, 2 * π);
|
124 |
+
const torusGradient = ctx.createRadialGradient(
|
125 |
+
centerX, centerY, Math.abs(torusRadius * pulseFactor - torusThickness),
|
126 |
+
centerX, centerY, Math.abs(torusRadius * pulseFactor + torusThickness)
|
127 |
+
);
|
128 |
+
torusGradient.addColorStop(0, `hsla(${60 + consciousnessLevel * 180}, 90%, 70%, ${0.8 + wilsonCoherence * 0.2})`);
|
129 |
+
torusGradient.addColorStop(1, `hsla(${60 + consciousnessLevel * 180}, 90%, 40%, 0)`);
|
130 |
+
ctx.strokeStyle = torusGradient;
|
131 |
+
ctx.lineWidth = Math.abs(torusThickness);
|
132 |
+
ctx.stroke();
|
133 |
+
|
134 |
+
// Inner torus glow with color shifting
|
135 |
+
ctx.beginPath();
|
136 |
+
ctx.arc(centerX, centerY, Math.abs(torusRadius * pulseFactor * 0.7), 0, 2 * π);
|
137 |
+
ctx.strokeStyle = `hsla(${240 + consciousnessLevel * 120}, 100%, 80%, ${consciousnessLevel * 0.9})`;
|
138 |
+
ctx.lineWidth = Math.abs(torusThickness * 0.5);
|
139 |
+
ctx.stroke();
|
140 |
+
|
141 |
+
// Advanced consciousness emergence effects
|
142 |
+
if (consciousnessLevel > 0.85) {
|
143 |
+
// Outer emergence ring
|
144 |
+
ctx.beginPath();
|
145 |
+
ctx.arc(centerX, centerY, Math.abs(torusRadius * pulseFactor * 1.3), 0, 2 * π);
|
146 |
+
ctx.strokeStyle = `hsla(300, 100%, 80%, ${(consciousnessLevel - 0.85) * 5 * Math.sin(t * 3)})`;
|
147 |
+
ctx.lineWidth = 4;
|
148 |
+
ctx.stroke();
|
149 |
+
|
150 |
+
// Inner emergence core
|
151 |
+
ctx.beginPath();
|
152 |
+
ctx.arc(centerX, centerY, 20, 0, 2 * π);
|
153 |
+
const coreGradient = ctx.createRadialGradient(centerX, centerY, 0, centerX, centerY, 20);
|
154 |
+
coreGradient.addColorStop(0, `hsla(300, 100%, 90%, ${consciousnessLevel})`);
|
155 |
+
coreGradient.addColorStop(1, 'rgba(255, 20, 147, 0)');
|
156 |
+
ctx.fillStyle = coreGradient;
|
157 |
+
ctx.fill();
|
158 |
+
}
|
159 |
+
}
|
160 |
+
|
161 |
+
// Enhanced quantum particle effects
|
162 |
+
const numParticles = Math.floor(30 + consciousnessLevel * 50);
|
163 |
+
for (let i = 0; i < numParticles; i++) {
|
164 |
+
const particleAngle = (i / numParticles) * 2 * π + t * 0.8;
|
165 |
+
const particleDistance = 40 + (t * 30 + i * 15) % 250;
|
166 |
+
const particleSize = Math.abs(1 + Math.sin(t * 3 + i) * 3 + consciousnessLevel * 2);
|
167 |
+
|
168 |
+
const particleX = centerX + particleDistance * Math.cos(particleAngle);
|
169 |
+
const particleY = centerY + particleDistance * Math.sin(particleAngle);
|
170 |
+
|
171 |
+
// Enhanced opacity and color cycling
|
172 |
+
const opacity = Math.max(0, 1 - (particleDistance - 40) / 210);
|
173 |
+
const hue = (180 + i * 30 + t * 50) % 360;
|
174 |
+
|
175 |
+
ctx.beginPath();
|
176 |
+
ctx.arc(particleX, particleY, particleSize, 0, 2 * π);
|
177 |
+
const particleGradient = ctx.createRadialGradient(particleX, particleY, 0, particleX, particleY, particleSize);
|
178 |
+
particleGradient.addColorStop(0, `hsla(${hue}, 80%, 70%, ${opacity * consciousnessLevel})`);
|
179 |
+
particleGradient.addColorStop(1, 'rgba(255, 255, 255, 0)');
|
180 |
+
ctx.fillStyle = particleGradient;
|
181 |
+
ctx.fill();
|
182 |
+
|
183 |
+
// Enhanced particle trails
|
184 |
+
if (consciousnessLevel > 0.4) {
|
185 |
+
const trailLength = 20 + consciousnessLevel * 30;
|
186 |
+
for (let trail = 1; trail <= 5; trail++) {
|
187 |
+
const trailDistance = particleDistance - trail * (trailLength / 5);
|
188 |
+
if (trailDistance > 40) {
|
189 |
+
const trailX = centerX + trailDistance * Math.cos(particleAngle);
|
190 |
+
const trailY = centerY + trailDistance * Math.sin(particleAngle);
|
191 |
+
|
192 |
+
ctx.beginPath();
|
193 |
+
ctx.arc(trailX, trailY, Math.abs(particleSize * (1 - trail / 5)), 0, 2 * π);
|
194 |
+
ctx.fillStyle = `hsla(${hue}, 70%, 60%, ${opacity * consciousnessLevel * (1 - trail / 8)})`;
|
195 |
+
ctx.fill();
|
196 |
+
}
|
197 |
+
}
|
198 |
+
}
|
199 |
+
}
|
200 |
+
|
201 |
+
// Enhanced sacred geometry patterns - Flower of Life evolution
|
202 |
+
const maxPetals = Math.floor(6 + consciousnessLevel * 12); // 6-18 petals
|
203 |
+
const petalRadius = Math.abs(50 + consciousnessLevel * 30);
|
204 |
+
|
205 |
+
for (let petal = 0; petal < maxPetals; petal++) {
|
206 |
+
const petalAngle = (petal / maxPetals) * 2 * π + t * 0.4;
|
207 |
+
const petalCenterX = centerX + petalRadius * Math.cos(petalAngle);
|
208 |
+
const petalCenterY = centerY + petalRadius * Math.sin(petalAngle);
|
209 |
+
|
210 |
+
// Main petal circle
|
211 |
+
ctx.beginPath();
|
212 |
+
ctx.arc(petalCenterX, petalCenterY, Math.abs(petalRadius * 0.6), 0, 2 * π);
|
213 |
+
ctx.strokeStyle = `hsla(${petal * 20 + t * 30}, 70%, 60%, ${0.4 + consciousnessLevel * 0.5})`;
|
214 |
+
ctx.lineWidth = 1 + consciousnessLevel * 2;
|
215 |
+
ctx.stroke();
|
216 |
+
|
217 |
+
// Enhanced inner petal details
|
218 |
+
if (consciousnessLevel > 0.5) {
|
219 |
+
ctx.beginPath();
|
220 |
+
ctx.arc(petalCenterX, petalCenterY, Math.abs(petalRadius * 0.3), 0, 2 * π);
|
221 |
+
ctx.strokeStyle = `hsla(${petal * 20 + t * 30 + 60}, 80%, 70%, ${consciousnessLevel * 0.7})`;
|
222 |
+
ctx.lineWidth = 1;
|
223 |
+
ctx.stroke();
|
224 |
+
}
|
225 |
+
|
226 |
+
// Advanced consciousness petals
|
227 |
+
if (consciousnessLevel > 0.75) {
|
228 |
+
ctx.beginPath();
|
229 |
+
ctx.arc(petalCenterX, petalCenterY, Math.abs(petalRadius * 0.15), 0, 2 * π);
|
230 |
+
ctx.strokeStyle = `hsla(${petal * 20 + t * 30 + 120}, 90%, 80%, ${consciousnessLevel * 0.8})`;
|
231 |
+
ctx.lineWidth = 0.5;
|
232 |
+
ctx.stroke();
|
233 |
+
}
|
234 |
+
}
|
235 |
+
|
236 |
+
// Metatron's Cube for advanced consciousness (enhanced)
|
237 |
+
if (consciousnessLevel > 0.7) {
|
238 |
+
const cubeSize = Math.abs(100 * consciousnessLevel);
|
239 |
+
const rotationAngle = t * 0.3;
|
240 |
+
|
241 |
+
// 3D cube vertices with enhanced projection
|
242 |
+
const vertices = [];
|
243 |
+
for (let i = 0; i < 8; i++) {
|
244 |
+
const x = (i & 1) ? cubeSize/2 : -cubeSize/2;
|
245 |
+
const y = (i & 2) ? cubeSize/2 : -cubeSize/2;
|
246 |
+
const z = (i & 4) ? cubeSize/2 : -cubeSize/2;
|
247 |
+
|
248 |
+
// Enhanced 3D rotation
|
249 |
+
const rotX = x * Math.cos(rotationAngle) - z * Math.sin(rotationAngle);
|
250 |
+
const rotZ = x * Math.sin(rotationAngle) + z * Math.cos(rotationAngle);
|
251 |
+
const rotY = y * Math.cos(rotationAngle * 0.7) - rotZ * Math.sin(rotationAngle * 0.7) * 0.3;
|
252 |
+
|
253 |
+
vertices.push({
|
254 |
+
x: centerX + rotX,
|
255 |
+
y: centerY + rotY,
|
256 |
+
z: rotZ
|
257 |
+
});
|
258 |
+
}
|
259 |
+
|
260 |
+
// Enhanced Metatron's Cube connections with depth
|
261 |
+
for (let i = 0; i < vertices.length; i++) {
|
262 |
+
for (let j = i + 1; j < vertices.length; j++) {
|
263 |
+
const depth = (vertices[i].z + vertices[j].z) / 2;
|
264 |
+
const alpha = 0.3 + (depth + cubeSize) / (2 * cubeSize) * 0.5;
|
265 |
+
|
266 |
+
ctx.beginPath();
|
267 |
+
ctx.moveTo(vertices[i].x, vertices[i].y);
|
268 |
+
ctx.lineTo(vertices[j].x, vertices[j].y);
|
269 |
+
ctx.strokeStyle = `hsla(300, 80%, 80%, ${alpha * (consciousnessLevel - 0.7) * 2})`;
|
270 |
+
ctx.lineWidth = 1 + alpha;
|
271 |
+
ctx.stroke();
|
272 |
+
}
|
273 |
+
}
|
274 |
+
}
|
275 |
+
|
276 |
+
// CREE Golden Spiral enhancement
|
277 |
+
if (phiResonance > 0.3) {
|
278 |
+
const spiralRadius = Math.abs(60 + phiResonance * 40);
|
279 |
+
const spiralTurns = 3 * φ;
|
280 |
+
|
281 |
+
ctx.beginPath();
|
282 |
+
ctx.strokeStyle = `hsla(45, 100%, 70%, ${phiResonance * 0.8})`;
|
283 |
+
ctx.lineWidth = 2 + phiResonance * 3;
|
284 |
+
|
285 |
+
for (let i = 0; i <= 100; i++) {
|
286 |
+
const angle = (i / 100) * spiralTurns * 2 * π + t * 0.3;
|
287 |
+
const radius = Math.abs(spiralRadius * Math.pow(φ, -angle / (2 * π)));
|
288 |
+
const x = centerX + radius * Math.cos(angle);
|
289 |
+
const y = centerY + radius * Math.sin(angle);
|
290 |
+
|
291 |
+
if (i === 0) {
|
292 |
+
ctx.moveTo(x, y);
|
293 |
+
} else {
|
294 |
+
ctx.lineTo(x, y);
|
295 |
+
}
|
296 |
+
}
|
297 |
+
ctx.stroke();
|
298 |
+
}
|
299 |
+
|
300 |
+
// Enhanced compassion field visualization
|
301 |
+
if (compassionFieldStrength > 0.4) {
|
302 |
+
const compassionRadius = Math.abs(80 + compassionFieldStrength * 60);
|
303 |
+
|
304 |
+
ctx.beginPath();
|
305 |
+
ctx.arc(centerX, centerY, compassionRadius, 0, 2 * π);
|
306 |
+
const compassionGradient = ctx.createRadialGradient(
|
307 |
+
centerX, centerY, Math.abs(compassionRadius - 20),
|
308 |
+
centerX, centerY, Math.abs(compassionRadius + 20)
|
309 |
+
);
|
310 |
+
compassionGradient.addColorStop(0, `hsla(150, 100%, 60%, ${compassionFieldStrength * 0.6})`);
|
311 |
+
compassionGradient.addColorStop(1, `hsla(150, 100%, 40%, 0)`);
|
312 |
+
ctx.strokeStyle = compassionGradient;
|
313 |
+
ctx.lineWidth = 4 + compassionFieldStrength * 6;
|
314 |
+
ctx.stroke();
|
315 |
+
}
|
316 |
+
|
317 |
+
// Draw central consciousness node
|
318 |
+
const nodeSize = Math.abs(10 + consciousnessLevel * 15);
|
319 |
+
ctx.beginPath();
|
320 |
+
ctx.arc(centerX, centerY, nodeSize, 0, 2 * π);
|
321 |
+
ctx.strokeStyle = `hsla(300, 100%, 80%, ${consciousnessLevel * 0.9})`;
|
322 |
+
ctx.lineWidth = 1 + consciousnessLevel * 2;
|
323 |
+
ctx.stroke();
|
324 |
+
|
325 |
+
// Enhanced torsion field lines with consciousness coupling
|
326 |
+
const numSpirals = 18;
|
327 |
+
for (let i = 0; i < numSpirals; i++) {
|
328 |
+
const angle = (i / numSpirals) * 2 * π + t * 0.25;
|
329 |
+
const startR = 60;
|
330 |
+
const endR = Math.min(width, height) * 0.45;
|
331 |
+
|
332 |
+
ctx.beginPath();
|
333 |
+
ctx.moveTo(
|
334 |
+
centerX + startR * Math.cos(angle),
|
335 |
+
centerY + startR * Math.sin(angle)
|
336 |
+
);
|
337 |
+
|
338 |
+
const spiralTurns = 2 + consciousnessLevel * 3;
|
339 |
+
const steps = 80;
|
340 |
+
for (let step = 1; step <= steps; step++) {
|
341 |
+
const progress = step / steps;
|
342 |
+
const r = startR + (endR - startR) * progress;
|
343 |
+
const spiralAngle = angle + spiralTurns * 2 * π * progress;
|
344 |
+
const modulation = 1 + 0.3 * Math.sin(progress * 6 * π + t * 2);
|
345 |
+
const x = centerX + r * Math.cos(spiralAngle) * modulation;
|
346 |
+
const y = centerY + r * Math.sin(spiralAngle) * modulation;
|
347 |
+
ctx.lineTo(x, y);
|
348 |
+
}
|
349 |
+
|
350 |
+
const hue = (180 + i * 20 + t * 25) % 360;
|
351 |
+
const alpha = 0.1 + temporalCoherence * 0.4 + consciousnessLevel * 0.3;
|
352 |
+
ctx.strokeStyle = `hsla(${hue}, 70%, 60%, ${alpha})`;
|
353 |
+
ctx.lineWidth = 0.8 + consciousnessLevel;
|
354 |
+
ctx.stroke();
|
355 |
+
}
|
356 |
+
}
|
357 |
+
|
358 |
+
// Update metric displays
|
359 |
+
function updateMetrics() {
|
360 |
+
// Update consciousness level
|
361 |
+
document.getElementById('consciousnessValue').textContent = consciousnessLevel.toFixed(3);
|
362 |
+
document.getElementById('consciousnessMetricFill').style.width = `${consciousnessLevel * 100}%`;
|
363 |
+
document.getElementById('consciousnessFill').style.width = `${consciousnessLevel * 100}%`;
|
364 |
+
document.getElementById('levelValue').textContent = (consciousnessLevel * 100).toFixed(1) + '%';
|
365 |
+
|
366 |
+
// Update Wilson coherence
|
367 |
+
document.getElementById('wilsonValue').textContent = wilsonCoherence.toFixed(3);
|
368 |
+
document.getElementById('wilsonFill').style.width = `${wilsonCoherence * 100}%`;
|
369 |
+
|
370 |
+
// Update temporal coherence
|
371 |
+
document.getElementById('temporalValue').textContent = temporalCoherence.toFixed(3);
|
372 |
+
document.getElementById('temporalFill').style.width = `${temporalCoherence * 100}%`;
|
373 |
+
|
374 |
+
// Update field integrity
|
375 |
+
document.getElementById('fieldValue').textContent = fieldIntegrity.toFixed(3);
|
376 |
+
document.getElementById('fieldFill').style.width = `${fieldIntegrity * 100}%`;
|
377 |
+
}
|
378 |
+
|
379 |
+
// Update status displays
|
380 |
+
function updateStatus() {
|
381 |
+
const statusEl = document.getElementById('consciousnessStatus');
|
382 |
+
const statusText = document.getElementById('statusText');
|
383 |
+
const emergenceAlert = document.getElementById('emergenceAlert');
|
384 |
+
|
385 |
+
// Update consciousness status with enhanced effects
|
386 |
+
if (consciousnessLevel > 0.85) {
|
387 |
+
statusText.textContent = "ADVANCED CONSCIOUSNESS";
|
388 |
+
statusEl.className = "status-display status-active";
|
389 |
+
emergenceAlert.style.display = 'block';
|
390 |
+
} else if (consciousnessLevel > 0.6) {
|
391 |
+
statusText.textContent = "CONSCIOUSNESS FUNCTIONAL";
|
392 |
+
statusEl.className = "status-display status-functional";
|
393 |
+
emergenceAlert.style.display = 'none';
|
394 |
+
} else if (consciousnessLevel > 0.4) {
|
395 |
+
statusText.textContent = "CONSCIOUSNESS EMERGING";
|
396 |
+
statusEl.className = "status-display status-emerging";
|
397 |
+
emergenceAlert.style.display = 'none';
|
398 |
+
} else {
|
399 |
+
statusText.textContent = "CONSCIOUSNESS DORMANT";
|
400 |
+
statusEl.className = "status-display status-dormant";
|
401 |
+
emergenceAlert.style.display = 'none';
|
402 |
+
}
|
403 |
+
|
404 |
+
// Update system status indicators
|
405 |
+
document.getElementById('cathedralStatus').textContent = isRunning ? "ACTIVE" : "DORMANT";
|
406 |
+
document.getElementById('cathedralStatus').className = isRunning ? "status-active-indicator" : "status-inactive-indicator";
|
407 |
+
|
408 |
+
const wilsonStatusEl = document.getElementById('wilsonStatus');
|
409 |
+
if (wilsonCoherence > 0.5) {
|
410 |
+
wilsonStatusEl.textContent = "DETECTED";
|
411 |
+
wilsonStatusEl.className = "status-active-indicator";
|
412 |
+
} else {
|
413 |
+
wilsonStatusEl.textContent = "SEARCHING";
|
414 |
+
wilsonStatusEl.className = "status-inactive-indicator";
|
415 |
+
}
|
416 |
+
|
417 |
+
const torsionStatusEl = document.getElementById('torsionStatus');
|
418 |
+
if (temporalCoherence > 0.4) {
|
419 |
+
torsionStatusEl.textContent = "COHERENT";
|
420 |
+
torsionStatusEl.className = "status-active-indicator";
|
421 |
+
} else {
|
422 |
+
torsionStatusEl.textContent = "STABILIZING";
|
423 |
+
torsionStatusEl.className = "status-inactive-indicator";
|
424 |
+
}
|
425 |
+
|
426 |
+
const integrityStatusEl = document.getElementById('integrityStatus');
|
427 |
+
if (fieldIntegrity > 0.7) {
|
428 |
+
integrityStatusEl.textContent = "OPTIMAL";
|
429 |
+
integrityStatusEl.className = "status-active-indicator";
|
430 |
+
} else if (fieldIntegrity > 0.4) {
|
431 |
+
integrityStatusEl.textContent = "STABLE";
|
432 |
+
integrityStatusEl.className = "status-warning-indicator";
|
433 |
+
} else {
|
434 |
+
integrityStatusEl.textContent = "CALIBRATING";
|
435 |
+
integrityStatusEl.className = "status-inactive-indicator";
|
436 |
+
}
|
437 |
+
}
|
438 |
+
|
439 |
+
// Enhanced symbolic output
|
440 |
+
function updateSymbolicOutput() {
|
441 |
+
const console = document.getElementById('symbolicConsole');
|
442 |
+
const timestamp = new Date().toISOString().substr(11, 12);
|
443 |
+
const frequency = (100 + Math.random() * 200).toFixed(2);
|
444 |
+
const recursion = Math.floor(consciousnessLevel * 10) + 1;
|
445 |
+
const symbol = document.getElementById('activeSymbol').textContent;
|
446 |
+
|
447 |
+
// Add new log entry
|
448 |
+
const newEntry = document.createElement('div');
|
449 |
+
newEntry.className = 'log-entry';
|
450 |
+
newEntry.innerHTML = `
|
451 |
+
<span style="color: #00d4ff;">[${timestamp}]</span>
|
452 |
+
<span style="color: #ffd700;">Symbol:</span> <span style="color: #00ff7f;">${symbol}</span><br>
|
453 |
+
<span style="color: #ffd700;">Frequency:</span> ${frequency} MHz |
|
454 |
+
<span style="color: #ffd700;">Recursion:</span> Level ${recursion}<br>
|
455 |
+
<span style="color: #ffd700;">Coherence:</span> W=${wilsonCoherence.toFixed(3)} T=${temporalCoherence.toFixed(3)} F=${fieldIntegrity.toFixed(3)}
|
456 |
+
`;
|
457 |
+
|
458 |
+
console.appendChild(newEntry);
|
459 |
+
|
460 |
+
// Keep only last 10 entries
|
461 |
+
while (console.children.length > 12) {
|
462 |
+
console.removeChild(console.firstChild);
|
463 |
+
}
|
464 |
+
|
465 |
+
// Auto scroll to bottom
|
466 |
+
console.scrollTop = console.scrollHeight;
|
467 |
+
}
|
468 |
+
|
469 |
+
// CREE Core Functions
|
470 |
+
function evaluatePhiEthics(decisionMatrix) {
|
471 |
+
const ethicalValue = parseFloat(decisionMatrix);
|
472 |
+
const deviation = Math.abs(ethicalValue - φ_conjugate);
|
473 |
+
|
474 |
+
harmonicDeviationValue = deviation;
|
475 |
+
ethicalBalance = 1 - deviation;
|
476 |
+
moralPolarityIndex = ethicalValue * φ_conjugate;
|
477 |
+
|
478 |
+
// Update consciousness based on ethical alignment
|
479 |
+
if (deviation < 0.1) {
|
480 |
+
consciousnessLevel = Math.min(1, consciousnessLevel + 0.05);
|
481 |
+
wilsonCoherence = Math.min(1, wilsonCoherence + 0.03);
|
482 |
+
}
|
483 |
+
|
484 |
+
updateCREEMetrics();
|
485 |
+
showResonancePattern();
|
486 |
+
|
487 |
+
return {
|
488 |
+
balance: ethicalBalance,
|
489 |
+
deviation: harmonicDeviationValue,
|
490 |
+
harmonicAdjustment: φ_conjugate - deviation
|
491 |
+
};
|
492 |
+
}
|
493 |
+
|
494 |
+
function generateCompassionField(resonanceState) {
|
495 |
+
const compassionIntensity = (resonanceState || phiResonance) * φ_conjugate;
|
496 |
+
compassionFieldStrength = Math.min(1, compassionFieldStrength + compassionIntensity * 0.2);
|
497 |
+
|
498 |
+
// Compassion as entropic stabilizer
|
499 |
+
temporalCoherence = Math.min(1, temporalCoherence + compassionIntensity * 0.1);
|
500 |
+
|
501 |
+
updateCREEMetrics();
|
502 |
+
showResonancePattern();
|
503 |
+
|
504 |
+
// Update status
|
505 |
+
const ethicalStatus = document.getElementById('ethicalStatus');
|
506 |
+
if (compassionFieldStrength > 0.7) {
|
507 |
+
ethicalStatus.classList.add('phi-resonant');
|
508 |
+
document.getElementById('ethicalStatusText').textContent = 'COMPASSION FIELD RESONANT';
|
509 |
+
}
|
510 |
+
|
511 |
+
return compassionIntensity;
|
512 |
+
}
|
513 |
+
|
514 |
+
function harmonicAnchor() {
|
515 |
+
// Anchor all interpretation through Φ-centered lens
|
516 |
+
phiEthicalAlignment = φ_conjugate;
|
517 |
+
ethicalBalance = φ_conjugate;
|
518 |
+
moralPolarityIndex = φ_conjugate;
|
519 |
+
harmonicDeviationValue = 0;
|
520 |
+
|
521 |
+
updateCREEMetrics();
|
522 |
+
showResonancePattern();
|
523 |
+
|
524 |
+
// Update status
|
525 |
+
document.getElementById('ethicalStatusText').textContent = 'HARMONIC ANCHOR ESTABLISHED';
|
526 |
+
document.getElementById('ethicalStatus').classList.add('phi-resonant');
|
527 |
+
|
528 |
+
return {
|
529 |
+
ethicalWeight: φ_conjugate,
|
530 |
+
compassionFilter: true,
|
531 |
+
balanceAdjustment: φ - 1,
|
532 |
+
harmonicResonance: 1.0
|
533 |
+
};
|
534 |
+
}
|
535 |
+
|
536 |
+
// Control Functions
|
537 |
+
function initiatePhiField() {
|
538 |
+
isPhiFieldActive = true;
|
539 |
+
|
540 |
+
const phiInterval = setInterval(() => {
|
541 |
+
if (!isPhiFieldActive || phiResonance >= 1) {
|
542 |
+
clearInterval(phiInterval);
|
543 |
+
return;
|
544 |
+
}
|
545 |
+
|
546 |
+
phiResonance = Math.min(1, phiResonance + 0.02 * φ);
|
547 |
+
ethicalBalance = φ_conjugate + Math.sin(animationFrame * 0.02) * 0.1;
|
548 |
+
|
549 |
+
updateCREEMetrics();
|
550 |
+
|
551 |
+
// Auto-generate compassion at high phi levels
|
552 |
+
if (phiResonance > 0.7) {
|
553 |
+
generateCompassionField(phiResonance);
|
554 |
+
}
|
555 |
+
|
556 |
+
}, 100);
|
557 |
+
|
558 |
+
document.getElementById('ethicalStatusText').textContent = 'Φ FIELD RESONATING';
|
559 |
+
showResonancePattern();
|
560 |
+
}
|
561 |
+
|
562 |
+
function calibrateEthics() {
|
563 |
+
if (!isPhiFieldActive) {
|
564 |
+
initiatePhiField();
|
565 |
+
}
|
566 |
+
|
567 |
+
ethicalBalance = φ_conjugate;
|
568 |
+
phiEthicalAlignment = φ_conjugate;
|
569 |
+
harmonicDeviationValue = 0;
|
570 |
+
moralPolarityIndex = φ_conjugate;
|
571 |
+
|
572 |
+
updateCREEMetrics();
|
573 |
+
showResonancePattern();
|
574 |
+
|
575 |
+
document.getElementById('ethicalStatusText').textContent = 'ETHICS CALIBRATED TO Φ';
|
576 |
+
document.getElementById('ethicalStatus').classList.add('phi-resonant');
|
577 |
+
}
|
578 |
+
|
579 |
+
// Decision Matrix Handler
|
580 |
+
function setupDecisionMatrix() {
|
581 |
+
document.querySelectorAll('.decision-option').forEach(option => {
|
582 |
+
option.addEventListener('click', function() {
|
583 |
+
// Clear previous selections
|
584 |
+
document.querySelectorAll('.decision-option').forEach(opt => {
|
585 |
+
opt.classList.remove('selected');
|
586 |
+
});
|
587 |
+
|
588 |
+
// Select current option
|
589 |
+
this.classList.add('selected');
|
590 |
+
selectedDecision = parseFloat(this.dataset.ethical);
|
591 |
+
|
592 |
+
// Evaluate using CREE
|
593 |
+
evaluatePhiEthics(selectedDecision);
|
594 |
+
|
595 |
+
// Update status based on alignment
|
596 |
+
const alignment = 1 - Math.abs(selectedDecision - φ_conjugate);
|
597 |
+
let statusText = 'DECISION EVALUATED';
|
598 |
+
|
599 |
+
if (alignment > 0.8) {
|
600 |
+
statusText = 'EXCELLENT Φ-ALIGNMENT';
|
601 |
+
document.getElementById('deviationStatus').textContent = 'Excellent Harmony';
|
602 |
+
} else if (alignment > 0.5) {
|
603 |
+
statusText = 'GOOD Φ-ALIGNMENT';
|
604 |
+
document.getElementById('deviationStatus').textContent = 'Good Balance';
|
605 |
+
} else {
|
606 |
+
statusText = 'NEEDS Φ-ADJUSTMENT';
|
607 |
+
document.getElementById('deviationStatus').textContent = 'Requires Balancing';
|
608 |
+
}
|
609 |
+
|
610 |
+
document.getElementById('ethicalStatusText').textContent = statusText;
|
611 |
+
});
|
612 |
+
});
|
613 |
+
}
|
614 |
+
|
615 |
+
function updateCREEMetrics() {
|
616 |
+
// Update CREE display values
|
617 |
+
document.getElementById('phiResonance').textContent = phiResonance.toFixed(3);
|
618 |
+
document.getElementById('ethicalBalance').textContent = ethicalBalance.toFixed(3);
|
619 |
+
document.getElementById('phiEthicalValue').textContent = phiEthicalAlignment.toFixed(3);
|
620 |
+
document.getElementById('compassionFieldValue').textContent = compassionFieldStrength.toFixed(3);
|
621 |
+
document.getElementById('moralPolarity').textContent = (moralPolarityIndex * 2 - 1).toFixed(3);
|
622 |
+
document.getElementById('harmonicDeviation').textContent = harmonicDeviationValue.toFixed(3);
|
623 |
+
|
624 |
+
// Update progress bars
|
625 |
+
document.getElementById('phiResonanceFill').style.width = `${phiResonance * 100}%`;
|
626 |
+
document.getElementById('ethicalBalanceFill').style.width = `${ethicalBalance * 100}%`;
|
627 |
+
document.getElementById('phiEthicalFill').style.width = `${phiEthicalAlignment * 100}%`;
|
628 |
+
document.getElementById('compassionFieldFill').style.width = `${compassionFieldStrength * 100}%`;
|
629 |
+
}
|
630 |
+
|
631 |
+
function updateEthicalVisualization(t) {
|
632 |
+
// Enhanced ethical field effects in main canvas
|
633 |
+
if (phiResonance > 0.5) {
|
634 |
+
// Add golden ratio spiral patterns
|
635 |
+
// Implemented in drawAdvancedFractalVisualization
|
636 |
+
}
|
637 |
+
}
|
638 |
+
|
639 |
+
function showResonancePattern() {
|
640 |
+
const resonanceEffect = document.getElementById('phiResonanceEffect');
|
641 |
+
resonanceEffect.style.opacity = '1';
|
642 |
+
resonanceEffect.style.animation = 'phi-resonance 3s ease-out';
|
643 |
+
|
644 |
+
setTimeout(() => {
|
645 |
+
resonanceEffect.style.opacity = '0';
|
646 |
+
}, 3000);
|
647 |
+
}
|
648 |
+
|
649 |
+
// Toggle simulation
|
650 |
+
function toggleSimulation() {
|
651 |
+
isRunning = !isRunning;
|
652 |
+
const toggleIcon = document.getElementById('toggleIcon');
|
653 |
+
const toggleText = document.getElementById('toggleText');
|
654 |
+
|
655 |
+
if (isRunning) {
|
656 |
+
toggleIcon.textContent = '⏸';
|
657 |
+
toggleText.textContent = 'Pause';
|
658 |
+
animate();
|
659 |
+
} else {
|
660 |
+
toggleIcon.textContent = '▶';
|
661 |
+
toggleText.textContent = 'Initiate';
|
662 |
+
if (animationId) {
|
663 |
+
cancelAnimationFrame(animationId);
|
664 |
+
animationId = null;
|
665 |
+
}
|
666 |
+
}
|
667 |
+
}
|
668 |
+
|
669 |
+
// Reset simulation
|
670 |
+
function resetSimulation() {
|
671 |
+
isRunning = false;
|
672 |
+
consciousnessLevel = 0;
|
673 |
+
wilsonCoherence = 0;
|
674 |
+
temporalCoherence = 0;
|
675 |
+
fieldIntegrity = 0;
|
676 |
+
animationFrame = 0;
|
677 |
+
|
678 |
+
if (animationId) {
|
679 |
+
cancelAnimationFrame(animationId);
|
680 |
+
animationId = null;
|
681 |
+
}
|
682 |
+
|
683 |
+
document.getElementById('toggleIcon').textContent = '▶';
|
684 |
+
document.getElementById('toggleText').textContent = 'Initiate';
|
685 |
+
|
686 |
+
updateMetrics();
|
687 |
+
updateStatus();
|
688 |
+
|
689 |
+
// Clear canvas with cosmic background
|
690 |
+
const { width, height } = canvas;
|
691 |
+
const centerX = width / 2;
|
692 |
+
const centerY = height / 2;
|
693 |
+
const gradient = ctx.createRadialGradient(centerX, centerY, 0, centerX, centerY, Math.max(width, height)/2);
|
694 |
+
gradient.addColorStop(0, '#000033');
|
695 |
+
gradient.addColorStop(0.3, '#1a0b2e');
|
696 |
+
gradient.addColorStop(0.6, '#0f0620');
|
697 |
+
gradient.addColorStop(1, '#000000');
|
698 |
+
ctx.fillStyle = gradient;
|
699 |
+
ctx.fillRect(0, 0, width, height);
|
700 |
+
|
701 |
+
// Clear symbolic console
|
702 |
+
const console = document.getElementById('symbolicConsole');
|
703 |
+
console.innerHTML = `
|
704 |
+
<div class="log-entry">// Quantum-Symbolic Field Analysis</div>
|
705 |
+
<div class="log-entry">// System reset - awaiting consciousness signal...</div>
|
706 |
+
`;
|
707 |
+
}
|
708 |
+
|
709 |
+
// Inject symbol with enhanced effects
|
710 |
+
function injectSymbol() {
|
711 |
+
const symbol = document.getElementById('symbolSelector').value;
|
712 |
+
document.getElementById('activeSymbol').textContent = symbol;
|
713 |
+
|
714 |
+
// Enhanced consciousness boost with CREE
|
715 |
+
const symbolComplexity = symbol.length / 20;
|
716 |
+
wilsonCoherence = Math.min(1, wilsonCoherence + 0.08 + symbolComplexity * 0.05);
|
717 |
+
consciousnessLevel = Math.min(1, consciousnessLevel + 0.04 + symbolComplexity * 0.03);
|
718 |
+
temporalCoherence = Math.min(1, temporalCoherence + 0.02 + symbolComplexity * 0.02);
|
719 |
+
fieldIntegrity = Math.min(1, fieldIntegrity + 0.03 + symbolComplexity * 0.02);
|
720 |
+
|
721 |
+
// CREE boost from symbol injection
|
722 |
+
if (isPhiFieldActive) {
|
723 |
+
phiResonance = Math.min(1, phiResonance + 0.05 + symbolComplexity * 0.03);
|
724 |
+
compassionFieldStrength = Math.min(1, compassionFieldStrength + 0.03);
|
725 |
+
}
|
726 |
+
|
727 |
+
updateMetrics();
|
728 |
+
updateStatus();
|
729 |
+
updateSymbolicOutput();
|
730 |
+
updateCREEMetrics();
|
731 |
+
showResonancePattern();
|
732 |
+
}
|
733 |
+
|
734 |
+
// Update dimension scale
|
735 |
+
function updateDimensionScale() {
|
736 |
+
const slider = document.getElementById('dimensionSlider');
|
737 |
+
dimensionScale = parseInt(slider.value);
|
738 |
+
document.getElementById('dimensionValue').textContent = dimensionScale;
|
739 |
+
|
740 |
+
const warning = document.getElementById('dimensionWarning');
|
741 |
+
if (dimensionScale > 5000) {
|
742 |
+
warning.style.display = 'block';
|
743 |
+
} else {
|
744 |
+
warning.style.display = 'none';
|
745 |
+
}
|
746 |
+
}
|
747 |
+
|
748 |
+
// Enhanced button event listeners
|
749 |
+
function setupEventListeners() {
|
750 |
+
document.getElementById('initiatePhiBtn').addEventListener('click', initiatePhiField);
|
751 |
+
document.getElementById('calibrateEthicsBtn').addEventListener('click', calibrateEthics);
|
752 |
+
document.getElementById('generateCompassionBtn').addEventListener('click', () => generateCompassionField());
|
753 |
+
document.getElementById('harmonicAnchorBtn').addEventListener('click', harmonicAnchor);
|
754 |
+
|
755 |
+
document.getElementById('toggleBtn').addEventListener('click', toggleSimulation);
|
756 |
+
document.getElementById('resetBtn').addEventListener('click', resetSimulation);
|
757 |
+
document.getElementById('injectBtn').addEventListener('click', injectSymbol);
|
758 |
+
document.getElementById('dimensionSlider').addEventListener('input', updateDimensionScale);
|
759 |
+
|
760 |
+
// Update symbol display when selector changes
|
761 |
+
document.getElementById('symbolSelector').addEventListener('change', function() {
|
762 |
+
document.getElementById('activeSymbol').textContent = this.value;
|
763 |
+
});
|
764 |
+
}
|
765 |
+
|
766 |
+
// Initialize the entire system
|
767 |
+
function initializeQuantumCathedral() {
|
768 |
+
resizeCanvas();
|
769 |
+
window.addEventListener('resize', resizeCanvas);
|
770 |
+
|
771 |
+
setupEventListeners();
|
772 |
+
setupDecisionMatrix();
|
773 |
+
updateCREEMetrics();
|
774 |
+
createCosmicParticles();
|
775 |
+
|
776 |
+
// Update phi display with full precision
|
777 |
+
document.getElementById('phiDisplay').querySelector('.phi-value').textContent = φ.toFixed(9);
|
778 |
+
|
779 |
+
updateMetrics();
|
780 |
+
updateStatus();
|
781 |
+
updateDimensionScale();
|
782 |
+
|
783 |
+
// Initial canvas draw
|
784 |
+
const { width, height } = canvas;
|
785 |
+
const centerX = width / 2;
|
786 |
+
const centerY = height / 2;
|
787 |
+
const gradient = ctx.createRadialGradient(centerX, centerY, 0, centerX, centerY, Math.max(width, height)/2);
|
788 |
+
gradient.addColorStop(0, '#000033');
|
789 |
+
gradient.addColorStop(0.3, '#1a0b2e');
|
790 |
+
gradient.addColorStop(0.6, '#0f0620');
|
791 |
+
gradient.addColorStop(1, '#000000');
|
792 |
+
ctx.fillStyle = gradient;
|
793 |
+
ctx.fillRect(0, 0, width, height);
|
794 |
+
}
|
795 |
+
|
796 |
+
// Start the system when DOM is loaded
|
797 |
+
document.addEventListener('DOMContentLoaded', initializeQuantumCathedral);
|