Skip to content

docs: visual asset options menu + pipeline inventory (Pip pick-and-iterate) - #649

Merged
PipFoweraker merged 1 commit into
mainfrom
docs/visual-asset-options
Jul 21, 2026
Merged

docs: visual asset options menu + pipeline inventory (Pip pick-and-iterate)#649
PipFoweraker merged 1 commit into
mainfrom
docs/visual-asset-options

Conversation

@PipFoweraker

Copy link
Copy Markdown
Owner

What

A menu of dials for visual assets so Pip can pick a direction and iterate fast in parallel with playtesting — plus a full pipeline + asset inventory. Research/prep lane: doc only. No images generated, no keys used, no binary assets committed. Do NOT merge — this is for Pip to pick from.

New file: docs/art/VISUAL_ASSET_OPTIONS_2026-07-16.md

Key findings

  • Pipeline runs today. tools/assets/generate_images.py (gpt-image-1.5 default; dormant Gemini "Nano Banana Pro" backend with reference-image consistency). Deps installed locally (openai 2.8.0, Pillow 12.0.0, pyyaml); dry-run verified. Only gap: OPENAI_API_KEY unset, and the default model id carries a TODO: confirm exact id vs live docs — do one throwaway image to confirm id + true cost before a paid batch.
  • Existing scoped ideas found (refresh, not reinvent): art_prompts/hero_banners.yaml (3 scene banners, already on-register, still pending); docs/assets/ASSET_GENERATION_BATCH.md (126-asset list, but stale cyan/blue palette — needs refresh); ICON_MAPPING_AUDIT.md (8 icons still rendering as placeholders).
  • Top gaps ranked: (1) researcher/staff portraits — pure text today, the XCOM/attachment lever; (2) event/response-window hero art; (3) title/menu hero + CRT frame; (4) 8 placeholder-killer icons; (5) doom-meter (mostly wire-up of existing unused art); (6) office background; (7) ledger/finance chrome (deprioritise — deadpan text is on-tone).
  • Recommended first batch (~$2.85, ~51 imgs): 3 scoped hero banners as-is + 8 refreshed placeholder icons + 6 researcher-portrait pilot.

Open decisions for Pip

Portrait style (flat CRT-dossier vs painterly XCOM) · matched cast (Gemini+ref) vs independent · confirm model id/cost · per-genre event banners now or later · CRT frame worth mocking. See §7.

🤖 Generated with Claude Code

…erate)

Menu-of-dials decision doc for rapid visual iteration alongside playtesting.
Inventories the gpt-image-1.5 pipeline (runs today; only OPENAI_API_KEY
missing), current asset coverage, and prior scoped ideas (hero_banners.yaml,
ASSET_GENERATION_BATCH, ICON_MAPPING_AUDIT). Ranks gaps by player-visible
impact and recommends a first batch (heroes + placeholder icons + portrait
pilot, ~$2.85). No generation, no binary assets.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@PipFoweraker
PipFoweraker merged commit be808cf into main Jul 21, 2026
11 checks passed
@PipFoweraker
PipFoweraker deleted the docs/visual-asset-options branch July 21, 2026 00:43
PipFoweraker added a commit that referenced this pull request Jul 21, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PipFoweraker added a commit that referenced this pull request Jul 21, 2026
…649)

Promote batch #649 gpt-image action icons (kills placeholder fallbacks):
team_building v1, network v2, acquire_startup v2, sabotage_competitor v1,
lobby_government v1 (stopgap -- re-roll queued), open_source_release v1,
take_loan v1, grant_proposal v2. icon_mapping.json repointed; new
test_icon_mapping.gd asserts all 8 resolve to real textures, not the
magenta placeholder. Fast gate: 540 tests, 0 fail.

Stage CRT-dossier v2 portrait set (5 archetypes, one coherent look) under
godot/assets/portraits/ -- staged-but-unwired, no UI slot yet. README
records the per-archetype variant-pool + random-assignment design.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PipFoweraker added a commit that referenced this pull request Jul 22, 2026
gpt-image-1.5 re-rolls implementing each verdict re-roll note:
- 8 action icons (2 variants, rendered OPAQUE to fix failing alpha edges)
- 10 portrait entries (5 subjects x 2 varied demographics) for the
  per-archetype variant pool; fresh-grad aged to graduated-undergrad, less
  cartoon/anime/ghibli, ethnicity/gender varied
- 3 banners (2 variants): title-hero (extra light + cat/comforts/poster),
  doom-rising (CONSERVATIVE in-palette only -- doom-colour spec owed),
  strategic-moves (chair separated/lit, shorter FOV/table)

