A browser third-person arena shooter where the player character and the enemies are 3D models generated from single photos (image → 3D via Hunyuan3D-2, action poses via SDXL + ControlNet + IP-Adapter). Built with Next.js + Three.js.
The app is in client/. It's a static Next.js app.
cd client
npm install
npm run dev # http://localhost:3000
npm run build && npm start for production. Deploys as a static/SSG Next.js app (e.g. Vercel:
set the project root to client/).
Legacy alternate keys still work: arrows for movement/turning, Space/F/E for shoot, G/R/Slash for jump, and Z for zoom.
Click Start Fight to wake the agents up. You have 1 life; best score is saved locally.
client/public/models/brian.glb (hero) plus 9 action-pose meshes in
client/public/models/anim/ (run/shoot/jump × 3), swapped as stop-motion frames.client/public/models/guy2.glb, a suit-clad rifleman, with simple chase-and-shoot AI.pipeline/ — see its README for the full
image→3D / pose-generation / video process.client/ — the Next.js + Three.js game (app/page.tsx landing, app/GameViewer.tsx the game,
app/ModelViewer.tsx the orbit viewer).pipeline/ — the asset-generation scripts (run on a CUDA GPU; not needed to run the app).4 commits
1 commits
TypeScript
67.2%
Python
29.5%
Shell
2.5%
A browser third-person arena shooter where the player character and the enemies are 3D models generated from single photos (image → 3D via Hunyuan3D-2, action poses via SDXL + ControlNet + IP-Adapter). Built with Next.js + Three.js.
The app is in client/. It's a static Next.js app.
cd client
npm install
npm run dev # http://localhost:3000
npm run build && npm start for production. Deploys as a static/SSG Next.js app (e.g. Vercel:
set the project root to client/).
Legacy alternate keys still work: arrows for movement/turning, Space/F/E for shoot, G/R/Slash for jump, and Z for zoom.
Click Start Fight to wake the agents up. You have 1 life; best score is saved locally.
client/public/models/brian.glb (hero) plus 9 action-pose meshes in
client/public/models/anim/ (run/shoot/jump × 3), swapped as stop-motion frames.client/public/models/guy2.glb, a suit-clad rifleman, with simple chase-and-shoot AI.pipeline/ — see its README for the full
image→3D / pose-generation / video process.client/ — the Next.js + Three.js game (app/page.tsx landing, app/GameViewer.tsx the game,
app/ModelViewer.tsx the orbit viewer).pipeline/ — the asset-generation scripts (run on a CUDA GPU; not needed to run the app).4 commits
1 commits
TypeScript
67.2%
Python
29.5%
Shell
2.5%