Repository navigation
The room on a phone; the door's lock; the screen guard; Nash the cat; tyler-durden-bot's big board - #30
Merged
Conversation
The GitHub App that sums up a large pull request (piabrota/agents#6) gets a slate on the back wall, beside the people's board, which moves left to make room. It has no logo file: src/art.js draws its mark from config.wip (a bot's head split into a light half and a dark half, one eye open on each), its name and its line, and a strip of hazard tape that says "WORK IN PROGRESS". Hovering it says so; a click opens its pull request. The board shot is centred on both boards, and just record hovers the slate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0193yhp3nH1GuEhCcyaWrNf9
…-0cw3xa # Conflicts: # AGENTS.md # README.md # README.pt-BR.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0193yhp3nH1GuEhCcyaWrNf9
…; two skills for mobile 3D Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0193yhp3EES9jSDbLGFiqdC5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0193yhp3EES9jSDbLGFiqdC5
…link at night; Nash the black cat; the lock in the video; replay row 25 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0193yhp3EES9jSDbLGFiqdC5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0193yhp3EES9jSDbLGFiqdC5
h0ffmann
added a commit
to piabrota/nix-os
that referenced
this pull request
Nov 9, 2026
…door lock, tyler-durden-bot board, Nash) (#193) Move room-site/default.nix to the main of piabrota/room, commit 6e0f4f5, the merge of piabrota/room#30. package-lock.json did not change since 0125d43, so npmDepsHash stays. Claude-Session: https://claude.ai/code/session_0193yhp56sV4eomop851KRFA Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Hoffmann · project thread
What was asked
and, in the same thread: a puzzle behind the door; skills for mobile 3D; no screenshots (a black screen, like UFC) and text that cannot be selected, especially the puzzle's; Nash, a black cat who moves around naturally, over the things; a big board on the wall with tyler-durden-bot's icon, with hover, blinking at random with red lights, by night only. The eight prompts are replay row 25 in both READMEs.
What it does
The room on a phone (
src/quality.js). A touch-only screen, a short side of 600 CSS px or less, 2 GB or 2 cores or fewer, or the data saver gets thelitelook: pixel ratio 1.25 at most (it was 2), stepping down to 0.75 when frames run long; at most 30 frames a second; no ambient occlusion; 2× MSAA; 512 shadow maps with plain PCF; anisotropy 2; 150 motes of dust.?liteand?fullforce one, and?recordis alwaysfull. The adaptive quality insrc/post.jsnow steps from the look's own levels and budget.Less to download. The grid's 24 h of sea (
frames.bin, 0.9 MB) and its temperature now load only when the map opens; the chart on the wall needs only the mesh. The day photo of Rio loads only by day, and the night photo only by night.just mobile(scripts/mobile.mjs) measures a phone (390×844, ratio 3, touch, CPU 4× slower) and a laptop. In this container (software GPU, so compare the two lines with each other, not with a phone):Two skills:
.claude/skills/room-mobile(the two looks, the rules for a change, how to measure) and.claude/skills/room-phone-test(emulation here, and a real phone through Chrome or Safari remote debugging).The door's lock (
src/lock.js,config.door). A click on the door opens a keypad with four clues; each digit counts a list ofconfig.js(the tapes, the works on the shelf, the faces on the board, the bots), so the code stays true when a list changes. The right code swings the door open on a warm light and the lines ofdoor.beyond. A solved door stays open in that browser;?lockedlocks it again. A new hotspot action,door, insrc/app.js, the check and invariant 5's list.The screen guard (
src/guard.js,config.guard). No browser can block a screenshot of a canvas: UFC's black frame comes from DRM-protected video. So this is a deterrent: the page goes black for a moment on the PrintScreen key and the clipboard is emptied; it goes black while the tab is hidden or the window has lost focus (the Spotify iframe excepted); a printed page is blank; the lock's words, the labels and the buttons cannot be selected or copied, and the room has no context menu. Cmd+Shift+3/4/5 on macOS and a phone's screenshot never reach a page, so they still work. Off under?recordand in a scripted browser.Nash (
src/cat.js,config.cat). A black cat of a few shapes, eyes that glow at night. He sits on a perch for a while (looking about, tail swaying, lying down on the floor on a long rest), walks on the floor and jumps up and down, throughviaperches when one is too high: the rug, the chair, the desk, the monitor, the sill, the crate, the top of the shelf. Seeded, sojust recordfilms the same walk. A click calls him: he stops, looks at you and meows (a synthesized meow,fallback: 'meow'; there is no recording yet). He casts no shadow, because the shadow maps are drawn only when the room changes.tyler-durden-bot's big board. This branch merges #27, then moves its board from the small slate beside the people's board to a big board (1.15×1.3 m) on the front wall, beside the loop, under its sign. It shows the owner's pixel portrait (
public/textures/tyler-durden-bot.png, 1 kB, credited inCREDITS.mdas the owner's own), with a ring of 26 red bulbs in one draw call that blink at random by night (now and then all of them flash together) and are off by day. Hover and click are #27's. Merging this PR brings #27 in, so #27 can be closed.Proof
lite(Nash on the rug)Video, 52 s by night, navigating and clicking:
docs/record/room.mp4. On the front wall (about 0:38) it hovers the big board, turns to the door, clicks it, types the code on the keypad, and the door swings open.just blow-lightpasses: at most 0.21 % of a frame above 230 (limit 0.25 %).node scripts/check.mjsandnpx vite build(the two commands ofjust check) pass;justis not installed in this container.Not checked
room-phone-testskill says how to check one.Generated by Claude Code