🎨 brief: §7b MODELBEAST art pipeline — unlimited local FLUX, truth boundary (fable)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
monsterrobotparty 2026-07-15 23:20:06 +10:00
parent cfdb0d6252
commit b9faa76ee1
3 changed files with 53 additions and 1 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
cache/
art/candidates/
.DS_Store
__pycache__/
*.pyc

View File

@ -17,3 +17,6 @@ Horizons ground truth, the stage plan, and the known traps.
- `cache/` is serve.py's disk cache — gitignored, never commit it.
- Keep committed assets lean (~25 MB texture budget) and attribute CC BY sources
in `assets/textures/CREDITS.md` + the HUD footer.
- Local unlimited image generation: MODELBEAST at `/Users/m3ultra/Documents/MODELBEAST`
(FLUX on-device via `mb` CLI) — see brief §7b. Truth boundary: real worlds get real
NASA textures; FLUX only paints the aesthetic layer (splash, grimoire cards, sprites).

View File

@ -291,6 +291,53 @@ JPL — the cache is the rate limiter. Print one boot line like GODSIGH's serve.
scaled with the parent's draw scale), ring texture, `DoubleSide`, transparent.
Uranus gets a thin schematic gray ring. Tilt with the parent's axial tilt.
## 7b. Generated art — the MODELBEAST pipeline
The M3 Ultra runs **MODELBEAST** (`/Users/m3ultra/Documents/MODELBEAST`, web UI
`http://localhost:8777`, tailnet `http://100.89.131.57:8777`) — a local job
queue/load manager with an on-device FLUX operator (`flux_local`, mflux/MLX,
`flux2-klein-4b` ungated, seed-reproducible, **free and unlimited**). Drive it
headless with the `mb` CLI (see `MODELBEAST/AGENTS.md` for the full reference):
```sh
export MB_HOST=http://localhost:8777 MB_TOKEN=mbt_... # token: ⚙ Settings → Users
# house workflow — run 5 seeds, pick the best:
for S in 1 2 3 4 5; do
./mb run flux_local -p prompt="$PROMPT" -p model=flux2-klein-4b \
-p seed=$S -p width=1024 -p height=1024 --wait --download art/candidates/
done
```
The `gpu` lane runs one job at a time — queue all 5 and wait, don't spam retries
on `queued`. Finish assets with `fal_bg_remove` (alpha cutouts for sprites) and
`fal_upscale`/`seedvr2_upscale` where 1024 isn't enough. If `MB_TOKEN` isn't
available in the session, generate nothing and leave a TODO list of prompts in
`assets/art/PROMPTS.md` instead — never block a stage on art.
**The truth boundary (non-negotiable):** SOLARGOD is a scientific instrument.
Real worlds get **real data textures** (§7 — NASA/Solar System Scope maps); FLUX
must never invent the surface of Mars or the face of Europa. Generated art owns
the *aesthetic* layer only, always visually distinct from data:
- **Splash/boot screen** (Stage 0, optional polish): one hero image, brass-and-void
observatory aesthetic to match the god-app family.
- **Grimoire illustrations** (Stage 6): one stylized portrait per body for the info
panel — engraving/astrolabe style, clearly *art*, framed separately from the
rendered planet. ~800×800, 5-seed runs, pick best, note chosen seed+prompt in
`assets/art/PROMPTS.md` so any card can be regenerated in-style.
- **Effect sprites**: comet tail/coma, sun glow, spacecraft glyph icons — generate,
cutout via `fal_bg_remove`, save as alpha PNGs.
- **Optional "DREAM skybox"** toggle (off by default): a FLUX nebula panorama as an
alternate sky. The *default* sky stays the real Milky Way panorama — from inside
the solar system the real sky is a data statement too. FLUX doesn't produce
seamless 2:1 equirects reliably; hide the seam behind the anti-camera side or
mirror-wrap, and don't burn time here.
Log every shipped asset in `assets/art/PROMPTS.md` (prompt, model, seed, operator
chain) — reproducibility is the house rule for art too. The §7 texture budget
(~25 MB committed) covers generated art as well; art candidates/rejects stay in
`art/candidates/` (gitignore it).
## 8. Physical data (`bodies.js`)
Registry keyed by body id with: `name, type, radiusKm, axialTiltDeg, rotationHours
@ -372,7 +419,8 @@ Branch per stage; gate before merge; one commit per coherent step.
sphere, not a line); Halley's aphelion beyond Neptune's orbit… in the compressed
view, near it.
- **Stage 6 — ALMANAC** (knowing): info panel with live facts (§5), per-body prose
blurbs (23 sentences, hand-written, grimoire voice), Earth Easter egg — focusing
blurbs (23 sentences, hand-written, grimoire voice), grimoire illustrations via
MODELBEAST (§7b — skip gracefully if no token), Earth Easter egg — focusing
Earth shows "▸ open GODSIGH world view" linking `http://127.0.0.1:8137`, README.md
with the full GODSIGH-style layer table and screenshots (`docs/`), HUD credits.
Gate: every clickable body has a card; README quickstart works from a fresh clone.