Skip to content

Provisional Strata location stills, one per place (RFC 0025) - #235

Merged
dmccoystephenson merged 1 commit into
mainfrom
feat/strata-location-stills
Oct 24, 2026
Merged

dmccoystephenson merged 1 commit into
mainfrom
feat/strata-location-stills

Conversation

@dmccoystephenson

Copy link
Copy Markdown
Member

Each of FishE's five places now has one picture above its menu, following RFC 0025 the way Tidewater's stills do. The pictures are rendered offline with Strata 0.6.0's strata-golden.

contact sheet

One village. FishE is set in the same fishing village as Tidewater, so its scenes and generated village are reused here. art/_village.scene is byte-identical to Tidewater's, and the docks and bank stills render pixel-for-pixel the same. FishE's own props were added: the shop's rack of fishing poles ("his collection of fishing poles") and its bait tub, the tavern's dice, and the pole being polished at home.

Provisional setting. The setting is Tidewater's: 54.5° N, 0.6° W, UTC+1, 2023-09-21. It is marked "provisional": true in art/stills.json, with the reasoning for each choice. Nothing in FishE's text contradicts it. The one oddity, money written in dollars, is flagged in the manifest for the author to weigh. Every place in FishE is open at all hours, so each hour follows the game's own rhythm:

  • docks 08:00 (the day starts there, in the last hour of the dawn bite)
  • shop 10:00 and bank 11:00
  • home 13:00 (the midday sun keeps the fish deep)
  • tavern 20:00 (a night's drinking ends the day)

Front-ends:

  • tak is pinned at 9749869 (tak#48), which adds setPicture(key, alt). This gives the console (which shows no picture), the server-backed web front-end (GET /picture/<key>) and Pyodide (bytes sent once per key) the picture with no FishE code. Since tak#44 the console prints the header chips on one line, so three console header tests now look for chip text instead of a line count.
  • pygame draws the picture in a band above the menu, scaled without stretching. A missing file just leaves the menu as text.
  • src/stills/stills.py sets the picture before each place's menu. While the player is homeless ("You have nowhere to stay tonight") home shows no picture, because there is no room to draw yet.

Bundle and Docker:

  • web/build_zip.py bundles pictures/ and art/stills.json, but not the scene files.
  • The Dockerfile copies both. tests/test_dockerfile.py checks that every bundled path has a COPY line.
  • A new CI docker job builds the image and checks that its game.zip carries all five stills.

Size. The stills are 184,361 bytes against the 524,288-byte budget, at 640×360, lossless.

Tests:

  • tests/stills/test_stills.py: manifest, budget, the render script's sun refusal, and the game loop showing each place's still
  • tests/ui/test_pictures.py: web, Pyodide and pygame
  • Full suite: 1054 passed locally

Screenshots from a local web/serve.py: desktop · iPhone 13 · pygame

drafted by Claude on behalf of Daniel Stephenson

🤖 Generated with Claude Code

https://claude.ai/code/session_01S6kaEL7kt5Fverjb6didBH

Each of the five places (docks, shop, home, bank, tavern) gets one
picture above its menu, rendered offline with Strata 0.6.0's
strata-golden from a scene file in art/ and shipped in pictures/ inside
game.zip. FishE shares Tidewater's fishing village, so the scenes and
the generated village are Tidewater's, with FishE's own props added
(the shop's rack of poles and bait tub, the tavern's dice, the pole
being polished at home), and the provisional setting is Tidewater's
(54.5 N, 0.6 W, UTC+1, 2023-09-21), recorded as provisional in
art/stills.json with the reasoning for each hour.

- tak pinned at 9749869 for setPicture(key, alt); the console header
  tests now look for chips, which tak prints on one line since #44
- src/stills: load the manifest, set the picture before each place's
  menu; home shows none while the player is homeless
- pygame draws the picture in a band above the menu, scaled, optional
- web/build_zip.py bundles pictures/ and art/stills.json; the
  Dockerfile copies both, a test checks every bundled path has a COPY
  line, and a CI docker job checks the image's bundle has the stills
- art/render.py places the sun from the manifest and refuses a still
  without one; README section, contact sheet and screenshots

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S6kaEL7kt5Fverjb6didBH
@dmccoystephenson
dmccoystephenson merged commit b3c4903 into main Oct 24, 2026
2 checks passed
@dmccoystephenson
dmccoystephenson deleted the feat/strata-location-stills branch October 24, 2026 20:54
dmccoystephenson added a commit to Preponderous-Software/preponderous-dot-org that referenced this pull request Oct 24, 2026
…153)

FishE now shows a Strata-rendered picture of each place above its menu
(Stephenson-Software/FishE#235). Its details on the home grid get a
preview: the five stills rendered from FishE's own scene files by
strata-golden at 960x600, crossfaded into a 9.5 s loop and encoded at
640x400, credited with madeWith and linked to the game on /play.


Claude-Session: https://claude.ai/code/session_01S6kaEL7kt5Fverjb6didBH

Co-authored-by: Claude Opus 5.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