Skip to content

Move subjects out from behind text and steer creatures with a text map - #11

Merged
vaprdev merged 4 commits into
mainfrom
composition
Oct 10, 2026
Merged

vaprdev merged 4 commits into
mainfrom
composition

Conversation

@vaprdev

@vaprdev vaprdev commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Summary

Barns, volcanoes and resting creatures sat in the middle of the screen, right behind OpenCode's logo and prompt. Focal points now sit toward the edges, top and bottom, and the engine tells scenes where text actually is so creatures avoid it.

sequenceDiagram
    participant Engine
    participant Scene
    Engine->>Scene: textMap({cols, rows, cover}) on start, then ~1/s
    Scene->>Scene: openSpot(x0, x1, y0, y1) least-covered stop for a creature or visitor
    Scene->>Scene: openRow(y0, y1) height for something crossing the screen
Loading

Positions are measured in screen heights from the nearest edge so they hold on wide and narrow terminals. The octopus, ice fisher and penguins keep clear of the prompt. dev/preview.ts gains home and session layouts and a size argument; documented in CONTRIBUTING.

Evidence

Before (main) on the left, after on the right.

composition

Terminal sizes
sizes

Verification: bun run typecheck passes; CI's check job runs dev/check.ts on this branch.

Merge Danger

Door: two-way

Blast Radius: layout

Every wallpaper's composition moves; Scene.textMap is optional, so existing scenes keep working.

Merged together with the other visual improvements in #1; this PR's CI screenshot check fails by design because screenshots are regenerated there.

@vaprdev
vaprdev merged commit 48ce798 into main Oct 10, 2026
1 of 2 checks passed
@vaprdev
vaprdev deleted the composition branch October 10, 2026 16:42
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