Skip to content

Generative pools: varied shapes, sizes, bridges, piers, trampolines - #75

Merged
pablostanley merged 4 commits into
mainfrom
codex/generative-pools
Sep 28, 2026
Merged

pablostanley merged 4 commits into
mainfrom
codex/generative-pools

Conversation

@pablostanley

Copy link
Copy Markdown
Owner

Pools were always the same 16x25m lane rectangle. Generation-2 poolrooms now roll a seeded basin.

  • Shapes: rectangle, Grecian (chamfered), Roman end, oval, true-L, lazy-L, kidney, freeform lagoon. Mirrored randomly.
  • Sizes: small plunge pools (~7-11m), ordinary ones, and a few that nearly fill the hall. Aspect varies; at least 5m of dry deck to every wall.
  • Bridges (~30%): a plain walkway at coping height with half-step landings and square supports. About 45% of them are piers that stop over open water, for jumping in.
  • Trampolines (~35%): on the deck beside the water. Landing bounces you about 1.6m; a timed jump goes much higher.
  • Coping, deck, pool floor and water follow the outline. Rapier gets one convex slab per coping segment plus dry-deck floor inside the bounding box, so L notches and kidney waists are solid ground. Footsteps only splash over open water. Rectangles 12m+ wide keep lane marks.

Unchanged: v1 tapes (goldens pass), the opening pool at 0,0, and colonnades keep the classic basin. Water stays at POOL_WATER_Y, so #72's reflector and drips work as-is.

Dev: ?visit=poolroom&pool=kidney (or bridge, pier, trampoline, any shape name) jumps to a matching pool.

Tests: tests/pool-shapes.test.ts covers variety and determinism, room margins, bridge and pier landings, trampolines staying dry, water clipped to the outline, and every batch merging. Real Rapier walks cross a full bridge at coping height, bounce on a trampoline, and stand in an L notch. 253/253 pass; typecheck, lint and shader checks are clean. Section build time matches the classic pool (~45ms median).

Browser: checked shaped pools, a bridge, a pier and a trampoline in the dev build. One known quirk: loading straight into a shaped poolroom via ?visit= can leave the start-screen frame blank until you press record. Normal tapes start at the classic origin pool.

🤖 Generated with Claude Code

pablostanley and others added 3 commits September 27, 2026 18:58
Generation-2 poolrooms now draw a seeded basin: rectangle, Grecian,
Roman end, oval, true-L, lazy-L, kidney, or freeform lagoon, from small
plunge pools to hall-filling ones. Some get a footbridge or a pier that
stops over open water, and some get a deck trampoline that bounces the
player (a timed jump goes much higher). Coping, deck, and water follow
the outline; Rapier gets per-segment convex coping and dry-deck floors
inside the bounding box. Legacy v1 tapes, the opening pool, and
colonnades keep the classic 16x25m basin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
vackrooms Ready Ready Preview Sep 28, 2026 2:14am UTC

Request Review

@pablostanley
pablostanley merged commit 568afc4 into main Sep 28, 2026
3 of 5 checks passed

This branch was successfully deployed

1 active deployment
Preview – vackrooms — 88ef5645 Deployed Sep 28, 2026 by vercel[bot]
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