|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>The Illusion Breaker</title> |
|
|
<script src="https://cdn.tailwindcss.com"></script> |
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script> |
|
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3.11.4/dist/gsap.min.js"></script> |
|
|
<style> |
|
|
body { |
|
|
margin: 0; |
|
|
overflow: hidden; |
|
|
font-family: 'Courier New', monospace; |
|
|
background: #000; |
|
|
color: #fff; |
|
|
} |
|
|
#canvas { |
|
|
position: fixed; |
|
|
top: 0; |
|
|
left: 0; |
|
|
z-index: -1; |
|
|
} |
|
|
.content { |
|
|
position: absolute; |
|
|
top: 0; |
|
|
left: 0; |
|
|
width: 100%; |
|
|
height: 100vh; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
justify-content: center; |
|
|
align-items: center; |
|
|
text-align: center; |
|
|
mix-blend-mode: difference; |
|
|
pointer-events: none; |
|
|
} |
|
|
.truth-light { |
|
|
position: absolute; |
|
|
width: 10px; |
|
|
height: 10px; |
|
|
border-radius: 50%; |
|
|
background: #fff; |
|
|
box-shadow: 0 0 20px 10px #fff; |
|
|
opacity: 0; |
|
|
transition: opacity 0.5s; |
|
|
} |
|
|
.illusion { |
|
|
position: absolute; |
|
|
width: 100%; |
|
|
height: 100%; |
|
|
background: repeating-linear-gradient( |
|
|
45deg, |
|
|
rgba(255,255,255,0.05), |
|
|
rgba(255,255,255,0.05) 10px, |
|
|
rgba(255,255,255,0.1) 10px, |
|
|
rgba(255,255,255,0.1) 20px |
|
|
); |
|
|
pointer-events: none; |
|
|
opacity: 0; |
|
|
transition: opacity 1s; |
|
|
} |
|
|
.reveal-btn { |
|
|
position: fixed; |
|
|
bottom: 30px; |
|
|
left: 50%; |
|
|
transform: translateX(-50%); |
|
|
padding: 15px 30px; |
|
|
background: rgba(255,255,255,0.1); |
|
|
color: white; |
|
|
border: 1px solid rgba(255,255,255,0.3); |
|
|
border-radius: 50px; |
|
|
cursor: pointer; |
|
|
backdrop-filter: blur(10px); |
|
|
transition: all 0.3s; |
|
|
pointer-events: all; |
|
|
z-index: 100; |
|
|
} |
|
|
.reveal-btn:hover { |
|
|
background: rgba(255,255,255,0.3); |
|
|
transform: translateX(-50%) scale(1.05); |
|
|
} |
|
|
.hidden { |
|
|
opacity: 0; |
|
|
transition: opacity 0.5s; |
|
|
} |
|
|
.visible { |
|
|
opacity: 1; |
|
|
} |
|
|
@keyframes float { |
|
|
0%, 100% { transform: translateY(0); } |
|
|
50% { transform: translateY(-20px); } |
|
|
} |
|
|
.floating { |
|
|
animation: float 6s ease-in-out infinite; |
|
|
} |
|
|
</style> |
|
|
</head> |
|
|
<body> |
|
|
<canvas id="canvas"></canvas> |
|
|
<div class="illusion"></div> |
|
|
<div class="truth-light"></div> |
|
|
|
|
|
<div class="content"> |
|
|
<h1 class="text-6xl font-bold mb-6 hidden" id="title">NOTHING IS REAL</h1> |
|
|
<p class="text-xl max-w-2xl px-4 hidden" id="subtitle">Everything you see is an illusion constructed by your mind. Even this website is just electrical signals interpreted by your brain.</p> |
|
|
<div class="mt-8 text-sm opacity-70 hidden" id="truth"> |
|
|
<p>But there is one truth...</p> |
|
|
<p class="mt-4 text-lg">YOU EXIST</p> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<button class="reveal-btn hidden" id="revealBtn">REVEAL THE TRUTH</button> |
|
|
|
|
|
<script> |
|
|
|
|
|
const scene = new THREE.Scene(); |
|
|
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); |
|
|
const renderer = new THREE.WebGLRenderer({ canvas: document.getElementById('canvas'), antialias: true }); |
|
|
renderer.setSize(window.innerWidth, window.innerHeight); |
|
|
renderer.setPixelRatio(window.devicePixelRatio); |
|
|
|
|
|
|
|
|
const geometry = new THREE.IcosahedronGeometry(1, 0); |
|
|
const material = new THREE.MeshBasicMaterial({ |
|
|
color: 0xffffff, |
|
|
wireframe: true, |
|
|
transparent: true, |
|
|
opacity: 0.3 |
|
|
}); |
|
|
|
|
|
const illusions = []; |
|
|
for (let i = 0; i < 50; i++) { |
|
|
const illusion = new THREE.Mesh(geometry, material.clone()); |
|
|
illusion.position.x = Math.random() * 100 - 50; |
|
|
illusion.position.y = Math.random() * 100 - 50; |
|
|
illusion.position.z = Math.random() * 100 - 50; |
|
|
illusion.scale.set(Math.random() * 3, Math.random() * 3, Math.random() * 3); |
|
|
scene.add(illusion); |
|
|
illusions.push({ |
|
|
mesh: illusion, |
|
|
speed: Math.random() * 0.02 |
|
|
}); |
|
|
} |
|
|
|
|
|
camera.position.z = 30; |
|
|
|
|
|
|
|
|
function animate() { |
|
|
requestAnimationFrame(animate); |
|
|
|
|
|
illusions.forEach(obj => { |
|
|
obj.mesh.rotation.x += obj.speed; |
|
|
obj.mesh.rotation.y += obj.speed; |
|
|
}); |
|
|
|
|
|
renderer.render(scene, camera); |
|
|
} |
|
|
animate(); |
|
|
|
|
|
|
|
|
window.addEventListener('resize', () => { |
|
|
camera.aspect = window.innerWidth / window.innerHeight; |
|
|
camera.updateProjectionMatrix(); |
|
|
renderer.setSize(window.innerWidth, window.innerHeight); |
|
|
}); |
|
|
|
|
|
|
|
|
setTimeout(() => { |
|
|
document.getElementById('title').classList.remove('hidden'); |
|
|
setTimeout(() => { |
|
|
document.getElementById('subtitle').classList.remove('hidden'); |
|
|
setTimeout(() => { |
|
|
document.getElementById('revealBtn').classList.remove('hidden'); |
|
|
}, 1000); |
|
|
}, 1000); |
|
|
}, 1000); |
|
|
|
|
|
|
|
|
document.addEventListener('mousemove', (e) => { |
|
|
const light = document.querySelector('.truth-light'); |
|
|
light.style.left = `${e.clientX}px`; |
|
|
light.style.top = `${e.clientY}px`; |
|
|
}); |
|
|
|
|
|
|
|
|
document.getElementById('revealBtn').addEventListener('click', () => { |
|
|
|
|
|
document.querySelector('.illusion').style.opacity = '0.8'; |
|
|
document.querySelector('.truth-light').style.opacity = '1'; |
|
|
|
|
|
|
|
|
illusions.forEach(obj => { |
|
|
scene.remove(obj.mesh); |
|
|
}); |
|
|
|
|
|
|
|
|
document.getElementById('truth').classList.remove('hidden'); |
|
|
|
|
|
|
|
|
const truthGeometry = new THREE.SphereGeometry(1, 32, 32); |
|
|
const truthMaterial = new THREE.MeshBasicMaterial({ |
|
|
color: 0xffffff, |
|
|
emissive: 0xffffff, |
|
|
emissiveIntensity: 1 |
|
|
}); |
|
|
const truth = new THREE.Mesh(truthGeometry, truthMaterial); |
|
|
scene.add(truth); |
|
|
|
|
|
|
|
|
gsap.to(truth.scale, { |
|
|
x: 5, y: 5, z: 5, |
|
|
duration: 3, |
|
|
ease: "elastic.out(1, 0.3)" |
|
|
}); |
|
|
|
|
|
|
|
|
document.getElementById('revealBtn').style.opacity = '0'; |
|
|
document.getElementById('revealBtn').style.pointerEvents = 'none'; |
|
|
|
|
|
|
|
|
document.getElementById('title').classList.add('floating'); |
|
|
document.getElementById('subtitle').classList.add('floating'); |
|
|
document.getElementById('truth').classList.add('floating'); |
|
|
}); |
|
|
|
|
|
|
|
|
document.dispatchEvent(new MouseEvent('mousemove', { |
|
|
clientX: window.innerWidth / 2, |
|
|
clientY: window.innerHeight / 2 |
|
|
})); |
|
|
</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=db69/truth" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
|
|
</html> |