destroyulator/LANES/PLAN.md
Monster Robot Party c03bb85c9f Add parallel-lane execution specs for Opus 4.8
LANES/PLAN.md         — verdict, GODVERSE pipeline architecture, shared contracts, 3GOD security note
LANES/LANE1-*.md      — Godot: grab/slide/smash record ritual + find-the-misfiled-disc mode (owns game/)
LANES/LANE2-*.md      — meshgod cell-fracture stage + Destroyulator prop batch -> 3GOD (owns ~/meshgod)
LANES/LANE3-*.md      — thriftgod-based web smash toy, Rapier physics, 3GOD props (owns web/)
LANES/KICKOFF.md      — per-lane opening prompts + collision-safety rules

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 16:47:47 +10:00

3.3 KiB
Raw Permalink Blame History

DESTROYULATOR — Build Plan & Lane Specs

Fable's review + plan, 2026-07-08. Three parallel lanes over one shared asset pipeline.

The verdict

Destroyulator plugs into the GODVERSE pipeline you already have, it does not reinvent it:

  meshgod  ──makes──▶  3GOD depot  ──serves──▶  { Godot game, web toy }
 (text→GLB)          (digalot.fyi/3god)         (two front-ends, one universe)
  • Engine question, settled: Godot stays the shippable game (native Apple Silicon, Jolt, exports Win/Mac/Linux off the M3). Three.js is NOT a port of the same game — it's a separate, shareable web toy built on thriftgod's live first-person interior code, wired to the same props. Different product, same universe. Both consume the same pipeline, so the expensive part (assets) is built once.
  • Assets are hybrid-cloud, not free: meshgod = OpenRouter + fal.ai (~$0.100.55/asset, 12 min). Budget per batch; don't assume infinite regeneration.

The three lanes (fire in parallel)

Lane Repo / dir it OWNS Deliverable Depends on
1 — Godot: record ritual game/ (this repo) Grab→lift→slide-disc→smash mechanic + "find the misfiled disc" mode nothing (starts now)
2 — Asset pipeline ~/Documents/meshgod (separate repo) Cell-fracture stage + Destroyulator prop manifest → 3GOD nothing (starts now)
3 — Web smash toy web/ (this repo, new dir) thriftgod-based FP smash demo, 3GOD props, Rapier physics 3GOD (read-only)

Scope rule (prevents collisions): each lane writes ONLY inside the dir it owns. Lane 2 delivers assets to 3GOD + meshgod outputs; Lane 1 pulls approved GLBs into game/assets/ itself (Lane 2 never writes game/). Lane 3 fetches from 3GOD at runtime.

Shared contracts (every lane obeys these)

  1. GLB convention: glTF Y-up, 1 unit = 1 m, origin at floor-center, textures embedded, decimated to tri budget. (meshgod already emits this.)
  2. Fracture format: an intact <name>.glb PLUS a sibling <name>.fractured.glb whose root's direct children are the chunk meshes (each a MeshInstance/mesh node named chunk_00…chunk_NN, origin at its own centroid, in the intact model's local space). Consumers instance it and turn each chunk into a rigid body. Defined by Lane 2, consumed by Lanes 1 & 3.
  3. Depot: 3GOD at https://digalot.fyi/3godGET /api/list returns the shelf; GLBs fetchable by slug. Web lane reads live; game lane commits offline copies.

⚠️ Pre-req / ops risk (owner's call — NOT auto-fixed)

The review of 3GOD found the public digalot.fyi/3god instance running in open mode (GOD3_OPEN=1) — write endpoints (upload/delete/fetch) are reachable unauthenticated, plus an SSRF hole in /api/fetch (server.py:173, reads file:// + cloud metadata). Lane 3 only reads the depot, so it's not blocked — but before leaning on 3GOD as public game infrastructure, close open-mode + allow-list /api/fetch schemes/hosts. This is a production box; flagged for you to action, not silently changed.

Sequencing note

All three start immediately. Lane 2's fracture output upgrades Lanes 1 & 3 (real shard-by-shard destruction) but neither is blocked waiting for it — both already work with primitive/auto-collider fallbacks. Integrate fractured assets when they land.