AI & Immersive
Why I Built My Own Portfolio's Hero in Three.js, Not a Template
Adnan Abdu Rahman5 min read
Most portfolio hero sections are a headline, a photo and a button. Mine is a real-time 3D scene built with Three.js — a rotating metallic ring, a parallaxing portrait plane and a locally rendered typographic title, all responding to the cursor. That's a strange amount of effort for a hero section, and I think it's exactly the right amount, for this specific site.
A portfolio is the one place the medium is the message
On a client project, the website has to serve the client's business first — a real estate group's site shouldn't be a personal art project. But a developer's own portfolio is different: it's the one place where showing genuine technical range, not just describing it, is actually the point. A working 3D scene says more about what I can build than a paragraph claiming I know Three.js.
It's the same skill behind a client project, not a separate one
The techniques in this hero — a navigable, performant real-time scene with layered depth and cursor interaction — are the same fundamentals behind the NH Collection 3D Resort Explorer, built to let prospective guests explore a resort masterplan directly in the browser. One is a portfolio flourish, the other is a client deliverable; the underlying engineering is the same.
Performance discipline, not just visual flourish
A 3D hero that tanks page speed defeats its own purpose on a site whose other stated goal is ranking well in search. The scene is built to cap pixel ratio, pause off-screen and in hidden tabs, respect reduced-motion preferences, and fall back cleanly to a static composition if WebGL can't start — the same performance discipline I'd apply to any client's site, applied here first.
What it's actually for
Not decoration — proof. If you're evaluating whether I can build genuinely interactive, well-engineered web experiences and not just template sites, this page is the demo, running live on my own portfolio right now.