Manifests: art_prompts/round3_rerolls.yaml (+_banners.yaml, split for landscape).
Review gallery rebuilt. NOTE: only the sub-1000KB downscales are committed (the
512/768 sizes the gallery shows); the 1024/1536 masters exceed the
check-added-large-files guard and stay on disk (regenerable from the manifests).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PipFoweraker added a commit that referenced this pull request Jul 22, 2026
… frames (#649 approved) (#761)

* art(assets): first gpt-image-1.5 batch -- banners, icons, portrait A/B, CRT frames

Fires the PR #649-approved visual-asset batch
(docs/art/VISUAL_ASSET_OPTIONS_2026-07-16.md). Model id gpt-image-1.5 confirmed
live via a throwaway probe (no fallback to gpt-image-1 needed).

Batches (all via tools/assets/generate_images.py, YAML-as-source-of-truth):
- hero_banners: 3 scoped banners x3 variants (9 renders). Added background: opaque
  so full-bleed skies/dark grounds are not alpha-cut (the generator defaults to
  transparent -- correct for icons, wrong for banners).
- action_icons_missing (NEW yaml): 8 placeholder-killer icons x2 (16). Palette
  re-authored off the stale cyan/blue register to desaturated teal/olive + amber.
- researcher_portraits_pilot (NEW yaml): 6 lore archetypes x 2 style poles x2
  (24) -- painterly XCOM (pole A) vs flat CRT-dossier (pole B) A/B. Archetypes
  only, never real people (event-horizon guardrail). 6th archetype (fresh-grad
  true-believer) is a discretionary lore-grounded pick, mirror of the burned-out
  senior.
- crt_frame_overlay (NEW yaml): 3 CRT bezel/frame mocks x1 (3), transparent
  centre.

52 renders, ~$3.57 estimated (per-image estimates; confirm true billing on the
OpenAI dashboard -- the SDK image path does not surface token usage). Nothing
promoted to godot/assets yet; Pip curates in the HTML gallery.

Repo-hygiene notes:
- art_generated/ is normally gitignored (curate-then-promote design); these were
  force-added by explicit path so the options ship in the PR for review.
- The 52 master PNGs were palette-compressed (256-colour, alpha preserved) to
  clear the repo's 1000KB file guard. They are review-grade, not pixel-exact;
  the exact masters regenerate deterministically from the YAML prompt hashes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* tools(assets): verdict UX in the asset gallery + 52-image batch merge

Upgrades tools/assets/select_assets.py gallery generation to fold the
tabbed-review verdict UX (tools/art_review/build.py) into the winner-picking
asset gallery, so batch-649's 52 renders get the review flow Pip clears
hundreds with:

- K/M/R keyboard verdicts (keep/maybe/re-roll) on the focused cell, per-cell
  notes, status filter All/Pending/Keep/Maybe/Re-roll, hide-on-verdict (a
  decided cell leaves the Pending view), localStorage persistence, markdown
  export -- CSS/JS lifted from the tabbed viewer (dark cozy-grim palette).
- Winner-pick per asset group kept: star a variant (W / click), copyable
  per-manifest --select id:vN commands. Click an image to enlarge; Esc closes.
- Disk-based variant discovery replaces the size-[128..1024]-only path: now
  handles 768/1536 banners+CRT frames and the no-variant <id>_<size>.png
  CRT naming. Images referenced by RELATIVE path (portable), with an absolute
  file:// fallback only when output + images sit on different drives. HTML is
  written LF so it clears the mixed-line-ending hook.
- New --gallery-batch <status> scans art_prompts/*.yaml and merges every
  asset with images on disk into ONE gallery (tabs per sub-batch + All).
  Single --file --gallery mode kept and routed through the same builder.

Regenerated asset_gallery.html over the real batch: 52 cells across 4 tabs
(action_icons_missing 16, hero_banners 9, researcher_portraits_pilot 24,
crt_frame_overlay 3), all paths relative and resolving on disk. Force-added
past the art-artifact gitignore so it renders in the PR for review.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs(art): batch #649 verdict record + portrait variant-pool ruling

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* art: promote 8 stopgap action icons + stage CRT-dossier portrait set (#649)

Promote batch #649 gpt-image action icons (kills placeholder fallbacks):
team_building v1, network v2, acquire_startup v2, sabotage_competitor v1,
lobby_government v1 (stopgap -- re-roll queued), open_source_release v1,
take_loan v1, grant_proposal v2. icon_mapping.json repointed; new
test_icon_mapping.gd asserts all 8 resolve to real textures, not the
magenta placeholder. Fast gate: 540 tests, 0 fail.

Stage CRT-dossier v2 portrait set (5 archetypes, one coherent look) under
godot/assets/portraits/ -- staged-but-unwired, no UI slot yet. README
records the per-archetype variant-pool + random-assignment design.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* art: round-3 re-rolls per #649 verdicts (32 images, $2.10)

gpt-image-1.5 re-rolls implementing each verdict re-roll note:
- 8 action icons (2 variants, rendered OPAQUE to fix failing alpha edges)
- 10 portrait entries (5 subjects x 2 varied demographics) for the
  per-archetype variant pool; fresh-grad aged to graduated-undergrad, less
  cartoon/anime/ghibli, ethnicity/gender varied
- 3 banners (2 variants): title-hero (extra light + cat/comforts/poster),
  doom-rising (CONSERVATIVE in-palette only -- doom-colour spec owed),
  strategic-moves (chair separated/lit, shorter FOV/table)

Manifests: art_prompts/round3_rerolls.yaml (+_banners.yaml, split for landscape).
Review gallery rebuilt. NOTE: only the sub-1000KB downscales are committed (the
512/768 sizes the gallery shows); the 1024/1536 masters exceed the
check-added-large-files guard and stay on disk (regenerable from the manifests).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant