fix(gallery): square-on stops, human-scale posters, museum inspect — live-pass tuning - #83
Conversation
The owner walked PR #82 on prod and reported dollhouse-sized posters, oblique cases that never focus, and half-clipped frames. Two coupled root causes: 1. STOP_LEAD (2.4) was uncoupled from CASE_FACE_BIAS: the turned eye stood far down-corridor and viewed every case obliquely ("does not focus / half the poster"). STOP_LEAD is now derived — (WALL_X + DRIFT_X)·tan(bias) — so the eye stands exactly on the case's normal line and the 90° turn lands perpendicular, square-on. DRIFT_X moved to galleryLayout (re-exported from walkTurn) so the layout can derive the lead without importing the camera module. 2. Scale: CASE_H 0.93 → 2.8 (~1.6× an adult, the owner's ask), CASE_W 1:1.5, CASE_Y 1.7 (bottom hangs 0.3 above the floor), EYE_Y kept at human 1.42. Corridor rescaled coherently: WALL_X 2.9, DRIFT_X 1.45, CASE_SPACING 3.8 (≈1.35×CASE_H), room leads/tails/arch, wall height 5.4, fog/clip, glow/frame/label sizes, inspect distance and scale. A WALL_STANDOFF (0.35) stands the side walls behind the case so the now-wide poster's bias-yawed far edge no longer clips through the wall (the occluded-right-half bug). Bias bumped 0.22 → 0.30 for a readable three-quarter face while walking past; the derived stop guarantees the frontal moment. At a stop the poster now fills ~80% of frame height, dead-centered and frontal. Smoke harness: seed the converged camera pose and add a deterministic pump()/snapshot() so the throttled-rAF headless screenshots are faithful; phase 3 now asserts square-on (equal edge heights, centered) from projected poster corners. galleryLayout length-bounds test updated for the new spacing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The owner saw a bright TMDB backdrop still filling the inspect screen. The backdrop plane sat above the dim quad in render order and animated to 0.9 opacity, so the world-dim never touched it — a movie-still wash. Cap the backdrop material at 0.15 opacity (was 0.9) and darken its offscreen bake harder (brightness 0.28, blur 18px). The dimQuad's darkness now dominates and inspect reads as art on a dark museum wall, while the inspected poster (renderOrder 95) still draws bright over it — the Task-2 transparent-list luminance guard keeps passing (max 0.778). Verified with a deliberately bright injected backdrop: it stays a faint warm tint, not a wash. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughGallery dimensions and camera pacing are retuned to human-scale values. Room geometry, lighting, inspect presentation, and backdrop rendering are adjusted accordingly. Smoke tooling now supports deterministic stepping, WebGL snapshots, projected poster corners, and square-on turn validation. ChangesGallery tuning and validation
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Fixes the three defects from the owner's production walk-through of the Curator's Walk (PR #82).
Owner findings → fixes
STOP_LEADwas a flat 2.4 left over from the pre-turn design, so the "turned" camera stood 2.4m up-corridor and viewed every case obliquely. It is now a derived constant —(WALL_X + DRIFT_X) · tan(CASE_FACE_BIAS)— which places the turned eye exactly on the case's normal line: zero-foreshortening, square-on (smoke-measured edge skew 0px). Changing the bias or drift later keeps frontal-ness automatically.WALL_STANDOFF = 0.35behind the cases.CASE_H0.93 → 2.8 (1.6× a 1.75m adult), with the hall rebuilt around it —WALL_X2.9,CASE_SPACING3.8, drift 1.45, room lead/tail, wall height, fog, camera far, glow/frame/label sizes, inspect distance. At a stop the poster fills ~79% of frame height.Guards added
pump()/snapshot()) so throttled-rAF headless screenshots can't lie.Verification
npx vitest run: 770/770npx tsc --noEmit: only the 8 pre-existing errors (byte-identical set on main)npm run smoke:gallery: 6/6 phases, exit 0npm run build: gallery stays a separate lazy chunkDisclosures
CASE_FACE_BIAS,TIER_ANCHOR_SCALE, or frame-strip size requires a standoff re-check.🤖 Generated with Claude Code
Summary by CodeRabbit