cktang88/3d-fps

photorealistic 3d FPS, built by claude opus 5.5

JavaScript

1

106 commits

updated Oct 9, 2026

See the code

See what people are saying

README

IRONLINE — realistic browser FPS

A tactical first-person shooter that runs in the browser: three.js r186 rendering, Rapier physics, Recast/Detour navigation for bots and pmndrs/postprocessing + N8AO for the image pipeline.

npm install
npm run dev      # http://localhost:5173
npm run build    # static build in dist/

Team deathmatch in the courtyard

Golden-hour sun over the office blockWarehouse interior under sodium lamps
Low storm sun, god rays and wet asphaltWarehouse: practical lamps, light shafts, dust
Warehouse catwalkContainer yard
Catwalk over the rackingContainer yard after the rain

In-engine captures at 1600x900, High quality (no post-edit).

Features

  • Movement (Source-style accel/friction): walk, sprint, tactical sprint (double-tap Shift), crouch, slide, jump, vault over low cover and mantle onto ledges, lean Q/E, slow-walk (Alt), fall damage.
  • Camera feel: spring-driven recoil kick, trauma-based shake, head bob, landing dip, lean/slide roll, sprint FOV, ADS zoom with zoom-relative sensitivity.
  • Weapons (11): M4A1, AK-47, SCAR-L (burst), MP5A5, VSS Vintorez, RPK-74, M870, M24, AWM, P226, M1911. Fire modes auto / burst / semi / pump / bolt, learnable recoil patterns + recovery, spread bloom, sprint-to-fire, tactical vs empty reloads (+1 in the chamber), shell-by-shell shotgun loading, bolt cycling, inspect, melee, frags.
  • Gunsmith: optics (red dot, holo, 3.5× picture-in-picture scope, 8× sniper), suppressor, compensator, brake, flash hider, barrels, grips, bipod, extended / fast mags, laser — all with stat changes.
  • Authored first-person arms with per-weapon reload animations; magazines follow the support hand.
  • Ballistics: projectile bullets with drop and travel time, damage falloff, headshots, wall penetration through wood / plaster / thin metal, tracers, near-miss whiz + suppression.
  • Effects: muzzle flashes + dynamic light, surface-specific impacts (sparks, dust, chips, blood), bullet-hole decals with normal maps, brass casings with physics, explosions, smoke.
  • Bots: perception (vision cone + LOS + hearing), memory, utility-scored goals (patrol, engage, investigate, cover, reload, grenade), difficulty-based aim (reaction time, tightening aim error, recoil control), strafing, navmesh pathing with crowd avoidance, animated soldiers with layered upper/lower-body animation.
  • Modes: Team Deathmatch and Free-For-All, CoD-style spawn logic, kill feed, medals, UAV streak, scoreboard.
  • HUD: ammo / fire mode, segmented health, compass, rotating minimap, dynamic crosshair, hitmarkers, damage direction, scope overlay, death cam.

Controls

KeyAction
WASD / MouseMove / look
LMB / RMBFire / aim down sights
ShiftSprint (double tap: tactical sprint; hold breath when scoped)
SpaceJump / vault / mantle
C / CtrlCrouch, slide while sprinting
Q / ELean
RReload
BFire mode
1 / 2 / wheelSwitch weapon
V / GMelee / frag grenade
I / LInspect / laser
Tab / EscScoreboard / pause

Code map

src/core      Input, Physics (Rapier wrapper), Audio (WebAudio + procedural synth), Assets, math/springs
src/render    Renderer (post stack), Effects (particles, tracers, decals, shells), ProcTex (procedural textures)
src/world     Level (Ironline Depot), Materials (PBR library + macro variation + indoor IBL), Geo
src/game      Game loop, Player controller, FPCamera, Ballistics, Match
src/game/weapons  WeaponDefs/Weapon (logic), GunModels/ViewModel (presentation)
src/game/bots     Bot (AI), Character (animation), Navigation (recast)
src/ui        HUD, Menu (settings, gunsmith), CSS
tools/        headless playtest harness + audio prep scripts

Credits & licences

Code is original except where noted:

  • AMD FidelityFX Super Resolution 1.0 (EASU upscaling + RCAS sharpening): GLSL port of ffx_fsr1.h from GPUOpen-Effects/FidelityFX-FSR, Copyright (c) 2021 Advanced Micro Devices, Inc. — MIT licence (src/render/Fsr.js). The CAS sharpen used with upscaling off follows AMD FidelityFX CAS (MIT).

Third-party assets:

cktang88/3d-fps

photorealistic 3d FPS, built by claude opus 5.5

JavaScript

1

106 commits

updated Oct 9, 2026

See the code

See what people are saying

README

IRONLINE — realistic browser FPS

A tactical first-person shooter that runs in the browser: three.js r186 rendering, Rapier physics, Recast/Detour navigation for bots and pmndrs/postprocessing + N8AO for the image pipeline.

npm install
npm run dev      # http://localhost:5173
npm run build    # static build in dist/

Team deathmatch in the courtyard

Golden-hour sun over the office blockWarehouse interior under sodium lamps
Low storm sun, god rays and wet asphaltWarehouse: practical lamps, light shafts, dust
Warehouse catwalkContainer yard
Catwalk over the rackingContainer yard after the rain

In-engine captures at 1600x900, High quality (no post-edit).

Features

  • Movement (Source-style accel/friction): walk, sprint, tactical sprint (double-tap Shift), crouch, slide, jump, vault over low cover and mantle onto ledges, lean Q/E, slow-walk (Alt), fall damage.
  • Camera feel: spring-driven recoil kick, trauma-based shake, head bob, landing dip, lean/slide roll, sprint FOV, ADS zoom with zoom-relative sensitivity.
  • Weapons (11): M4A1, AK-47, SCAR-L (burst), MP5A5, VSS Vintorez, RPK-74, M870, M24, AWM, P226, M1911. Fire modes auto / burst / semi / pump / bolt, learnable recoil patterns + recovery, spread bloom, sprint-to-fire, tactical vs empty reloads (+1 in the chamber), shell-by-shell shotgun loading, bolt cycling, inspect, melee, frags.
  • Gunsmith: optics (red dot, holo, 3.5× picture-in-picture scope, 8× sniper), suppressor, compensator, brake, flash hider, barrels, grips, bipod, extended / fast mags, laser — all with stat changes.
  • Authored first-person arms with per-weapon reload animations; magazines follow the support hand.
  • Ballistics: projectile bullets with drop and travel time, damage falloff, headshots, wall penetration through wood / plaster / thin metal, tracers, near-miss whiz + suppression.
  • Effects: muzzle flashes + dynamic light, surface-specific impacts (sparks, dust, chips, blood), bullet-hole decals with normal maps, brass casings with physics, explosions, smoke.
  • Bots: perception (vision cone + LOS + hearing), memory, utility-scored goals (patrol, engage, investigate, cover, reload, grenade), difficulty-based aim (reaction time, tightening aim error, recoil control), strafing, navmesh pathing with crowd avoidance, animated soldiers with layered upper/lower-body animation.
  • Modes: Team Deathmatch and Free-For-All, CoD-style spawn logic, kill feed, medals, UAV streak, scoreboard.
  • HUD: ammo / fire mode, segmented health, compass, rotating minimap, dynamic crosshair, hitmarkers, damage direction, scope overlay, death cam.

Controls

KeyAction
WASD / MouseMove / look
LMB / RMBFire / aim down sights
ShiftSprint (double tap: tactical sprint; hold breath when scoped)
SpaceJump / vault / mantle
C / CtrlCrouch, slide while sprinting
Q / ELean
RReload
BFire mode
1 / 2 / wheelSwitch weapon
V / GMelee / frag grenade
I / LInspect / laser
Tab / EscScoreboard / pause

Code map

src/core      Input, Physics (Rapier wrapper), Audio (WebAudio + procedural synth), Assets, math/springs
src/render    Renderer (post stack), Effects (particles, tracers, decals, shells), ProcTex (procedural textures)
src/world     Level (Ironline Depot), Materials (PBR library + macro variation + indoor IBL), Geo
src/game      Game loop, Player controller, FPCamera, Ballistics, Match
src/game/weapons  WeaponDefs/Weapon (logic), GunModels/ViewModel (presentation)
src/game/bots     Bot (AI), Character (animation), Navigation (recast)
src/ui        HUD, Menu (settings, gunsmith), CSS
tools/        headless playtest harness + audio prep scripts

Credits & licences

Code is original except where noted:

  • AMD FidelityFX Super Resolution 1.0 (EASU upscaling + RCAS sharpening): GLSL port of ffx_fsr1.h from GPUOpen-Effects/FidelityFX-FSR, Copyright (c) 2021 Advanced Micro Devices, Inc. — MIT licence (src/render/Fsr.js). The CAS sharpen used with upscaling off follows AMD FidelityFX CAS (MIT).

Third-party assets: