Real-time gameplay capture ยท GalStrike suit
Swing across a procedural Manhattan, run up skyscrapers, stop street crimes and fight gangs, all in a browser tab.
No install, no plugins: about 51,000 lines of hand-structured JavaScript on top of Three.js.
Play ยท Features ยท Screenshots ยท Controls ยท Run locally ยท Architecture ยท ืขืืจืืช
GalStrike is a real-time 3D action game in the browser. You traverse a Manhattan-style island built at load time from code: thousands of buildings, dressed rooftops, parks, Times Square, bridges, live traffic and crowds. On top of the traversal there is an open-world layer (research towers, districts, fast travel, collectibles, XP and a skill tree) and a melee combat system.
The project is by Gal Asulin (@galasulin). The code was written with Claude (Anthropic's AI model, working through Claude Code) under human direction, which is also what the project demonstrates: how far agentic AI development can go on a large, performance-critical codebase.
Tip
Best experience: desktop Chrome or Edge with a dedicated GPU. On a laptop with two GPUs, set Chrome to the high-performance GPU (NVIDIA Control Panel โ Manage 3D settings โ Program Settings โ Chrome โ High-performance NVIDIA processor). The first load takes about a minute: the city is generated on your machine.
- Physics-based web-swinging with release-and-launch, chained swings and momentum carried between them.
- Wall-running, perching and parkour. Stick to any facade, run up it, hop off it into a swing.
- Web-zip and point-launch to highlighted anchor points, plus air web-dash, quick web boost and head-first dives.
- Web tightrope and web slingshot for special movement.
- A custom animation state machine (skeleton, gait, clips and pose layers) drives a fully rigged character.
- A Manhattan-style island with an authored street grid: Broadway, Greenwich Village, the Financial District, Central Park and Harlem.
- Thousands of buildings with facades, dressed rooftops (water towers, HVAC, gardens, antennas), shop fronts, awnings and signage.
- Landmarks: Times Square with LED screens and billboards, Grand Central, bridges and a waterfront with far shores.
- Living streets: traffic with junction logic, pedestrian crowds and pigeons.
- 9 districts, each with a research tower to activate. Activating one reveals the district on the map and unlocks its subway station for fast travel.
- Street crimes (muggings, bank alarms, car chases) spawn around you.
- Melee combat against three enemy types (melee, gunman and brute), with combos, dodges, web attacks, throws and finishers.
- Progression: XP, levels, a skill tree, collectibles (backpacks), landmarks and a photo mode with filters and stickers.
- Saved progress in the browser, a full pause menu (map, suits, skills, collectibles, settings) and a developer menu (
~).
- 8 story missions against the Static Crew, a gang jamming the city's research towers, across Midtown, Hell's Kitchen, Chinatown, the Upper East Side, the Financial District and Harlem.
- Objective types: reach a landmark, activate or sync a tower, stop crimes, defeat enemies, recover backpacks, photograph a landmark, and timed races through glowing rings above the avenues.
- Scoring: objective points, a time bonus, a no-damage bonus and style points (combo and air time), then an S / A / B / C rank. Best score, rank and time are saved per mission, and a live HUD shows the timer, points and current objective.
- 21 achievements, two of them hidden, with a gold unlock toast, a sound and an XP reward.
- Records: longest air time, top speed, best combo, best race times, distance swung, crimes stopped, enemies defeated and play time.
- On-screen controls switch on with the first touch: a floating joystick, drag-to-look, Swing, Jump, Zip, Boost, Dive and Parkour buttons, a context Use button near towers, and a separate combat button set.
- Pinch-zoom and scrolling are blocked, safe areas are respected, and phones in portrait get a rotate your device hint. Desktop is untouched.
- A complete Hebrew interface with right-to-left layout and bundled Hebrew fonts (Secular One for headings, Heebo for text). Switch live with the EN / ืขื toggle on the start screen or in Settings. Hebrew is picked automatically for Hebrew-language browsers, and
?lang=he/?lang=enforces a language.
- An original, procedurally made score with day and night layers that react to swinging speed, plus positional sirens and alarms.
- The start screen has a sound panel (master, music and effects sliders, plus mute; N mutes in game) and a time and weather picker: day, morning, sunset, dusk, night or rain.
- Three.js WebGL2 with a custom post-processing pipeline: cascaded shadow maps (up to 5 cascades), SSAO, screen-space GI, screen-space reflections, bloom, TAA, depth of field, motion blur and light shafts.
- Time-of-day presets (morning, sunrise, day, sunset, dusk, night and overcast) plus rain, with wet streets and puddles.
- Procedural sky and clouds, atmospheric fog out to the horizon, and glass that mirrors the city.
Ten suits, recoloured live by a GPU shader (no extra textures, and switching never recompiles). Pick them in Pause โ Suits or from the start screen.
GalStrike ยท Israel ยท Captain America ยท Iron Man โ Classic ยท Stealth ยท Scarlet ยท Symbiote (real in-game captures)
| Suit | Look | Emblem / detail |
|---|---|---|
| โก GalStrike Suit (new) | Matte black with glowing neon-turquoise web lines | Glowing lightning bolt, the signature suit |
| ๐ฎ๐ฑ Israel Suit (new) | Flag white and deep blue | Star of David on chest and back |
| โญ Captain America Suit (new) | Navy and red | White star |
| ๐ด Iron Man Suit (new) | Hot-rod red and gold metal | Glowing arc reactor |
| Classic Suit (new) | Bright red and royal blue | Bold black web |
| Stealth Suit (new) | Matte graphite | Lenses glow green |
| Scarlet Suit (new) | Deep scarlet with black panels | Black spider emblem |
| Advanced Suit | Red / navy / white | The default suit |
| Iron Spider | Crimson and gold armour | Unlocks at level 5 |
| Symbiote Suit | Wet black with a white emblem | Procedural veins, heavy black webs |
The new emblems (lightning bolt, five-point star, Star of David, arc reactor) are signed-distance-field shapes drawn by the shader directly on the character's body, so they stay sharp at any resolution.
---|---|---| | Advanced Suit | Red / navy / white | The default suit | | Iron Spider | Crimson and gold armour | Unlocks at level 5 | | Symbiote Suit | Wet black with a white emblem | Procedural veins, heavy black webs | | ๐ฎ๐ฑ Israel Suit | Flag white and deep blue | Star of David emblem on chest and back (new in GalStrike) | | โญ Captain America Suit | Navy and red | White star emblem (new in GalStrike) | | ๐ด Iron Man Suit | Hot-rod red and gold metal | Glowing arc reactor (new in GalStrike) |
The new emblems (five-point star, Star of David, arc reactor) are signed-distance-field shapes drawn by the shader on the character's body, so they stay sharp at any resolution.
Midtown ยท golden hour
The GalStrike suit on a Midtown rooftop at night ยท real in-game capture
![]() Street level ยท live traffic and crowds |
![]() Midtown rooftop ยท GalStrike suit |
![]() Times Square ยท night |
![]() Brooklyn Bridge ยท sunrise |
![]() Central Park ยท morning |
![]() Midtown ยท noon |
![]() East River ยท dusk |
|
| Area | Change |
|---|---|
| Start screen | A GalStrike title screen with a slow cinematic orbit around the hero. Play, Suits and Settings, driven by mouse, keyboard or gamepad. |
| New suits | GalStrike (glowing neon web lines), Israel, Captain America, Iron Man, Classic, Stealth and Scarlet, with new procedural emblems and emissive details. |
| Gamepad interact | Hold D-pad Up (or X / Square outside combat) to activate towers and interact. |
| Auto quality | On load the game reads the GPU name and picks a preset (low for integrated GPUs, medium for mid-range and APUs, high for dedicated GPUs). It re-checks on every load, so when the browser moves to the dedicated GPU the preset follows, until you choose one by hand. |
| Dynamic resolution | If frames stay slow for 2 seconds, internal resolution drops in 10% steps (down to 55%), and climbs back when there is headroom. |
| Smooth mouse look | Raw, unaccelerated mouse input (unadjustedMovement), plus a filter for the bogus pointer-lock spikes Chrome sometimes sends on Windows, which used to throw the camera around. |
| Story missions | 8-mission chain with races, scoring, ranks and saved bests, plus a Missions page in the pause menu. |
| Achievements | 21 achievements, a Records panel and gold unlock toasts. |
| Touch controls | Full on-screen controls for tablets and phones. |
| Hebrew UI | Full RTL Hebrew translation with Secular One and Heebo fonts, switchable live. |
| Start screen setup | Time and weather picker, sound sliders and mute. |
| Live demo | Asset URLs are base-path aware, and a GitHub Actions workflow builds and deploys to GitHub Pages on every push. |
| Action | โจ๏ธ Keyboard and mouse | ๐ฎ Gamepad (Xbox / PlayStation) |
|---|---|---|
| Move | W A S D | Left stick |
| Camera | Mouse (click the game to capture it) | Right stick |
| Web-swing (hold) | Right mouse button | R2 / RT (in the air) |
| Jump (hold = charged jump) | Space | A / โ |
| Parkour and wall-run | Shift | R2 on the ground or on walls |
| Web-zip / point-launch | E or middle mouse button | L2 + R2, or Y / โณ |
| Quick web boost (air) | Q | L1 / LB |
| Dive / drop | C or Ctrl | B / โฏ |
| Web tightrope (while perched) | T | โ |
| Interact (activate tower, hold) | F | D-pad โฒ, or X / โข outside combat |
| Pause menu / map | Esc / M | Start / Select |
| Help overlay | H | โ |
| Mute / unmute | N | โ |
Note
Gamepad: connect it before opening the game, then press any button. Browsers only expose a controller after its first input.
Requirements: Node.js 20.19+ or 22.12+, and a WebGL2 browser (desktop Chrome or Edge recommended).
git clone https://github.com/galasulin/galstrike.git
cd galstrike
npm install
npm run dev # http://127.0.0.1:5173npm run build # production build in dist/
npm run preview # serve the build on http://127.0.0.1:4173Useful URL parameters
| Parameter | Effect |
|---|---|
?q=low ยท ?q=med ยท ?q=high |
Force a graphics preset |
?notitle |
Skip the start screen |
?lang=he ยท ?lang=en |
Force the interface language |
?nodynres |
Turn off dynamic resolution |
?newgame |
Wipe the saved progress |
?fresh |
Don't restore the last player position |
?dev |
Enable the developer menu (~) on a production build |
Troubleshooting
- Black screen or very low FPS: open
chrome://gpuand checkGL_RENDERER. If it says Intel on a laptop with an NVIDIA or AMD GPU, switch Chrome to the high-performance GPU (see the tip above), then fully restart Chrome. - Camera too fast: Pause โ Settings โ Mouse Sensitivity, or lower your mouse DPI to 800โ1600.
- Stutters: lower Pause โ Settings โ Render Resolution, or pick the Low preset.
flowchart LR
subgraph Boot
HTML[index.html<br/>loading screen] --> MAIN[src/main.js]
end
MAIN --> WORLD[world/<br/>procedural city ยท traffic ยท crowds]
MAIN --> PLAYER[player/<br/>traversal ยท animation ยท webs]
MAIN --> RENDER[render/<br/>pipeline ยท shadows ยท sky ยท lighting]
MAIN --> SYS[game/systems/<br/>towers ยท crimes ยท suits ยท save ยท audio]
MAIN --> COMBAT[game/combat/<br/>enemies ยท moves ยท FX]
SYS --> UI[ui/<br/>HUD ยท pause menu ยท start screen]
MAIN -. each frame .-> LOOP((player โ world โ lighting<br/>โ HUD โ systems โ render))
| Module | Lines | What it does |
|---|---|---|
src/world/ |
~30,600 | City layout, buildings, facades, rooftops, Times Square, parks, bridges, waterfront, signage, traffic and crowds |
src/player/ |
~8,300 | Traversal state machine, rope physics, web visuals, camera, animation rig and gait |
src/game/ |
~5,800 | Open-world systems (towers, crimes, suits, progression, save, audio, photo mode) and combat |
src/render/ |
~3,800 | Post-processing pipeline, cascaded shadows, sky and clouds, time of day, quality presets |
src/ui/ |
~1,900 | HUD, minimap, pause-menu pages and the start screen |
126 source files ยท about 51,000 lines of JavaScript ยท about 140 MB of assets (models, textures, audio and fonts).
Project layout
galstrike/
โโ index.html # loading screen + entry
โโ vite.config.js # base path switch for GitHub Pages
โโ public/assets/ # character / enemy models, city textures, audio, fonts, loading stills
โโ src/
โ โโ main.js # renderer, scene, main loop, dynamic resolution
โ โโ world/ # procedural Manhattan (city, buildings, rooftops, npc/ โฆ)
โ โโ player/ # traversal/, anim/, input, camera, webs
โ โโ render/ # pipeline, csm, sky, lighting, quality
โ โโ game/systems/ # towers, crimes, suits, progression, save, audio โฆ
โ โโ game/combat/ # combat loop, enemies, moves, FX
โ โโ ui/ # hud, menus/ (pause, map, suits, settings, title)
โโ .github/workflows/pages.yml
- Gamepad binding for interact (tower activation)
- Touch controls for phones and tablets
- More suits and suit abilities
- Story missions with objectives and scoring
- Achievements and records
- Full Hebrew interface (RTL, Secular One + Heebo)
- Leaderboards
GalStrike ืืื ืืฉืืง ืชืืช-ืืื ืืขืืื ืคืชืื ืฉืจืฅ ืืฉืืจืืช ืืืคืืคื: ืืชื ืื ืืื ืขื ืงืืจืื ืืขื ืื ืืื, ืจืฆืื ืขื ืืืจืื ืฉืืงืื, ืขืืฆืจืื ืคืฉืขืื ืืจืืืืืช ืื ืืืืื ืืื ืืคืืืช. ืืื ืืชืงื ื.
- ๐ธ๏ธ ืชื ืืขื: ืกืืืื ื ืืืืกืก ืคืืืืงื, ืจืืฆื ืขื ืงืืจืืช, ืืื ืืง ืื ืงืืืืช, ืฆืืืื ืืืื ืงืืจืื.
- ๐๏ธ ืขืืจ ืฉื ืื ืืช ืืงืื: ืืืคื ืื ืืื ืื, ืืืืช, ืคืืจืงืื, ืืืืืก ืกืงืืืจ, ืืฉืจืื, ืชื ืืขื ืืืืืื ืจืื.
- ๐ฎ ืขืืื ืคืชืื: 9 ืจืืืขืื ืขื ืืืืืื ืืืคืขืื, ื ืกืืขื ืืืืจื ืืจืืืช, ืคืฉืขืื ืืจืืืืืช, ืงืจืืืช, XP, ืขืฅ ืืืฉืืจืื ืืืฆื ืฆืืืื.
- ๐ฆธ 10 ืืืืคืืช, ืืื ืืื ืืืืคืช ืืืชืืื GalStrike ืขื ืงืืื ื ืืืื ืืืืจืื, ืืืืคืช ืืฉืจืื ืขื ืืื ืืื, Captain America ื-Iron Man ืขื ืืืจ ืืจืง ืืืืจ.
- ๐ 8 ืืฉืืืืช ืกืืคืืจ ืขื ืืจืืฆืื, ื ืืงืื ืืืืจืื S/A/B/C, ื-21 ืืืฉืืื ืืฉืืืื.
- ๐ฑ ืชืืืื ืืืืข ืืืืืืืืื ืขื ื'ืืืกืืืง ืืืคืชืืจืื ืขื ืืืกื.
- ๐ ืกืืื ื, ืฉืขื ืืืื ืืืืืจ ืืชืคืจืื ืืคืชืืื.
- ๐ฎ๐ฑ ืืืฉืง ืืื ืืขืืจืืช ืืืืื ืืฉืืื, ืขื ืคืื ืืื Secular One ื-Heebo, ืืืขืืจ ืืื ืขืืจืืช ืืื ืืืืช ืืืืืฆื.
- โก ืืืฆืืขืื: ืืืืจืช ืืืืืช ืืืืืืืืช ืืคื ืืจืืืก ืืืกื, ืจืืืืืฆืื ืืื ืืืช, ืืชื ืืขืช ืืฆืืื ืืืงื (ืงืื ืขืืืจ ืืืืื).
โถ ืืฉืืง ืขืืฉืื. ืืืืืฅ ืืืฉื ืขื ืืจืืืก ืืกื ื ืคืจื. ืืืขืื ื ืืจืืฉืื ื ืืืงืืช ืืืงื.
ืคืจืืืงื ืฉื ืื ืืกืืืื. ืืงืื ื ืืชื ืืืืฆืขืืช Claude (Claude Code) ืืืืืื ืช ืืื.
Source-available, view-only. See LICENSE. No commercial use or redistribution without written permission.
This is an unofficial, non-commercial fan project, made only as a technical demonstration. It is not affiliated with, endorsed by or sponsored by Marvel, Disney, Sony or Insomniac Games. Spider-Man, Captain America, Iron Man and all related names, characters and likenesses are trademarks and copyrighted material of their respective owners, and no rights to them are claimed. The bundled fonts are licensed under the SIL Open Font License (see public/assets/ui/fonts/).









