Skip to content

Commit 87f49f9

Browse files
authored
Update index.html
1 parent 971c9c5 commit 87f49f9

1 file changed

Lines changed: 57 additions & 78 deletions

File tree

AION-PAGE/AION.AI/index.html

Lines changed: 57 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,6 @@
1111
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css">
1212
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
1313
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
14-
<!-- Three.js for 3D background -->
15-
<script type="importmap">
16-
{
17-
"imports": {
18-
"three": "https://unpkg.com/three@0.128.0/build/three.module.js"
19-
}
20-
}
21-
</script>
2214
<style>
2315
/* ========== GLOBAL STYLES – BLACKSITE POLISH ========== */
2416
* { margin: 0; padding: 0; box-sizing: border-box; }
@@ -54,7 +46,7 @@
5446
position: relative;
5547
}
5648

57-
/* 3D Canvas (background) */
49+
/* Background Canvas */
5850
#bg-canvas {
5951
position: fixed;
6052
top: 0;
@@ -963,7 +955,7 @@ <h3>🐛 Bloodhound Debugger – ADA‑Powered Forensic Analysis</h3>
963955
</div>
964956
<div class="field-group">
965957
<label>Domain (optional)</label>
966-
<select id="debuggerDomain">
958+
<select id="debuggerDomain">
967959
<option value="code">General Code</option>
968960
<option value="security">Security Critical</option>
969961
<option value="financial">Financial</option>
@@ -990,75 +982,61 @@ <h4>Results</h4>
990982
</div>
991983
</div>
992984

993-
<script type="module">
994-
import * as THREE from 'three';
995-
996-
// ========== THREE.JS BACKGROUND ==========
997-
const canvas = document.getElementById('bg-canvas');
998-
const renderer = new THREE.WebGLRenderer({ canvas, alpha: true });
999-
renderer.setSize(window.innerWidth, window.innerHeight);
1000-
renderer.setClearColor(0x000000, 0); // transparent
1001-
1002-
const scene = new THREE.Scene();
1003-
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
1004-
camera.position.z = 15;
1005-
1006-
// Starfield (points)
1007-
const starGeometry = new THREE.BufferGeometry();
1008-
const starCount = 2000;
1009-
const starPositions = new Float32Array(starCount * 3);
1010-
for (let i = 0; i < starCount; i++) {
1011-
starPositions[i*3] = (Math.random() - 0.5) * 2000;
1012-
starPositions[i*3+1] = (Math.random() - 0.5) * 2000;
1013-
starPositions[i*3+2] = (Math.random() - 0.5) * 500;
1014-
}
1015-
starGeometry.setAttribute('position', new THREE.BufferAttribute(starPositions, 3));
1016-
const starMaterial = new THREE.PointsMaterial({ color: 0xffffff, size: 0.5, transparent: true, opacity: 0.8 });
1017-
const stars = new THREE.Points(starGeometry, starMaterial);
1018-
scene.add(stars);
1019-
1020-
// Orbital ring
1021-
const ringGeometry = new THREE.TorusGeometry(4.5, 0.08, 64, 300);
1022-
const ringMaterial = new THREE.MeshBasicMaterial({ color: 0xc9a028, transparent: true, opacity: 0.4 });
1023-
const ring = new THREE.Mesh(ringGeometry, ringMaterial);
1024-
scene.add(ring);
1025-
1026-
// Floating particles (small spheres)
1027-
const particleCount = 300;
1028-
const particleGeometry = new THREE.BufferGeometry();
1029-
const particlePositions = new Float32Array(particleCount * 3);
1030-
for (let i = 0; i < particleCount; i++) {
1031-
particlePositions[i*3] = (Math.random() - 0.5) * 30;
1032-
particlePositions[i*3+1] = (Math.random() - 0.5) * 20;
1033-
particlePositions[i*3+2] = (Math.random() - 0.5) * 20;
1034-
}
1035-
particleGeometry.setAttribute('position', new THREE.BufferAttribute(particlePositions, 3));
1036-
const particleMaterial = new THREE.PointsMaterial({ color: 0xffaa33, size: 0.08, transparent: true, opacity: 0.3 });
1037-
const particles = new THREE.Points(particleGeometry, particleMaterial);
1038-
scene.add(particles);
1039-
1040-
function animate() {
1041-
requestAnimationFrame(animate);
1042-
stars.rotation.y += 0.0005;
1043-
stars.rotation.x += 0.0003;
1044-
ring.rotation.x += 0.003;
1045-
ring.rotation.z += 0.002;
1046-
particles.rotation.y += 0.001;
1047-
particles.rotation.x += 0.0005;
1048-
renderer.render(scene, camera);
1049-
}
1050-
animate();
1051-
1052-
window.addEventListener('resize', onWindowResize, false);
1053-
function onWindowResize() {
1054-
camera.aspect = window.innerWidth / window.innerHeight;
1055-
camera.updateProjectionMatrix();
1056-
renderer.setSize(window.innerWidth, window.innerHeight);
1057-
}
1058-
</script>
1059-
1060985
<script>
1061986
(function() {
987+
// ---------- BACKGROUND (particle canvas) ----------
988+
const canvas = document.getElementById('bg-canvas');
989+
const ctx = canvas.getContext('2d');
990+
let width, height, animFrame;
991+
let particles = [];
992+
const PARTICLE_COUNT = 120;
993+
994+
function resize() {
995+
width = window.innerWidth;
996+
height = window.innerHeight;
997+
canvas.width = width;
998+
canvas.height = height;
999+
}
1000+
1001+
function initParticles() {
1002+
particles = [];
1003+
for (let i = 0; i < PARTICLE_COUNT; i++) {
1004+
particles.push({
1005+
x: Math.random() * width,
1006+
y: Math.random() * height,
1007+
radius: 1 + Math.random() * 2,
1008+
alpha: 0.3 + Math.random() * 0.5,
1009+
speed: 0.2 + Math.random() * 0.8,
1010+
});
1011+
}
1012+
}
1013+
1014+
function draw() {
1015+
ctx.clearRect(0, 0, width, height);
1016+
ctx.fillStyle = '#050508';
1017+
ctx.fillRect(0, 0, width, height);
1018+
for (let p of particles) {
1019+
ctx.beginPath();
1020+
ctx.arc(p.x, p.y, p.radius, 0, Math.PI * 2);
1021+
ctx.fillStyle = `rgba(201, 160, 40, ${p.alpha})`;
1022+
ctx.fill();
1023+
p.y += p.speed;
1024+
if (p.y > height) p.y = 0;
1025+
}
1026+
animFrame = requestAnimationFrame(draw);
1027+
}
1028+
1029+
function startBackground() {
1030+
resize();
1031+
initParticles();
1032+
draw();
1033+
window.addEventListener('resize', () => {
1034+
resize();
1035+
initParticles();
1036+
});
1037+
}
1038+
startBackground();
1039+
10621040
// ---------- CUSTOM CURSOR ----------
10631041
const cursor = document.getElementById('custom-cursor');
10641042
if (cursor) {
@@ -1443,7 +1421,8 @@ <h3>🌌 Structured Mode</h3>
14431421
messagesDiv.appendChild(div);
14441422
// Attach event listeners
14451423
div.querySelectorAll('.badge.ada').forEach(b => b.onclick = () => showModal('ADA Loop Details', JSON.stringify(JSON.parse(b.dataset.ada), null, 2)));
1446-
div.querySelectorAll('.badge.receipt').forEach(b => b.onclick = () => showModal('Checkpoint Receipt', JSON.stringify(JSON.parse(b.dataset.receipt), null, 2)));
1424+
1425+
div.querySelectorAll('.badge.receipt').forEach(b => b.onclick = () => showModal('Checkpoint Receipt', JSON.stringify(JSON.parse(b.dataset.receipt), null, 2)));
14471426
div.querySelectorAll('.badge.seal-btn').forEach(b => b.onclick = () => sealMessage(b.dataset.content));
14481427
div.querySelectorAll('.badge.ada-vela').forEach(b => { const execId = b.dataset.executionId; if (execId) b.onclick = () => showAdaVelaModal(execId); else b.onclick = () => showModal('Ada‑VELA', 'Execution ID not available.'); });
14491428
div.querySelectorAll('.feedback-badge').forEach(b => {

0 commit comments

Comments
 (0)