Silicon Jungle
The Silicon Jungle — first-person Three.js survival on an abandoned PCB
#The Silicon Jungle
A first-person 3D survival-action game on an abandoned motherboard overgrown with cyber-jungle. You are miniaturized. Phenom, a corrupt CPU with a microcode defect, hunts you with robots.
Vanilla JavaScript ES modules + Three.js r128. Cel-shaded look, procedural Web Audio SFX, no bundler.
#Play
The game is static files. Serve the repo over HTTP (file:// will not load ES modules).
Recommended — cache-busting server on port 4321:
python3 serve.py
Open http://localhost:4321.
Any other static server works (python3 -m http.server 4321, npx serve ., VS Code Live Server). Prefer serve.py while developing: ES module URLs are cache-hostile in the default Python server.
Requirements: a current Chromium or Firefox; Python 3 for serve.py; Node.js 18+ only if you run tests.
#Tests
npm test # or node --test 'js/**/*.test.mjs'
See CONTRIBUTING.md.
#Controls
| Action | Input |
|---|---|
| Move | W A S D |
| Look | Mouse (pointer lock) |
| Attack / fire | Left mouse |
| Interact / collect | E |
| Weapon slots | 1–4 |
| Cycle weapons | Mouse wheel / Q |
| Flashlight | L or F |
| Sprint | Shift |
| Jump | Space |
| Build mode | B (craft PCB pieces at a workbench first) |
| Pause / cursor | Esc |
In build mode: scroll cycles piece type, R yaws, left click places, right click demolishes.
#Features
- PCB world: copper traces, electrolytic capacitors, DIMM spires, I/O hangars, CPU heatsink citadel
- Circuit vegetation: jumper vines, resistor trees, thermal-paste moss
- Toon lighting and a day/night clock with storms
- Arsenal: circuit knife, LED flashlight, plasma pistol, arc shotgun, bus rifle
- Spider-Bots, Phenom sentinels, tameable Capdog, Transistor NPCs
- Crafting, inventory, player-placed floors/walls/doors/stairs/crates/benches
- Procedural SFX (Web Audio API — no sample pack required)
#Repository layout
miniworld-survival/ ├── index.html # Entry HTML, Three.js CDN, HUD markup ├── serve.py # Dev HTTP server, no-store cache headers, port 4321 ├── css/ # HUD, overlay, inventory, crafting, dialogue, … ├── js/ │ ├── main.js # Game loop and composition root │ ├── config/ # Constants, quality, combat balance │ ├── core/ # Scene, events, save, registries, survival │ ├── world/ # Terrain, biomes, chunks, structures, weather │ ├── building/ # Player base grid, catalog, meshes │ ├── entities/ # Player, inventory, enemies, NPCs, companions │ ├── combat/ # Damage, LoS, projectiles │ ├── weapons/ # Weapon system and strategies │ ├── ui/ # HUD, menus, compass │ └── utils/ # Collision, particles, culling ├── docs/ # Design notes (mostly Portuguese) — see docs/README.md └── js/**/*.test.mjs # node:test suites next to the modules they cover
Design and architecture notes: docs/README.md.
#Contributing
Read CONTRIBUTING.md. This project follows the Contributor Covenant. Security reports: SECURITY.md.
Please do not edit the GDD docs/visao_futuro_mundo_aberto.md or docs/mundo-aberto/plano_completo.md unless maintainers agree on an issue first.
#License
MIT. Third-party notices (Three.js, fonts): NOTICE.md.
#Credits
- Three.js r128 — MIT, loaded from CDN
- Google Fonts — Chakra Petch, Orbitron, Share Tech Mono (OFL)