A personal portfolio built around a 3D GameCube and CRT. Enter the screen to explore a desktop with project files, a browser, and a messaging app.
Explore the interactive site · Read the portfolio · Download my resume
Screenshot of the running site, September 2026.
- Enter the CRT and open the desktop apps. Windows can move, resize, minimize, and maximize.
- Open Files to browse project contributions and download the resume.
- Open the portfolio in the desktop browser, or use the direct portfolio link above.
- Open Messages to compose a conversation and explicitly submit it to me.
The site is a work in progress. I’m continuing to refine the scene models and interface. External websites may block embedding in the desktop browser; its external-tab action opens them normally.
Next.js and React handle the routes and desktop interface. Three.js, React Three Fiber, and Drei render the scene. GitHub Actions builds a static export for GitHub Pages; no application server is required for hosting.
The portfolio and project folders use data/resume.json. Resume downloads and previews use the approved PDF in public/resume/. Messages uses a configurable external form endpoint; it is not a live chat service.
Requires Node.js 20.9 or newer.
npm ci
npm run devOpen http://localhost:3000. For a static production preview:
npm run build -- --webpack
python3 -m http.server 3000 --directory outnpm run lint
node --import tsx --test tests/*.test.ts
npm run build -- --webpackCheck both the direct portfolio and the embedded desktop after interface changes. The automated checks cover desktop window behavior and message handling; they do not establish email receipt or replace visual inspection of the 3D scene.
| Location | Responsibility |
|---|---|
components/scene/ |
3D setup and camera interaction |
components/desktop/ |
Desktop shell and app windows |
components/browser/, files/, messages/ |
Desktop applications |
components/portfolio/ |
Direct and embedded portfolio |
data/resume.json |
Shared project and experience content |
public/resume/ |
Approved resume PDF and matching preview |
See deployment and asset notes for hosting, contact configuration, source references, and resume updates.
