# GigaSlop — project notes for Claude ## What this is Satirical AI-datacenter tycoon game. Web-first: TypeScript + Vite + PixiJS v8. Design doctrine: **the sim stays engine-agnostic** — `src/sim/` must never import from `src/render/` or `src/ui/` (a future Godot/Steam port swaps the renderer only). Fixed 10 Hz tick, deterministic (seeded rng in state, no Date.now/Math.random inside sim). ## Dev loop - `npm run dev` on :5173 (`.claude/launch.json` has the preview config). - The Browser-pane tab is usually `visibility: hidden` → RAF doesn't fire. The sim is pumped by setInterval on purpose; don't move it back into RAF. - `window.__giga` = debug handle {state, scene, place(), wire()} for JS-driven playtesting. Keep it working — automation depends on it. - All balance tunables live in `src/sim/balance.ts`. Tune there, nowhere else. ## Art pipeline (MODELBEAST) - `python3 tools/mb_gen.py [--only room|objects|slop]` regenerates art on the farm (queue http://100.89.131.57:8777, token from ~/Documents/backnforth/.env). Deterministic seeds from asset slug — same slug, same image. - Object sprites: flux_local → bg_remove_local (background:"transparent") → autocropped in place (PIL alpha-bbox, 8px pad). If you regenerate, re-crop. - Room/grid registration: `src/render/iso.ts` (TILE 82x41, ORIGIN 510,346) is hand-fitted to `public/assets/gen/room.png`. New room image = refit constants (toggle the Grid overlay to check). - Slop thumbnails are intentionally AI slop; titles in src/data/sloptitles.json (Ollama on m4pro was down at bake time; hand-authored — regenerate via tailnet Ollama when it's back if more are needed). ## Roadmap (agreed with John 2026-08-01) ✅ M1 art-forward Tier-1 slice (save/load, naming, SFX) ✅ M2 platform-decay treadmill: platformAdapt rises per publish, throttles all view rates (up to 85%), tier-up grants relief — verified loop: publish → squeeze → train → relief. Infra: 20A sub-panel (+1500W), fiber uplink (1Gbps/8 ports), Cash Furnace (burns $1.5/s for +40% views; John's idea, keep it — endgame R&D tree should have a literal cash-conveyor upgrade). ✅ M3: VC rounds (Seed→C) with views-delta mandates — fail = -25% cash and permanent equity dilution; rival CEO events (Doomsworth/Hypeman/Freeman Weights/Poogle) on a seeded timer with timed view/price effects and a 60/40 CLAP BACK gamble. Seed goal calibrated empirically: decisive play ≈48K views/8min, goal 40K, idle ≈12K. ✅ M4 skill trees (src/sim/research.ts is the single source of truth; sim reads one computeMods() bundle — add nodes there, never special-case sim): • Model Lab (L): gen ladder is now bought from the training bank; modality branch (voice→image→video→A/V, richer = more views but pricier videos); one exclusive spec per gen (engagement/stealth/efficient, cleared on gen-up); data source own/scraped/licensed — own rolls 35% MODEL COLLAPSE (half revenue + all-gibberish titles for that gen), scraped attracts lawsuits, licensed bills per token. • Corporate R&D (R): perk point per closed VC round + cash; Ops/Growth/ Legal branches; capstones Diesel Backup (grace+auto-reset, no checkpoint corruption), THE CONVEYOR (10% gross income burned, +50% views), Regulatory Capture (lawsuit immune, 2x adapt decay). • Sockets: click device → inspector panel (stats, on/off, sell, 2 upgrade slots: fans/undervolt/risers). ✅ M5 model line + API market: player names their model at incorporation (versions 1/1.5/2/3 = the old tier ladder); ship grades mini/pro/MAX from the training bank (margin/demand/distill-risk per grade, GRADES in research.ts); 3-way compute split train/host/slop (allocHosting); rotating third-party market (rollMarketModel), hot drops crater incumbent margins ~28%; hosting your own grade rolls distillation (margin cut 60% that version — re-ship on a newer version to restore the moat); scraping ops cash ladder (puppeteer→proxies→botnet→captcha) vs severity-1..3 IP-ban outages. Market panel = M key. ✅ M6 hardware depth: GPU cards (GPUS in catalog.ts, 11 parody cards P106→BigChungus) install into carrier slots (PC=1, rig=4, half-rack=8 +rackClass for datacenter cards); carriers have no intrinsic tok — cards provide tok/watts/VRAM/heat. VRAM totals gate ALL token output vs the running version's needs (TIERS vramGB, floor 0.25). Storage devices (shoebox/NVMe/NAS) gate training checkpoints (TIERS checkpointGB — training stalls without disk). Switch layer: device→switch→uplink with per-switch Mbps caps (no daisy chains). Shop has category headers. Old saves get equivalent card loadouts (save.ts migration). → M7 backlog: ad-spend slider + email-spam campaigns, ACTIVE scraping minigame, hazards (thermal runaway fire), Tier 2 garage move, subscribers/SaaS churn revenue, Conveyor belt visual, per-carrier PSU capacity, unreliable used cards (degradation). Design pillars (John-approved framing): Throughput, Allocation, Attention, Capital, Expansion. Macro layer (Tier 4-5) = strategic map, NOT city-builder. Cut until earned: Tiers 3–5, immersion cooling, offshore ships, lobbying.