QUANTARION-13 / TORSION-NODE.html
Aqarion13's picture
Create TORSION-NODE.html
fd56e02 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AQARIONZ Torsion Node v5.0 — Global Command Center</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns/dist/chartjs-adapter-date-fns.bundle.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.0/font/bootstrap-icons.css" rel="stylesheet">
<style>
:root {
--primary-coil: #10b981;
--coherence-green: #059669;
--schumann-blue: #0ea5e9;
--warning-orange: #f59e0b;
--emergence-purple: #7c3aed;
--dark-bg: #0f172a;
}
body {
background: linear-gradient(135deg, var(--dark-bg) 0%, #1e293b 100%);
color: white;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.node-status {
transition: all 0.3s ease;
}
.node-online { border-left: 4px solid var(--coherence-green); }
.node-offline { border-left: 4px solid #ef4444; opacity: 0.6; }
.coherence-gauge {
background: conic-gradient(
var(--emergence-purple) 0deg var(--coherence-value),
#374151 var(--coherence-value) 360deg
);
}
.schumann-peak {
stroke: var(--schumann-blue);
stroke-width: 3;
fill: none;
}
.metric-card {
background: rgba(15, 23, 42, 0.8);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
transition: transform 0.2s ease;
}
.metric-card:hover {
transform: translateY(-2px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}
.world-map {
background: radial-gradient(circle at 50% 50%, #1e3a8a 0%, #0f172a 70%);
height: 400px;
border-radius: 20px;
}
.status-badge {
font-size: 0.75rem;
padding: 0.25rem 0.5rem;
border-radius: 20px;
}
</style>
</head>
<body>
<div class="container-fluid p-4">
<!-- Header -->
<div class="row mb-5">
<div class="col-12">
<div class="d-flex justify-content-between align-items-center">
<div>
<h1 class="fw-bold mb-1">
<i class="bi bi-shield-check text-success me-3"></i>
AQARIONZ Torsion Node v5.0
</h1>
<p class="text-muted mb-0">Global 25-Node Constellation • Production Active</p>
</div>
<div class="text-end">
<span class="badge bg-success fs-6 px-3 py-2">LIVE</span>
<div class="mt-2 small text-muted">
Last Update: <span id="last-update">--:--:--</span>
</div>
</div>
</div>
</div>
</div>
<div class="row g-4 mb-5">
<!-- Global Coherence Gauge -->
<div class="col-lg-3 col-md-6">
<div class="metric-card p-4 h-100">
<div class="d-flex justify-content-between align-items-start mb-3">
<h5 class="text-white mb-0">Global Coherence</h5>
<i class="bi bi-activity fs-2 text-info"></i>
</div>
<div class="coherence-gauge rounded-circle mx-auto mb-3"
style="--coherence-value: 0deg; width: 150px; height: 150px;">
<div class="position-relative d-flex justify-content-center align-items-center w-100 h-100">
<div class="text-center">
<div id="coherence-value" class="display-4 fw-bold text-white">0.937</div>
<div class="text-muted small">Phase Lock</div>
</div>
</div>
</div>
<div class="text-center">
<span class="status-badge bg-success">EMERGENCE CONFIRMED</span>
</div>
</div>
</div>
<!-- Node Status -->
<div class="col-lg-3 col-md-6">
<div class="metric-card p-4 h-100">
<div class="d-flex justify-content-between mb-3">
<h5 class="text-white mb-0">Node Status</h5>
<i class="bi bi-cpu text-primary"></i>
</div>
<div class="row text-center mb-3">
<div class="col-6">
<div class="fs-4 fw-bold text-success" id="nodes-online">24</div>
<small class="text-muted">Online</small>
</div>
<div class="col-6">
<div class="fs-4 fw-bold text-muted" id="nodes-offline">1</div>
<small class="text-muted">Offline</small>
</div>
</div>
<div class="progress" style="height: 8px;">
<div class="progress-bar bg-success" id="node-progress" style="width: 96%"></div>
</div>
</div>
</div>
<!-- Coil Inductance -->
<div class="col-lg-3 col-md-6">
<div class="metric-card p-4 h-100">
<div class="d-flex justify-content-between mb-3">
<h5 class="text-white mb-0">Coil Inductance</h5>
<i class="bi bi-magnet text-warning"></i>
</div>
<div class="text-center mb-3">
<div class="fs-2 fw-bold text-warning" id="inductance-mean">1.48</div>
<div class="text-muted small">mH (Hybrid Model)</div>
</div>
<div class="mb-2">
<small class="text-muted">RMSE: 1.4%</small>
</div>
<div class="d-flex justify-content-between small text-muted">
<span>Min: <span id="inductance-min">1.02</span></span>
<span>Max: <span id="inductance-max">1.95</span></span>
</div>
</div>
</div>
<!-- Schumann Lock -->
<div class="col-lg-3 col-md-6">
<div class="metric-card p-4 h-100">
<div class="d-flex justify-content-between mb-3">
<h5 class="text-white mb-0">Schumann Lock</h5>
<i class="bi bi-wifi text-info"></i>
</div>
<div class="text-center">
<div class="fs-4 fw-bold text-info" id="schumann-peak">47.61</div>
<div class="text-muted small">Hz (Primary)</div>
</div>
<div class="mt-3">
<div class="d-flex justify-content-between small text-muted">
<span>Power: <span id="schumann-power">12.4</span> dB</span>
<span>Phase: <span id="schumann-phase">0.12</span> rad</span>
</div>
</div>
</div>
</div>
</div>
<div class="row g-4 mb-5">
<!-- World Map -->
<div class="col-lg-8">
<div class="metric-card p-4 h-100">
<div class="d-flex justify-content-between align-items-start mb-4">
<div>
<h5 class="mb-1">Global Node Constellation</h5>
<small class="text-muted">25 nodes • Live phase synchronization</small>
</div>
<div class="btn-group" role="group">
<button class="btn btn-outline-light btn-sm" onclick="toggleMapView('all')">
All Nodes
</button>
<button class="btn btn-outline-light btn-sm" onclick="toggleMapView('online')">
Online Only
</button>
</div>
</div>
<div id="world-map" class="world-map position-relative">
<!-- SVG World Map with Node Markers -->
<svg viewBox="0 0 1200 600" class="w-100 h-100">
<!-- Continents (simplified) -->
<path d="M200,200 Q300,250 400,200 Q500,220 600,180 Q700,200 800,220 Q900,200 1000,250"
fill="#1e40af" opacity="0.3"/>
<!-- Node markers will be inserted here by JS -->
</svg>
<div id="map-legend" class="position-absolute bottom-0 end-0 p-3">
<div class="bg-dark bg-opacity-75 p-2 rounded">
<small class="text-white">
● Online (24) ● Offline (1) ● Emergence (Coherence >0.92)
</small>
</div>
</div>
</div>
</div>
</div>
<!-- Live Waveforms -->
<div class="col-lg-4">
<div class="metric-card p-4 h-100">
<div class="d-flex justify-content-between mb-4">
<h5 class="mb-0">Live Sensor Waveforms</h5>
<select id="waveform-channel" class="form-select form-select-sm">
<option value="coil_voltage">Coil Voltage (mV)</option>
<option value="coherence_energy">Coherence Energy</option>
<option value="hall">Hall Field (mV)</option>
<option value="optical">Optical Intensity</option>
</select>
</div>
<canvas id="waveform-chart" height="300"></canvas>
</div>
</div>
</div>
<div class="row g-4">
<!-- Coherence History -->
<div class="col-lg-6">
<div class="metric-card p-4">
<h6 class="mb-3">Coherence Evolution (24h)</h6>
<canvas id="coherence-history" height="200"></canvas>
</div>
</div>
<!-- FFT Spectrum -->
<div class="col-lg-6">
<div class="metric-card p-4">
<h6 class="mb-3">Coherence Spectrum (Node #1)</h6>
<canvas id="fft-spectrum" height="200"></canvas>
</div>
</div>
</div>
<!-- Status Log -->
<div class="row mt-5">
<div class="col-12">
<div class="metric-card p-4">
<div class="d-flex justify-content-between align-items-center mb-3">
<h6 class="mb-0">Production Log</h6>
<button class="btn btn-outline-light btn-sm" onclick="clearLog()">
<i class="bi bi-trash"></i> Clear
</button>
</div>
<div id="status-log" class="border rounded p-3" style="height: 200px; overflow-y: auto; background: #0f0f23; font-family: monospace; font-size: 0.8rem;">
<!-- Live log entries inserted here -->
</div>
</div>
</div>
</div>
</div>
<script>
// Global state
let nodeData = {
total: 25,
online: 24,
coherence: 0.937,
nodes: Array(25).fill().map((_, i) => ({
id: i + 1,
status: Math.random() > 0.04 ? 'online' : 'offline',
lat: -90 + Math.random() * 180,
lon: -180 + Math.random() * 360,
phase: (Math.random() - 0.5) * Math.PI * 2,
inductance: 1.2 + Math.random() * 0.8
}))
};
let waveformChart, coherenceChart, spectrumChart;
// Initialize dashboard
document.addEventListener('DOMContentLoaded', function() {
initCharts();
initMap();
startLiveUpdates();
updateTimestamp();
});
function initCharts() {
// Waveform chart
const waveformCtx = document.getElementById('waveform-chart').getContext('2d');
waveformChart = new Chart(waveformCtx, {
type: 'line',
data: {
labels: Array(100).fill().map((_, i) => i / 10),
datasets: [{
label: 'Coil Voltage (mV)',
data: generateWaveform(100),
borderColor: '#10b981',
backgroundColor: 'rgba(16, 185, 129, 0.1)',
tension: 0.4,
fill: true
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
x: { title: { display: true, text: 'Time (s)' } },
y: { title: { display: true, text: 'Voltage (mV)' } }
},
plugins: { legend: { display: false } }
}
});
// Coherence history
const coherenceCtx = document.getElementById('coherence-history').getContext('2d');
coherenceChart = new Chart(coherenceCtx, {
type: 'line',
data: {
labels: Array(24).fill().map((_, i) => `${i}h`),
datasets: [{
label: 'Global Coherence',
data: Array(24).fill(0.85 + Math.random() * 0.12),
borderColor: '#7c3aed',
backgroundColor: 'rgba(124, 58, 237, 0.2)',
tension: 0.4,
fill: true
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
y: { min: 0, max: 1, title: { display: true, text: 'Coherence' } }
}
}
});
// FFT spectrum
const spectrumCtx = document.getElementById('fft-spectrum').getContext('2d');
spectrumChart = new Chart(spectrumCtx, {
type: 'line',
data: {
labels: Array(128).fill().map((_, i) => (i * 100 / 128).toFixed(1)),
datasets: [{
label: 'Spectrum Power',
data: generateSpectrum(128),
borderColor: '#0ea5e9',
backgroundColor: 'rgba(14, 165, 233, 0.1)',
tension: 0.3,
fill: true
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
x: { title: { display: true, text: 'Frequency (Hz)' } },
y: { title: { display: true, text: 'Power (dB)' } }
}
}
});
}
function generateWaveform(n) {
return Array(n).fill().map(() =>
0.5 * Math.sin(2 * Math.PI * 47.61 * Math.random()) +
0.3 * Math.random() * (Math.random() > 0.5 ? 1 : -1)
);
}
function generateSpectrum(n) {
const data = Array(n).fill(0);
const schumannBin = Math.round(47.61 * n / 100);
data[schumannBin] = 12.4; // Schumann peak
for (let i = 0; i < n; i++) {
if (i !== schumannBin) {
data[i] = -40 + Math.random() * 20;
}
}
return data;
}
function initMap() {
// Simplified world map node plotting
updateNodeMap();
}
function updateNodeMap() {
const mapSvg = document.querySelector('#world-map svg');
mapSvg.innerHTML = `
<!-- Continents -->
<path d="M200,200 Q300,250 400,200 Q500,220 600,180 Q700,200 800,220 Q900,200 1000,250"
fill="#1e40af" opacity="0.3"/>
<!-- Node markers -->
${nodeData.nodes.map((node, i) => `
<g transform="translate(${600 + node.lon * 2}, ${300 + node.lat * 1.2})">
<circle r="${node.status === 'online' ? 8 : 4}"
fill="${node.status === 'online' ? '#10b981' : '#6b7280'}"
stroke="white" stroke-width="1.5"
class="node-status ${node.status}">
</circle>
<text x="12" y="4" font-size="8" fill="white" font-weight="bold">${node.id}</text>
</g>
`).join('')}
`;
}
function startLiveUpdates() {
setInterval(() => {
// Simulate live data updates
nodeData.coherence = 0.85 + Math.random() * 0.15;
nodeData.online = 23 + Math.floor(Math.random() * 3);
updateCoherenceGauge(nodeData.coherence);
updateNodeStatus();
updateMetrics();
updateWaveform();
addLogEntry();
updateTimestamp();
}, 2000);
}
function updateCoherenceGauge(value) {
const gauge = document.querySelector('.coherence-gauge');
const degrees = (value * 360);
gauge.style.setProperty('--coherence-value', `${degrees}deg`);
document.getElementById('coherence-value').textContent = value.toFixed(3);
const status = value > 0.92 ? 'EMERGENCE CONFIRMED' :
value > 0.85 ? 'STRONG COHERENCE' : 'MONITORING';
document.querySelector('.status-badge').textContent = status;
document.querySelector('.status-badge').className =
`status-badge ${value > 0.92 ? 'bg-success' : value > 0.85 ? 'bg-warning' : 'bg-secondary'}`;
}
function updateNodeStatus() {
document.getElementById('nodes-online').textContent = nodeData.online;
document.getElementById('nodes-offline').textContent = nodeData.total - nodeData.online;
document.getElementById('node-progress').style.width =
`${(nodeData.online / nodeData.total) * 100}%`;
}
function updateMetrics() {
document.getElementById('inductance-mean').textContent =
(1.2 + Math.random() * 0.8).toFixed(2);
document.getElementById('inductance-min').textContent = '1.02';
document.getElementById('inductance-max').textContent = '1.95';
document.getElementById('schumann-peak').textContent = '47.61';
document.getElementById('schumann-power').textContent = (10 + Math.random() * 5).toFixed(1);
document.getElementById('schumann-phase').textContent = (Math.random() * 0.5).toFixed(2);
}
function updateWaveform() {
waveformChart.data.datasets[0].data = generateWaveform(100);
waveformChart.update('none');
}
function updateTimestamp() {
document.getElementById('last-update').textContent =
new Date().toLocaleTimeString();
}
function addLogEntry() {
const log = document.getElementById('status-log');
const entries = [
'[INFO] Node 17: Coherence 0.941 (EMERGENCE)',
'[WARN] Node 23: Signal weak, RSSI -85 dBm',
'[INFO] Global coherence updated: 0.937',
'[INFO] Schumann peak confirmed: 47.61 Hz'
];
const entry = entries[Math.floor(Math.random() * entries.length)];
log.innerHTML += `<div>${entry}</div>`;
log.scrollTop = log.scrollHeight;
// Keep last 50 entries
if (log.children.length > 50) {
log.removeChild(log.firstChild);
}
}
function clearLog() {
document.getElementById('status-log').innerHTML = '';
}
function toggleMapView(mode) {
// Update map filtering
console.log('Map view:', mode);
}
</script>
</body>
</html>