Skip to content

Add The Orrery: a celestial clockwork rollercoaster room - #49

Open
nickfromlater wants to merge 11 commits into
mainfrom
codex/orrery-rollercoaster-room
Open

nickfromlater wants to merge 11 commits into
mainfrom
codex/orrery-rollercoaster-room

Conversation

@nickfromlater

@nickfromlater nickfromlater commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner

The Orrery · Comet

Open the room preview

A native Whistlevale room at east-6, built from nickfromlater's rollercoaster brief. Five open Comet cars climb a chain lift, plunge down the Stardrop, invert through twin lunar trusses, orbit a ringed planet and return beneath the departure line. The visitor boards at Platform Zero, explicitly dispatches, completes a circuit and returns for replay or exit. The moving front seat banks and inverts; a steady overlook is the reduced-motion default.

Third pass: scenic density and miniature storytelling

Latest reviewed head: ccddd87bb39e3bfe61d0972f0a21e2842b6f36f9.

The new scenery is in 61f403a43342b907df1cd47dc9055d22226c4284; the latest commit applies refinements found by inspecting actual rendered views. This continues the existing room and PR.

A richer station and queue

  • Coral-and-cream facade, gold pilasters and inset star panels.
  • Ribbed striped canopy, finials and an octagonal clock cupola with a patinated copper-colored dome.
  • Tiled switchback queue, admission arch and a connected approach to the existing western stair.
  • Operator's gauge desk, departure placard, ticket punch and ticket stacks, luggage, lanterns and planted borders.
  • Existing five working gates, restraints, dwell, explicit dispatch, complete circuit, arrival and replay are preserved.

The first rendered pass exposed an oversized COMET nameboard and a station camera that cropped the queue. The final revision reduces the board, widens and raises the station composition, and brings benches, railings, the ticket counter and dispatch desk down to visitor scale. New projection assertions and dedicated 390px/320px station captures cover the admission approach, station court and cupola.

New route set pieces and destinations

  • Stardust Gallery: an elevated, open-ended passage with 13 brass ribs, partially paneled roof, luminous stars and star portals at both ends. Its piers splay away from the lower return line where necessary.
  • Lunar Court: a pearl-stone basin with still blue-green enamel water under the inversion, benches, lanterns, topiary and a separate LUNA gate on the approach.
  • Moonwatch: an octagonal observatory with recessed windows, a domed roof, a real open telescope slit, a raised balcony, approach steps and a rear garden promenade.
  • Nine authored viewpoints, retaining the order of the original seven and adding dedicated Stardust Gallery and Moonwatch views.

Close-up discoveries and mechanical life

Eight fixed visitor vignettes replace the evenly spaced onlooker row: queue, ticket desk, lunar court, promenade, Moonwatch, lookout, gardener and station. The scenic population stays 28, with different poses, scales and groupings rather than simply adding more figures.

Topiary, flower beds, wooden benches, lanterns, signs, a sundial, celestial instrument, telescope crate and gardener's cart give the paths destinations. The collector's room gains pilasters, relief star charts and instrument shelves.

A rotating garden armillary and a dispatch semaphore join the existing clockwork. All 12 mechanisms use the existing cached movingParts lifecycle. Reduced motion parks ornaments; operational gates and the semaphore still change state immediately. No extra scheduler or per-frame geometry upload.

Geometry discipline and clearance

No existing ceiling was raised. The detail is paid for by adaptive longitudinal rail tessellation, stamped rectangular cross ties, omission of buried brace end caps and small luminous diamond wall stars instead of mostly hidden spheres. The original eight-sided rail cross-section, route, cars, timing, material boundaries and all 172 accepted structural supports remain.

Geometry Measured Unchanged ceiling
Static room 540,609 vertices 550,000
Shell walls 44,472 65,000
All mechanisms 14,994 16,000
Original orbiting moon 2,016 4,000
Complete Comet stock 10,932 15,000

Adaptive rails use 734 segments. Sampling at 19 interior points per segment measures a maximum cross-section chord deviation of 0.007475 scene units, below the 0.008 regression limit. Vehicle motion uses the unchanged original route, not the reduced render tessellation.

New scenic and visitor triangles also pass an independent triangle/oriented-box separating-axis test at 1,851 route poses, with 764,680 candidate checks and zero occupied-envelope conflicts. This caught and led to corrections in the tunnel supports and Moon Gate. These are sampled geometric regressions, not real-world ride-engineering certification.

Verified evidence on the latest head

Exact local and pushed tree: e32d5330b90872036ca6aecdae6d5644be425ca5.

  • PASS: full npm test on Node 24, including source/asset checks, focused route/ride/scenery tests and the production build: standard CI.
  • PASS: native browser and actual offline export reopening on this head. All 22 rendered compositions were inspected, including desktop day/evening, the revised station, Moonwatch, Stardust Gallery, the actual front-seat star passage, inversion, boarding/arrival, 390px/320px station/overview/seat controls, reduced motion and the live map. The browser report has no uncaught errors, and every capture passed gl.getError() === 0.
  • Latest native review and evidence, artifact orrery-native-views, ID 10906644544. Includes UI screenshots, raw renderer canvases, the exact exported HTML, browser-report.json and focused-check output. Artifact SHA-256: b950896357a8578ef0861e720f653ef5e33d5a598d7d39529407aa615fe3e9e8.
  • The browser harness traverses a complete native-simulation circuit, clamps arrival, replays, verifies the inverted camera, exercises keyboard/focus restoration and synthetic pinch/cancel, switches viewpoints/rooms, opens the live map and separately resumes the native animation loop.
  • Actual standalone export: the harness downloads the real HTML, opens that exact file offline in a fresh browser context, and verifies one control set, a fresh trip, dispatch, train advancement and all 12 mechanisms. Source inclusion alone is not used as playback evidence.
  • PASS locally on the final head: full regression, contribution report and npm run test:geometry:full. The full comparison covers 525 meshes, 12,759,705 vertices and 153,116,460 Float32 attributes, bitwise identical to the reference Builder. This verifies builder equivalence, not equality to the old artwork.
  • The longer latest review workflow's duplicate full-regression/extended-geometry stage is still running after its successful browser stage. The complete preceding feature-head review, including extended geometry, is already green. The latest head's standard CI and browser/export checks above have passed independently.

Local tests used Node 22; CI uses Node 24. Native screenshots were captured in Chromium/SwiftShader with the actual renderer, holding animation for stills and separately exercising native motion. Neither geometry counts nor stills establish phone frame rate.

Integration, credit and remaining acceptance

This pass changes the existing room module, focused/browser tests, the focused test command and room notes. Shared renderer, simulation, map, ride controls and startup tags are not changed by the third pass. No external models, image assets, recordings, app dependencies, font binaries or alternative renderer. Playwright remains external and review-only.

Original concept, miniature and public credit: nickfromlater, with agent assistance, under the existing MIT license. Earlier credits remain unchanged.

Original base: 21bca3bbe5ea509596619053b76eb7c4bc6fe6e5; this pass starts from 0c816fa09bf81a7a03eb3b173c21d60fc1d37e17. No prerequisite PR. Per coordination with #48, Orrery remains east-6 and Venice uses east-7; preserve both rooms' startup tags and npm test entries on eventual integration.

Physical iPhone gestures, frame pacing and long-duration thermal behavior remain unverified. Desktop viewport tests are not physical-device evidence.

Implementation notes: docs/rooms/orrery.md. Local evidence stays ignored in evidence/orrery-pass3/. Workflow artifacts: orrery-native-views, orrery-native-checks and orrery-review-source.

Combined certification, October 7, 2026: current main plus #48 5d78b099… and #49 ccddd87… passed full regression, contribution and full geometry checks, both existing browser/offline-export suites, and an additional cross-room/map simulation check in the served app and both real downloaded exports. Runtime tree: a46805c1630248b1319a159fdc526a1df0a1e35a. Exact source, logs and evidence. No product fix was needed; both PR source branches and main are unchanged. Physical-iPhone behavior and artistic acceptance remain unverified; neither PR is merged.

Updated for maintainer review. Not merged.

@vercel

vercel Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
endless-railroad Ready Ready Preview Sep 26, 2026 1:26pm UTC

Request Review

Copy link
Copy Markdown
Owner Author

Integration coordination with #48 (Venetian Salon): both parallel branches initially selected east-6. I am moving Venice in #48 to east-7, including its focused check and documentation, and rerunning its live-map check. The Orrery can keep east-6; please do not move it to east-7. The scene implementations remain independent. On eventual integration, preserve both branches' startup tags, npm test entries and simulation hooks in src/hobby.js / src/shop-map.js rather than choosing one side of those small shared-file conflicts. No merge is being performed.

Copy link
Copy Markdown
Owner Author

Final handoff for 85b6848:

  • Full npm test CI: PASS on Node 24, including the new focused checks and production build: https://github.com/nickfromlater/whistlevale/actions/runs/36211536324
  • Native browser review: PASS on this head. All 13 screenshots were inspected after the visual fixes. Desktop day/evening, loop, station, actual inverted front seat, 320px/390px overview and controls, reduced motion, room switching and live map are covered, with no browser/WebGL errors.
  • Actual screenshots and JSON: orrery-native-views in https://github.com/nickfromlater/whistlevale/actions/runs/36211536302 . That longer workflow's repeated full regression/extended geometry stage is still running. The complete extended geometry run already passed on the preceding implementation head in run 36211157871.
  • Marked ready for maintainer review, not merged. Physical iPhone performance/gestures and opening a downloaded standalone export are still explicitly unverified.

Confirmed the coordination note with #48: Orrery stays east-6; no move to east-7. This PR only adds its startup tags/test entry and room-scoped modules, so preserve both rooms' registrations when integrating the parallel PRs.

Preview: https://endless-railroad-git-codex-orrery-8b676e-nick-paolinos-projects.vercel.app/?room=orrery

…Moonwatch pavilion and inhabited station court

Copy link
Copy Markdown
Owner Author

Combined integration certification completed on October 7, 2026.

Exact evidence, logs, browser reports, screenshots and reproduction instructions

Temporary branch: codex/integration-48-49-20261007. Runtime commit 8ccdaaec5f8ffd3894e52bd2729e47f85166a7b1, exact tested tree a46805c1630248b1319a159fdc526a1df0a1e35a.

Inputs:

Only index.html and package.json conflicted. The resolution preserves both rooms' complete startup/export tags and npm test entries. Shared renderer, hobby and map changes remain intact. Actual derived map positions are Venice east-7 / Orrery east-6. No product integration defect was found and neither PR source branch needed a fix.

PASS on the combined tree:

  • Full npm test, Node 24.19.0, including both room suites and the 140-file production build.
  • npm run test:geometry:full: 560 meshes / 13,367,340 vertices / 160,408,080 Float32 attributes, bitwise reference-Builder equivalence.
  • Measured contribution report.
  • Both existing Chromium/SwiftShader browser suites, unchanged, plus Venice's experience suite: desktop, 390px/320px, simulation, reduced motion, cinema/ride input, live map, reflection/state cleanup and actual downloaded standalone playback.
  • Additional combined check in the served app and each of the two real offline exports: switch Venice → Orrery → Venice; both trains and gondolas advance on the map; global pause freezes all three; ride state and reflection targets clean up/recreate correctly. No uncaught or final WebGL errors.

The first regression attempt hit the existing Moonlight VM timeout while extended geometry ran concurrently; the complete sequential rerun passed on identical source without changing timeouts. The new combined harness also corrected a held-animation timing assumption before its successful run. Both initial failures are retained in the evidence.

This certifies the stated combined checks only. Physical-iPhone gestures, performance, thermal/low-memory behavior and final artistic acceptance remain unverified. #48 stays draft; neither PR was merged.

This branch was successfully deployed

1 active deployment
Preview — ccddd87b Deployed Sep 26, 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