hypervision-gps / index.html
docto41's picture
Add 2 files
a10c829 verified
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HyperVision GPS - Système Satellite IA</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700&display=swap');
:root {
--primary: #3b82f6;
--secondary: #10b981;
--dark: #0f172a;
--light: #f8fafc;
--neon: #00f7ff;
}
body {
font-family: 'Orbitron', sans-serif;
background-color: #020617;
color: #e2e8f0;
}
.dashboard-grid {
display: grid;
grid-template-columns: 280px 1fr;
min-height: 100vh;
}
.neon-border {
border: 1px solid rgba(0, 247, 255, 0.3);
box-shadow: 0 0 10px rgba(0, 247, 255, 0.2);
}
.neon-text {
text-shadow: 0 0 5px var(--neon);
}
.ai-node {
position: relative;
background: rgba(15, 23, 42, 0.7);
transition: all 0.3s ease;
}
.ai-node:hover {
background: rgba(15, 23, 42, 0.9);
box-shadow: 0 0 15px rgba(0, 247, 255, 0.3);
}
.progress-ring__circle {
transition: stroke-dashoffset 0.35s;
transform: rotate(-90deg);
transform-origin: 50% 50%;
}
.map-container {
background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
position: relative;
overflow: hidden;
}
.zoom-level {
position: absolute;
bottom: 20px;
right: 20px;
background: rgba(0, 0, 0, 0.7);
padding: 10px;
border-radius: 5px;
font-size: 0.9rem;
}
.satellite-track {
position: absolute;
width: 4px;
height: 4px;
background: var(--neon);
border-radius: 50%;
box-shadow: 0 0 5px 2px var(--neon);
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { opacity: 0.7; }
50% { opacity: 1; }
100% { opacity: 0.7; }
}
.command-btn {
transition: all 0.2s;
}
.command-btn:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 247, 255, 0.4);
}
.status-indicator {
width: 10px;
height: 10px;
border-radius: 50%;
display: inline-block;
margin-right: 8px;
}
.status-active {
background-color: #10b981;
box-shadow: 0 0 10px #10b981;
}
.status-warning {
background-color: #f59e0b;
box-shadow: 0 0 10px #f59e0b;
}
.status-critical {
background-color: #ef4444;
box-shadow: 0 0 10px #ef4444;
}
.grid-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image:
linear-gradient(rgba(0, 247, 255, 0.1) 1px, transparent 1px),
linear-gradient(90deg, rgba(0, 247, 255, 0.1) 1px, transparent 1px);
background-size: 50px 50px;
pointer-events: none;
}
.target-reticle {
position: absolute;
width: 30px;
height: 30px;
border: 2px solid #ef4444;
border-radius: 50%;
pointer-events: none;
}
.target-reticle::before, .target-reticle::after {
content: '';
position: absolute;
background: #ef4444;
}
.target-reticle::before {
width: 2px;
height: 40px;
left: 50%;
top: -40px;
transform: translateX(-50%);
}
.target-reticle::after {
width: 40px;
height: 2px;
top: 50%;
left: -40px;
transform: translateY(-50%);
}
/* Search system styles */
.search-container {
position: relative;
margin-bottom: 20px;
}
.search-input {
width: 100%;
padding: 12px 20px 12px 45px;
background: rgba(15, 23, 42, 0.8);
border: 1px solid rgba(0, 247, 255, 0.3);
border-radius: 8px;
color: white;
font-size: 14px;
transition: all 0.3s;
}
.search-input:focus {
outline: none;
border-color: var(--neon);
box-shadow: 0 0 15px rgba(0, 247, 255, 0.3);
}
.search-icon {
position: absolute;
left: 15px;
top: 50%;
transform: translateY(-50%);
color: rgba(0, 247, 255, 0.7);
}
.search-results {
position: absolute;
width: 100%;
max-height: 400px;
overflow-y: auto;
background: rgba(15, 23, 42, 0.95);
border: 1px solid rgba(0, 247, 255, 0.3);
border-radius: 8px;
margin-top: 5px;
z-index: 100;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
display: none;
}
.search-result-item {
padding: 12px 20px;
border-bottom: 1px solid rgba(0, 247, 255, 0.1);
cursor: pointer;
transition: all 0.2s;
}
.search-result-item:hover {
background: rgba(0, 247, 255, 0.1);
}
.search-result-title {
font-weight: 600;
color: white;
margin-bottom: 3px;
}
.search-result-desc {
font-size: 12px;
color: rgba(200, 200, 200, 0.7);
}
.search-result-coords {
font-size: 11px;
color: var(--neon);
margin-top: 5px;
font-family: monospace;
}
.search-category {
padding: 8px 15px;
background: rgba(0, 0, 0, 0.3);
color: var(--neon);
font-size: 12px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
}
.search-no-results {
padding: 20px;
text-align: center;
color: rgba(200, 200, 200, 0.7);
font-size: 14px;
}
/* Animation for search results */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(-10px); }
to { opacity: 1; transform: translateY(0); }
}
.search-results.show {
display: block;
animation: fadeIn 0.3s ease-out;
}
</style>
</head>
<body>
<div class="dashboard-grid">
<!-- Sidebar -->
<div class="bg-slate-900 border-r border-slate-800">
<div class="p-4 border-b border-slate-800">
<div class="flex items-center">
<div class="w-10 h-10 rounded-full bg-blue-600 flex items-center justify-center text-white font-bold text-xl">
<i class="fas fa-satellite-dish"></i>
</div>
<span class="ml-3 text-xl font-semibold text-white">HyperVision GPS</span>
</div>
</div>
<div class="p-4">
<div class="mb-8">
<h3 class="text-xs font-semibold text-slate-400 uppercase tracking-wider mb-4">Réseau IA</h3>
<div class="space-y-2">
<div class="ai-node p-3 rounded-lg neon-border">
<div class="flex items-center justify-between">
<div class="flex items-center">
<span class="status-indicator status-active"></span>
<span class="text-sm font-medium">IA Principale</span>
</div>
<span class="text-xs bg-green-900 text-green-400 px-2 py-1 rounded-full">25,000 noeuds</span>
</div>
<div class="mt-2 flex justify-between text-xs text-slate-400">
<span>Capacité: 15,000x zoom</span>
<span>Version: 7.2.1</span>
</div>
</div>
<div class="ai-node p-3 rounded-lg neon-border">
<div class="flex items-center justify-between">
<div class="flex items-center">
<span class="status-indicator status-active"></span>
<span class="text-sm font-medium">Analyse d'Image</span>
</div>
<span class="text-xs bg-blue-900 text-blue-400 px-2 py-1 rounded-full">8,200 noeuds</span>
</div>
</div>
<div class="ai-node p-3 rounded-lg neon-border">
<div class="flex items-center justify-between">
<div class="flex items-center">
<span class="status-indicator status-active"></span>
<span class="text-sm font-medium">Précision GPS</span>
</div>
<span class="text-xs bg-purple-900 text-purple-400 px-2 py-1 rounded-full">6,500 noeuds</span>
</div>
</div>
<div class="ai-node p-3 rounded-lg neon-border">
<div class="flex items-center justify-between">
<div class="flex items-center">
<span class="status-indicator status-active"></span>
<span class="text-sm font-medium">Contrôle Robotique</span>
</div>
<span class="text-xs bg-yellow-900 text-yellow-400 px-2 py-1 rounded-full">4,300 noeuds</span>
</div>
</div>
<div class="ai-node p-3 rounded-lg neon-border">
<div class="flex items-center justify-between">
<div class="flex items-center">
<span class="status-indicator status-active"></span>
<span class="text-sm font-medium">Sécurité</span>
</div>
<span class="text-xs bg-red-900 text-red-400 px-2 py-1 rounded-full">5,800 noeuds</span>
</div>
</div>
</div>
</div>
<div class="mb-8">
<h3 class="text-xs font-semibold text-slate-400 uppercase tracking-wider mb-4">Satellites Actifs</h3>
<div class="space-y-2">
<div class="ai-node p-3 rounded-lg neon-border">
<div class="flex items-center justify-between">
<div class="flex items-center">
<span class="status-indicator status-active"></span>
<span class="text-sm font-medium">HyperVision-1</span>
</div>
<span class="text-xs bg-green-900 text-green-400 px-2 py-1 rounded-full">En orbite</span>
</div>
<div class="mt-2 text-xs text-slate-400">
Altitude: 1,250 km • Couverture: Globale
</div>
</div>
<div class="ai-node p-3 rounded-lg neon-border">
<div class="flex items-center justify-between">
<div class="flex items-center">
<span class="status-indicator status-active"></span>
<span class="text-sm font-medium">HyperVision-2</span>
</div>
<span class="text-xs bg-green-900 text-green-400 px-2 py-1 rounded-full">En orbite</span>
</div>
<div class="mt-2 text-xs text-slate-400">
Altitude: 1,250 km • Couverture: Globale
</div>
</div>
<div class="ai-node p-3 rounded-lg neon-border">
<div class="flex items-center justify-between">
<div class="flex items-center">
<span class="status-indicator status-warning"></span>
<span class="text-sm font-medium">HyperVision-3</span>
</div>
<span class="text-xs bg-yellow-900 text-yellow-400 px-2 py-1 rounded-full">Maintenance</span>
</div>
<div class="mt-2 text-xs text-slate-400">
Altitude: 1,280 km • Couverture: 85%
</div>
</div>
</div>
</div>
<div>
<h3 class="text-xs font-semibold text-slate-400 uppercase tracking-wider mb-4">Statut du Système</h3>
<div class="ai-node p-3 rounded-lg neon-border">
<div class="flex justify-between items-center mb-2">
<span class="text-sm">Puissance du zoom:</span>
<span class="font-bold text-blue-400">15,000x</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-2">
<div class="bg-blue-600 h-2 rounded-full" style="width: 100%"></div>
</div>
<div class="flex justify-between items-center mt-4 mb-2">
<span class="text-sm">Précision:</span>
<span class="font-bold text-green-400">0.1 mm</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-2">
<div class="bg-green-600 h-2 rounded-full" style="width: 100%"></div>
</div>
<div class="flex justify-between items-center mt-4 mb-2">
<span class="text-sm">Latence:</span>
<span class="font-bold text-purple-400">12 ms</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-2">
<div class="bg-purple-600 h-2 rounded-full" style="width: 90%"></div>
</div>
</div>
</div>
</div>
</div>
<!-- Main Content -->
<div class="p-6 overflow-auto">
<div class="flex justify-between items-center mb-6">
<div>
<h1 class="text-2xl font-bold text-white">Contrôle du Système HyperVision GPS</h1>
<p class="text-slate-400">Réseau de 25,000 IA spécialisées • Zoom 15,000x • Robotisation complète</p>
</div>
<div class="flex space-x-3">
<button class="px-4 py-2 bg-blue-600 text-white rounded-md command-btn flex items-center">
<i class="fas fa-sync-alt mr-2"></i> Actualiser
</button>
<button class="px-4 py-2 bg-green-600 text-white rounded-md command-btn flex items-center">
<i class="fas fa-robot mr-2"></i> Mode Auto
</button>
<button class="px-4 py-2 bg-red-600 text-white rounded-md command-btn flex items-center">
<i class="fas fa-shield-alt mr-2"></i> Sécurité
</button>
</div>
</div>
<!-- Search System -->
<div class="search-container">
<div class="relative">
<i class="fas fa-search search-icon"></i>
<input type="text" id="search-input" class="search-input" placeholder="Rechercher une localisation, point d'intérêt..." autocomplete="off">
<div id="search-results" class="search-results">
<!-- Results will be populated by JavaScript -->
</div>
</div>
</div>
<!-- Map and Controls -->
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6">
<div class="lg:col-span-2">
<div class="map-container rounded-xl overflow-hidden neon-border relative" style="height: 500px;">
<div id="satellite-map" class="w-full h-full bg-slate-800">
<!-- Map will be rendered here -->
<div class="grid-overlay"></div>
<div class="target-reticle" style="top: 50%; left: 50%; transform: translate(-50%, -50%);"></div>
<!-- Satellite positions (simulated) -->
<div class="satellite-track" style="top: 20%; left: 30%;"></div>
<div class="satellite-track" style="top: 40%; left: 70%;"></div>
<div class="satellite-track" style="top: 70%; left: 20%;"></div>
<div class="satellite-track" style="top: 10%; left: 80%;"></div>
<!-- Zoom level indicator -->
<div class="zoom-level neon-border">
<div class="flex items-center">
<i class="fas fa-search-plus mr-2 text-blue-400"></i>
<span>Zoom: </span>
<span id="zoom-level-value" class="font-bold ml-1">1,250x</span>
</div>
</div>
</div>
</div>
</div>
<div>
<div class="bg-slate-900 rounded-xl p-6 neon-border h-full">
<h2 class="text-lg font-bold mb-4 text-white flex items-center">
<i class="fas fa-sliders-h mr-2 text-blue-400"></i>
Contrôles de Précision
</h2>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium text-slate-300 mb-1">Niveau de Zoom</label>
<div class="flex items-center">
<input id="zoom-slider" type="range" min="1" max="15000" value="1250" class="w-full h-2 bg-slate-700 rounded-lg appearance-none cursor-pointer">
<span id="zoom-value" class="ml-3 text-sm font-mono bg-slate-800 px-2 py-1 rounded">1,250x</span>
</div>
<div class="flex justify-between text-xs text-slate-400 mt-1">
<span>1x</span>
<span>15,000x</span>
</div>
</div>
<div>
<label class="block text-sm font-medium text-slate-300 mb-1">Focalisation Automatique</label>
<div class="flex items-center space-x-4">
<button id="auto-focus-btn" class="flex-1 py-2 bg-green-600 text-white rounded-md command-btn">
<i class="fas fa-camera mr-2"></i> Auto-Focus
</button>
<button class="flex-1 py-2 bg-blue-600 text-white rounded-md command-btn">
<i class="fas fa-ruler-combined mr-2"></i> Mesurer
</button>
</div>
</div>
<div class="pt-4 border-t border-slate-800">
<label class="block text-sm font-medium text-slate-300 mb-2">Coordonnées Cible</label>
<div class="grid grid-cols-2 gap-3">
<div>
<label class="block text-xs text-slate-400 mb-1">Latitude</label>
<input type="text" id="target-lat" value="48.8566° N" class="w-full bg-slate-800 border border-slate-700 rounded-md px-3 py-2 text-sm">
</div>
<div>
<label class="block text-xs text-slate-400 mb-1">Longitude</label>
<input type="text" id="target-lng" value="2.3522° E" class="w-full bg-slate-800 border border-slate-700 rounded-md px-3 py-2 text-sm">
</div>
<div>
<label class="block text-xs text-slate-400 mb-1">Altitude</label>
<input type="text" id="target-alt" value="35.0 m" class="w-full bg-slate-800 border border-slate-700 rounded-md px-3 py-2 text-sm">
</div>
<div>
<label class="block text-xs text-slate-400 mb-1">Précision</label>
<input type="text" id="target-precision" value="±0.1 mm" class="w-full bg-slate-800 border border-slate-700 rounded-md px-3 py-2 text-sm">
</div>
</div>
</div>
<div class="pt-4 border-t border-slate-800">
<button id="lock-target-btn" class="w-full py-2 bg-purple-600 text-white rounded-md command-btn flex items-center justify-center">
<i class="fas fa-crosshairs mr-2"></i> Verrouiller la Cible
</button>
</div>
</div>
</div>
</div>
</div>
<!-- AI Processing and Data -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-6">
<div class="bg-slate-900 rounded-xl p-6 neon-border">
<h2 class="text-lg font-bold mb-4 text-white flex items-center">
<i class="fas fa-brain mr-2 text-green-400"></i>
Analyse IA en Temps Réel
</h2>
<div class="space-y-3">
<div class="flex justify-between items-center">
<span class="text-sm text-slate-300">Reconnaissance d'objets:</span>
<span class="text-sm font-mono bg-green-900 text-green-400 px-2 py-1 rounded-full">98.7%</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-1.5">
<div class="bg-green-500 h-1.5 rounded-full" style="width: 98.7%"></div>
</div>
<div class="flex justify-between items-center mt-4">
<span class="text-sm text-slate-300">Analyse de mouvement:</span>
<span class="text-sm font-mono bg-blue-900 text-blue-400 px-2 py-1 rounded-full">96.2%</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-1.5">
<div class="bg-blue-500 h-1.5 rounded-full" style="width: 96.2%"></div>
</div>
<div class="flex justify-between items-center mt-4">
<span class="text-sm text-slate-300">Prédiction de trajectoire:</span>
<span class="text-sm font-mono bg-purple-900 text-purple-400 px-2 py-1 rounded-full">94.5%</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-1.5">
<div class="bg-purple-500 h-1.5 rounded-full" style="width: 94.5%"></div>
</div>
<div class="pt-4 mt-4 border-t border-slate-800">
<div class="text-xs text-slate-400">
<span class="font-semibold text-slate-300">25,000 IA</span> analysent simultanément les données avec une précision de <span class="font-semibold text-blue-400">15,000x</span>.
</div>
</div>
</div>
</div>
<div class="bg-slate-900 rounded-xl p-6 neon-border">
<h2 class="text-lg font-bold mb-4 text-white flex items-center">
<i class="fas fa-microchip mr-2 text-yellow-400"></i>
Système Robotique
</h2>
<div class="space-y-3">
<div class="flex justify-between items-center">
<span class="text-sm text-slate-300">Stabilisation:</span>
<span class="text-sm font-mono bg-yellow-900 text-yellow-400 px-2 py-1 rounded-full">99.9%</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-1.5">
<div class="bg-yellow-500 h-1.5 rounded-full" style="width: 99.9%"></div>
</div>
<div class="flex justify-between items-center mt-4">
<span class="text-sm text-slate-300">Précision mécanique:</span>
<span class="text-sm font-mono bg-red-900 text-red-400 px-2 py-1 rounded-full">0.1μm</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-1.5">
<div class="bg-red-500 h-1.5 rounded-full" style="width: 100%"></div>
</div>
<div class="flex justify-between items-center mt-4">
<span class="text-sm text-slate-300">Vitesse d'ajustement:</span>
<span class="text-sm font-mono bg-green-900 text-green-400 px-2 py-1 rounded-full">12ms</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-1.5">
<div class="bg-green-500 h-1.5 rounded-full" style="width: 95%"></div>
</div>
<div class="pt-4 mt-4 border-t border-slate-800">
<div class="text-xs text-slate-400">
<span class="font-semibold text-slate-300">4,300 robots IA</span> ajustent en temps réel la position avec une précision atomique.
</div>
</div>
</div>
</div>
<div class="bg-slate-900 rounded-xl p-6 neon-border">
<h2 class="text-lg font-bold mb-4 text-white flex items-center">
<i class="fas fa-satellite mr-2 text-blue-400"></i>
Réseau Satellite
</h2>
<div class="space-y-3">
<div class="flex justify-between items-center">
<span class="text-sm text-slate-300">Couverture globale:</span>
<span class="text-sm font-mono bg-blue-900 text-blue-400 px-2 py-1 rounded-full">100%</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-1.5">
<div class="bg-blue-500 h-1.5 rounded-full" style="width: 100%"></div>
</div>
<div class="flex justify-between items-center mt-4">
<span class="text-sm text-slate-300">Latence:</span>
<span class="text-sm font-mono bg-purple-900 text-purple-400 px-2 py-1 rounded-full">12ms</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-1.5">
<div class="bg-purple-500 h-1.5 rounded-full" style="width: 90%"></div>
</div>
<div class="flex justify-between items-center mt-4">
<span class="text-sm text-slate-300">Bande passante:</span>
<span class="text-sm font-mono bg-green-900 text-green-400 px-2 py-1 rounded-full">1.2Tbps</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-1.5">
<div class="bg-green-500 h-1.5 rounded-full" style="width: 100%"></div>
</div>
<div class="pt-4 mt-4 border-t border-slate-800">
<div class="text-xs text-slate-400">
<span class="font-semibold text-slate-300">3 satellites HyperVision</span> fournissent une couverture continue avec redondance quantique.
</div>
</div>
</div>
</div>
</div>
<!-- Data Visualization -->
<div class="bg-slate-900 rounded-xl p-6 neon-border mb-6">
<h2 class="text-lg font-bold mb-4 text-white flex items-center">
<i class="fas fa-chart-line mr-2 text-purple-400"></i>
Visualisation des Données (Zoom 15,000x)
</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
<div class="bg-slate-800 rounded-lg p-4 flex items-center">
<div class="w-12 h-12 rounded-full bg-blue-900 flex items-center justify-center text-blue-400 mr-3">
<i class="fas fa-ruler-horizontal"></i>
</div>
<div>
<div class="text-xs text-slate-400">Résolution spatiale</div>
<div class="font-bold text-blue-400">0.1 mm</div>
</div>
</div>
<div class="bg-slate-800 rounded-lg p-4 flex items-center">
<div class="w-12 h-12 rounded-full bg-green-900 flex items-center justify-center text-green-400 mr-3">
<i class="fas fa-tachometer-alt"></i>
</div>
<div>
<div class="text-xs text-slate-400">Vitesse de rafraîchissement</div>
<div class="font-bold text-green-400">120 FPS</div>
</div>
</div>
<div class="bg-slate-800 rounded-lg p-4 flex items-center">
<div class="w-12 h-12 rounded-full bg-purple-900 flex items-center justify-center text-purple-400 mr-3">
<i class="fas fa-memory"></i>
</div>
<div>
<div class="text-xs text-slate-400">Mémoire IA allouée</div>
<div class="font-bold text-purple-400">42.7 PB</div>
</div>
</div>
</div>
<div class="mt-6 bg-slate-800 rounded-lg p-4">
<div class="flex justify-between items-center mb-3">
<div class="text-sm font-medium text-slate-300">Activité des IA en temps réel</div>
<div class="text-xs bg-slate-900 text-slate-400 px-2 py-1 rounded-full">25,000 noeuds</div>
</div>
<div class="h-40 w-full relative">
<!-- Simulated AI activity graph -->
<div class="absolute inset-0 grid grid-cols-25 grid-rows-10 gap-px">
<!-- This would be replaced with actual data visualization in a real app -->
<script>
// Generate random activity cells
document.addEventListener('DOMContentLoaded', function() {
const container = document.createElement('div');
container.className = 'absolute inset-0 grid grid-cols-25 grid-rows-10 gap-px';
for (let i = 0; i < 250; i++) {
const cell = document.createElement('div');
const intensity = Math.floor(Math.random() * 5);
cell.className = `bg-${['slate-700', 'blue-900', 'blue-700', 'blue-500', 'blue-300'][intensity]} rounded-sm`;
container.appendChild(cell);
}
document.querySelector('.h-40.w-full.relative').appendChild(container);
});
</script>
</div>
</div>
<div class="mt-2 flex justify-between text-xs text-slate-500">
<span>Analyse d'image</span>
<span>Précision GPS</span>
<span>Robotique</span>
</div>
</div>
</div>
<!-- System Logs -->
<div class="bg-slate-900 rounded-xl p-6 neon-border">
<h2 class="text-lg font-bold mb-4 text-white flex items-center">
<i class="fas fa-terminal mr-2 text-green-400"></i>
Journal du Système
</h2>
<div class="bg-slate-800 rounded-lg p-4 h-48 overflow-y-auto font-mono text-sm">
<div class="text-green-400">[12:42:35] Système IA initialisé avec 25,000 noeuds</div>
<div class="text-blue-400">[12:42:37] Synchronisation avec réseau satellite complète</div>
<div class="text-purple-400">[12:42:39] Calibration robotique terminée (précision: 0.1μm)</div>
<div class="text-yellow-400">[12:42:42] Zoom ajusté à 1,250x</div>
<div class="text-green-400">[12:43:15] Cible verrouillée: 48.8566° N, 2.3522° E</div>
<div class="text-blue-400">[12:43:18] Analyse d'image en cours (résolution: 0.1mm)</div>
<div class="text-purple-400">[12:43:22] 8,200 IA spécialisées en analyse d'image activées</div>
<div class="text-green-400">[12:43:45] Précision confirmée: ±0.1 mm</div>
<div class="text-blue-400">[12:43:50] Mode robotique automatique engagé</div>
<div class="text-yellow-400">[12:44:02] Stabilisation à 99.9% atteinte</div>
</div>
</div>
</div>
</div>
<script>
// Sample database of locations for search functionality
const locationDatabase = [
{
id: 1,
title: "Tour Eiffel",
description: "Monument emblématique de Paris, France",
category: "Monument",
coords: "48.8584° N, 2.2945° E",
lat: 48.8584,
lng: 2.2945,
alt: "324 m"
},
{
id: 2,
title: "Statue de la Liberté",
description: "Monument situé à New York, USA",
category: "Monument",
coords: "40.6892° N, 74.0445° W",
lat: 40.6892,
lng: -74.0445,
alt: "93 m"
},
{
id: 3,
title: "Grand Canyon",
description: "Formation géologique spectaculaire en Arizona, USA",
category: "Nature",
coords: "36.1069° N, 112.1129° W",
lat: 36.1069,
lng: -112.1129,
alt: "2,000 m"
},
{
id: 4,
title: "Pyramides de Gizeh",
description: "Anciennes pyramides égyptiennes",
category: "Monument",
coords: "29.9792° N, 31.1342° E",
lat: 29.9792,
lng: 31.1342,
alt: "138 m"
},
{
id: 5,
title: "Mont Everest",
description: "Point culminant de la Terre",
category: "Nature",
coords: "27.9881° N, 86.9250° E",
lat: 27.9881,
lng: 86.9250,
alt: "8,848 m"
},
{
id: 6,
title: "Base HyperVision Alpha",
description: "Centre de contrôle principal du réseau satellite",
category: "Installation",
coords: "34.0522° N, 118.2437° W",
lat: 34.0522,
lng: -118.2437,
alt: "93 m"
},
{
id: 7,
title: "Station HyperVision-1",
description: "Station de contrôle orbital primaire",
category: "Satellite",
coords: "0° N, 100° E",
lat: 0,
lng: 100,
alt: "35,786 km"
},
{
id: 8,
title: "Laboratoire de Recherche IA",
description: "Centre de développement des 25,000 IA spécialisées",
category: "Installation",
coords: "37.7749° N, 122.4194° W",
lat: 37.7749,
lng: -122.4194,
alt: "16 m"
},
{
id: 9,
title: "Usine Robotique HyperVision",
description: "Centre de fabrication des systèmes de précision",
category: "Installation",
coords: "48.8566° N, 2.3522° E",
lat: 48.8566,
lng: 2.3522,
alt: "35 m"
},
{
id: 10,
title: "Centre de Contrôle Quantique",
description: "Gestion des communications quantiques",
category: "Installation",
coords: "51.5074° N, 0.1278° W",
lat: 51.5074,
lng: -0.1278,
alt: "24 m"
}
];
// Zoom control functionality
const zoomSlider = document.getElementById('zoom-slider');
const zoomValue = document.getElementById('zoom-value');
const zoomLevelValue = document.getElementById('zoom-level-value');
const autoFocusBtn = document.getElementById('auto-focus-btn');
const searchInput = document.getElementById('search-input');
const searchResults = document.getElementById('search-results');
const targetLat = document.getElementById('target-lat');
const targetLng = document.getElementById('target-lng');
const targetAlt = document.getElementById('target-alt');
const targetPrecision = document.getElementById('target-precision');
const lockTargetBtn = document.getElementById('lock-target-btn');
// Search functionality
searchInput.addEventListener('input', function() {
const query = this.value.toLowerCase();
if (query.length < 2) {
searchResults.classList.remove('show');
return;
}
const results = locationDatabase.filter(item =>
item.title.toLowerCase().includes(query) ||
item.description.toLowerCase().includes(query) ||
item.category.toLowerCase().includes(query)
);
displaySearchResults(results);
});
function displaySearchResults(results) {
searchResults.innerHTML = '';
if (results.length === 0) {
searchResults.innerHTML = '<div class="search-no-results">Aucun résultat trouvé</div>';
searchResults.classList.add('show');
return;
}
// Group by category
const categories = {};
results.forEach(result => {
if (!categories[result.category]) {
categories[result.category] = [];
}
categories[result.category].push(result);
});
// Display by category
for (const [category, items] of Object.entries(categories)) {
const categoryElement = document.createElement('div');
categoryElement.className = 'search-category';
categoryElement.textContent = category;
searchResults.appendChild(categoryElement);
items.forEach(item => {
const itemElement = document.createElement('div');
itemElement.className = 'search-result-item';
itemElement.innerHTML = `
<div class="search-result-title">${item.title}</div>
<div class="search-result-desc">${item.description}</div>
<div class="search-result-coords">${item.coords} • Alt: ${item.alt}</div>
`;
itemElement.addEventListener('click', () => {
// Update target coordinates
targetLat.value = `${item.lat}° ${item.lat > 0 ? 'N' : 'S'}`;
targetLng.value = `${Math.abs(item.lng)}° ${item.lng > 0 ? 'E' : 'W'}`;
targetAlt.value = item.alt;
targetPrecision.value = "±0.1 mm";
// Update search input
searchInput.value = item.title;
searchResults.classList.remove('show');
// Add to system logs
addSystemLog(`Cible localisée: ${item.title} (${item.coords})`, 'green-400');
});
searchResults.appendChild(itemElement);
});
}
searchResults.classList.add('show');
}
// Close search results when clicking outside
document.addEventListener('click', function(e) {
if (!searchInput.contains(e.target) && !searchResults.contains(e.target)) {
searchResults.classList.remove('show');
}
});
zoomSlider.addEventListener('input', function() {
const value = parseInt(this.value);
const formattedValue = value.toLocaleString() + 'x';
zoomValue.textContent = formattedValue;
zoomLevelValue.textContent = formattedValue;
// Simulate zoom effect
if (value > 10000) {
zoomLevelValue.classList.add('text-red-400');
zoomLevelValue.classList.remove('text-blue-400', 'text-yellow-400');
} else if (value > 5000) {
zoomLevelValue.classList.add('text-yellow-400');
zoomLevelValue.classList.remove('text-blue-400', 'text-red-400');
} else {
zoomLevelValue.classList.add('text-blue-400');
zoomLevelValue.classList.remove('text-yellow-400', 'text-red-400');
}
});
autoFocusBtn.addEventListener('click', function() {
// Simulate auto-focus action
this.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i> Focus en cours...';
this.classList.add('bg-yellow-600');
this.classList.remove('bg-green-600');
setTimeout(() => {
this.innerHTML = '<i class="fas fa-check mr-2"></i> Focus réussi';
this.classList.add('bg-green-600');
this.classList.remove('bg-yellow-600');
// Add to system logs
addSystemLog('Auto-focus terminé avec précision de 0.1μm', 'green-400');
// Reset after 2 seconds
setTimeout(() => {
this.innerHTML = '<i class="fas fa-camera mr-2"></i> Auto-Focus';
}, 2000);
}, 1500);
});
lockTargetBtn.addEventListener('click', function() {
// Simulate target lock
this.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i> Verrouillage...';
this.classList.add('bg-yellow-600');
this.classList.remove('bg-purple-600');
setTimeout(() => {
this.innerHTML = '<i class="fas fa-lock mr-2"></i> Cible Verrouillée';
this.classList.add('bg-green-600');
this.classList.remove('bg-yellow-600');
// Add to system logs
addSystemLog(`Cible verrouillée: ${targetLat.value}, ${targetLng.value}`, 'purple-400');
// Reset after 3 seconds
setTimeout(() => {
this.innerHTML = '<i class="fas fa-crosshairs mr-2"></i> Verrouiller la Cible';
this.classList.add('bg-purple-600');
this.classList.remove('bg-green-600');
}, 3000);
}, 2000);
});
// Simulate satellite movement
function moveSatellites() {
const satellites = document.querySelectorAll('.satellite-track');
satellites.forEach(sat => {
// Get current position
let top = parseInt(sat.style.top);
let left = parseInt(sat.style.left);
// Calculate new position with slight variation
top = Math.max(5, Math.min(95, top + (Math.random() * 4 - 2)));
left = Math.max(5, Math.min(95, left + (Math.random() * 4 - 2)));
// Apply new position
sat.style.top = `${top}%`;
sat.style.left = `${left}%`;
});
setTimeout(moveSatellites, 2000);
}
// Add entry to system logs
function addSystemLog(message, colorClass) {
const logs = document.querySelector('.bg-slate-800.h-48');
const time = new Date().toLocaleTimeString('fr-FR', {hour: '2-digit', minute:'2-digit', second:'2-digit'});
const logEntry = document.createElement('div');
logEntry.className = `text-${colorClass}`;
logEntry.textContent = `[${time}] ${message}`;
logs.insertBefore(logEntry, logs.firstChild);
// Keep only 10 log entries
if (logs.children.length > 10) {
logs.removeChild(logs.lastChild);
}
}
// Initialize satellite movement
document.addEventListener('DOMContentLoaded', moveSatellites);
// Initialize system logs
document.addEventListener('DOMContentLoaded', function() {
// Initial logs
addSystemLog('Système IA initialisé avec 25,000 noeuds', 'green-400');
addSystemLog('Synchronisation avec réseau satellite complète', 'blue-400');
addSystemLog('Calibration robotique terminée (précision: 0.1μm)', 'purple-400');
addSystemLog('Zoom ajusté à 1,250x', 'yellow-400');
// Start random system updates
updateSystemActivity();
});
// Simulate system activity
function updateSystemActivity() {
const messages = [
{text: 'Analyse thermique en cours', color: 'yellow-400'},
{text: 'Mise à jour des coordonnées GPS', color: 'blue-400'},
{text: 'Optimisation du réseau IA', color: 'purple-400'},
{text: 'Vérification des systèmes robotiques', color: 'green-400'},
{text: 'Calibration du zoom à 15,000x', color: 'red-400'},
];
const randomMessage = messages[Math.floor(Math.random() * messages.length)];
addSystemLog(randomMessage.text, randomMessage.color);
setTimeout(updateSystemActivity, 5000 + Math.random() * 5000);
}
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=docto41/hypervision-gps" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>