My portfolio is a retro workshop desk you can actually use

Hi all! I rebuilt my portfolio as a late‑90s workshop desk, and everything on it works.

:link: Live: https://www.c-na.dev

What you can do

  • Projects are floppy disks. Pick one from the holder, it flies into the Mac, and a System 7 browser opens the case study.
  • The Mac runs a little System 7: Finder, windows, marquee select, a terminal with a virtual file system, a text editor. It’s an in‑world Html screen, and the 3D mouse on the desk follows your pointer.
  • Five playable arcade games (Battle City‑style tank, Space Invaders, Tetris, Pac‑Man, Snake). Put a cartridge into the Famicom and the game plays live on the CRT through a render target portal. Each one runs on a fixed 60 Hz step, so speed doesn’t change with the display’s frame rate.
  • When it’s idle, the CRT shows the DVD screensaver. Clicking it plays NES GIFs from a texture atlas.
  • There’s also a sketch notebook with page flips, a lamp with a real point light you can switch, a Rolodex holding my contact card, a robot, a rocket and a planet you can poke.

Tech

  • Next.js + React 19, React Three Fiber, drei, three r182
  • @react-three/postprocessing for the selection outlines
  • Draco‑compressed GLBs, progressive loading with a CRT‑style loader tied to real useProgress
  • A separate transparent canvas for a custom 3D cursor
  • Adaptive render quality, and the live 3D scene runs on phones too

The thing I spent the most time on was making it feel physical. Every object has a hover state, and the camera moves between focus points (desk → Mac → CRT → Famicom).

Feedback is very welcome, especially on performance on low‑end devices. Thanks for looking!