Mobile-column profile page with a 3D room panel, preset camera angles, and free-orbit exploration. Built on three.js + Vite + TypeScript.
- three.js + Vite + TypeScript (strict mode)
- GLTFLoader for avatars (FBX fallback via dynamic import)
- Web Audio API scaffolding (master → music/sfx/spatial/voice buses)
npm install
npm run dev # Vite on http://localhost:5173
npm run typecheck
npm run build && npm run preview
Drop files under public/ — they ship as-is into the build root:
public/avatars/MC.glb— the default avatar loaded at boot
Note: Git LFS is not used. GitHub Pages cannot serve LFS objects
(clients get the pointer file instead of the binary), so shipped assets are
committed directly. Keep public/ lean.
- Create the GitHub repo and push (see below).
- In the repo settings → Pages → Build and deployment, set Source to GitHub Actions.
- Push to
main. The workflow in.github/workflows/deploy.ymlbuilds and publishesdist/to Pages. The site URL appears in the Actions run summary.
The Vite config uses base: './', so the build works at any subpath
(project pages, user pages, custom domain) with no rebuild per host.
git init
git add .
git commit -m "Initial commit: 3D profile page scaffold"
git branch -M main
git remote add origin https://github.com/<you>/<repo>.git
git push -u origin main