A full 3D island life-sim that ships in ~8.5 MB — because there isn't a single art asset. Every mesh, material, character and note of music is generated in code. Here's how it all fits together.
Back to the islandNo texture files, no 3D models, no audio files, no sprite sheets. The entire world is built at runtime in TypeScript — which is why the whole download is smaller than a single high-res photo on some apps.
as any, zero @ts-ignore.package.json, the git tag and the live bundle.
DELIVERY ─────────────────────────────────────────────────────────────────
┌────────────────┐
Desktop browser Mobile browser Android (native) │ Cloudflare │
│ │ Capacitor 8 WebView │ Pages │◄─ git push
└────────┬────────┴──────────────────┤ │ CDN + SSL │
│ │ Capgo OTA └───────┬────────┘
│ │ live bundle ◄──────┘
▼ ▼ (auto-rollback)
═══════════════════════════════════════════════════════════════════════════
RUNTIME index.html → main.ts → Game
│
┌──────────────────┴───────────────────┐
▼ ▼
┌──────────────────┐ ┌────────────────────┐
│ GAME LOOP │ renders │ Babylon.js 9 │
│ sim = 1/60 fix │ ────────────► │ WebGL2 · bloom │
│ render ≤ 60 fps │ │ shadows · glow │
└────────┬─────────┘ │ GPU wind shader │
│ update(dt) └────────────────────┘
▼
═══════════════════════════════════════════════════════════════════════════
CORE ┌──────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ GameContext │ │ EventBus │ │ SystemManager │
│ service loc. │ │ fully typed │ │ ISystem order │
└──────────────┘ │ (no system imports│ │ init/update/ │
│ another system) │ │ dispose │
└────────┬──────────┘ └──────────────────┘
SYSTEMS ◄─────────────────────────┴────────────────────────────────────►
brew · friendship · mainQuest · personalQuests · womensDay · festival ·
pubs · vibrancy · farming · weather · audio · graphics · lighting · … (~44)
│ │ │
▼ ▼ ▼
═══════════════════════════════════════════════════════════════════════════
PROCEDURAL GEN CONTENT (data) PERSISTENCE
meshes · characters catalog · quests SaveManager → per-system
canvas textures · sky festivals · flowers serialize → localStorage
Web-Audio synth + score … / Capacitor Preferences
→ NO asset files
~44 independent systems, each owning one slice of the game and coordinating only through the typed event bus. Registered in a deliberate dependency order.