<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Warp Speed</title><script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script><style>body{margin:0}canvas{display:block}</style></head><body><script>let s,c,r,st,p,cb,cm;function i(){s=new THREE.Scene();c=new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight,0.1,2000);c.position.z=10;r=new THREE.WebGLRenderer({antialias:true});r.setSize(window.innerWidth,window.innerHeight);document.body.appendChild(r.domElement);st=cs(2000);s.add(st);p=cp(10);p.forEach(planet=>s.add(planet));const tl=new THREE.TextureLoader();tl.load('/content/ecc46d2bd10837d70b4f274d24beca5f252cb2a245d4ce6f21837fb2c69053c0i0',function(t){cm=new THREE.MeshBasicMaterial({map:t});cb=cc(cm);s.add(cb);});a();}function cs(count){const g=new THREE.BufferGeometry();const v=[];for(let i=0;i<count;i++){const x=(Math.random()-0.5)*2000;const y=(Math.random()-0.5)*2000;const z=(Math.random()-0.5)*2000;v.push(x,y,z);}g.setAttribute('position',new THREE.Float32BufferAttribute(v,3));const m=new THREE.PointsMaterial({color:0xFFFFFF,size:0.1});return new THREE.Points(g,m);}function cp(count){const planets=[];for(let i=0;i<count;i++){const g=new THREE.SphereGeometry(0.5,32,32);const m=new THREE.MeshBasicMaterial({color:Math.random()*0xFFFFFF});const planet=new THREE.Mesh(g,m);planet.position.x=(Math.random()-0.5)*50;planet.position.y=(Math.random()-0.5)*50;planet.position.z=(Math.random()-0.5)*100-25;planets.push(planet);}return planets;}function cc(m){const g=new THREE.BoxGeometry(2,2,2);const cube=new THREE.Mesh(g,m);cube.position.z=5;return cube;}function a(){requestAnimationFrame(a);st.geometry.attributes.position.array.forEach((v,i)=>{if(i%3===2){v+=5;if(v>1000)v-=2000;}});st.geometry.attributes.position.needsUpdate=true;p.forEach(planet=>{planet.position.z+=1;if(planet.position.z>50){planet.position.x=(Math.random()-0.5)*50;planet.position.y=(Math.random()-0.5)*50;planet.position.z=-25;}});if(cb){cb.rotation.x+=0.01;cb.rotation.y+=0.01;}r.render(s,c);}i();</script></body></html>