Live crypto price action rendered as a cinematic war between spartan archer miniatures. Green army = buyers, red army = sellers. Every closed candle is a volley of arrows; wicks are failed charges; volume brings reinforcements; round-number price levels are stone ramparts.
100% static site — no build step, no backend. Upload the folder to any host
(Cloudflare Pages, Hostinger, Netlify…) and it runs. Three.js is vendored locally
in js/vendor/ so there are no CDN dependencies.
cd ARMYCANDLE
python3 -m http.server 8080 # then open http://localhost:8080(Any static server works; opening index.html via file:// won't, because of ES modules.)
- LIVE — Binance WebSocket, straight from the browser:
<sym>@kline_1s— every closed 1-second candle = one battle round<sym>@trade— real-time ticker pricefstream …@forceOrder— real liquidations (futures) → soldiers explode with "LIQUIDATED $X"
- SIM — random-walk fallback with volatility regimes, god-candle impulses and fake liquidations. Automatically engages if the live feed can't connect.
- Coins: BTC / ETH / SOL (top-right tabs).
| Market | Battlefield |
|---|---|
| Candle closes green/red | That side attacks, other side takes casualties ∝ body size |
| Upper / lower wick | Failed assault — a squad charges into no-man's land and dies |
| Volume | Reinforcements marching in from the edges |
| Price vs EMA(90) | Frontline position drifts across the field |
| Body > 2.6× average | ⚡ GOD CANDLE / CAPITULATION — pillar of light, shockwave, slow-mo, permanent crater |
| Volume > 3.2× average | 🐋 WHALE — giant golden titan (crown + great spear) stomps through enemy lines |
| Real liquidation | 💀 soldier explodes + "LIQUIDATED $X" popup; 5 within 3s = CASCADE |
| Round-number level | 🧱 stone rampart; price crossing it = breached fort (soldiers climb over the rubble line) |
- 1 / 2 / 3 — Cinematic (auto-directed) / Follow / Free camera
- WASD move · Q/E down/up · Shift boost · drag orbit · scroll zoom
- Sliders: CHAOS (battle scale), MUSIC, SFX (all audio is procedural WebAudio — no files)
- 📸 CLIP IT — saves a PNG screenshot
Three.js r160 (vendored) · EffectComposer: UnrealBloom + custom tilt-shift/grade/grain/vignette pass + ACES output · InstancedMesh crowds (soldiers, shards, tracers, sandbags) · all VFX pooled · procedural WebAudio · mobile automatically lowers pixel ratio and disables tilt-shift blur.
All geometry is procedural (no downloaded assets → zero licensing risk).