This Website
A Three.js space explorer as a personal site. Because why not.
There is a version of a personal website that is a list of credentials and a headshot. Clean, safe, forgettable. I wanted to build something different — something that actually felt like me.
The concept came quickly: a solar system where each planet is a page. You pilot a spaceship through it. The planets orbit. You land to read. It’s slightly absurd, and I like that about it.
The stack is Astro with Three.js loaded from CDN, GSAP for animations, and Tailwind for the inner pages. Astro’s static output means the whole thing is just files on a server — no backend, no database, no moving parts at deploy time.
The hardest part was getting the camera navigation to feel right. Too fast and it’s jarring. Too slow and it’s tedious. The current approach uses GSAP’s power2.inOut easing over 1.2 seconds, with a subtle cockpit rattle added via sine waves on the camera position each frame. The result feels like you’re actually aboard something.
The warp-in sequence on first visit was a fun problem. A 2D canvas streaks white lines outward from the centre — a classic hyperspace effect — then cuts to the Three.js scene fading in. After that, text types out character by character on the HUD. It takes about five seconds total and it sets the tone for everything that follows.