Inspiration

Murder mysteries on a phone or a laptop keep the crime scene behind a small window. We wanted the scene to be the room you are standing in: the clues sit at real places around you, finding them means turning, looking down and looking up, and at the end the clues you walked around to collect connect into one answer, inside your own room.

What it does

Case in Your Room is a one-player murder mystery for SPECS that takes 2 to 3 minutes.

  • Opening board. The title, the case and how to play ("aim at a glowing object with the ray from your hand and pinch") wait straight ahead until you press Start. Nothing is on a timer.
  • Clues around you. The 5 clues light up one at a time with a soft chime. A counter (0 / 5) sits just below your line of sight with two arrows: one for left/right (a ring when the clue is behind you) and one for up/down, both leading to the nearest clue you have not found.
  • Inspecting. Pinch a clue and its name, description and buttons open in the middle of your view, 50 cm away. The clue itself stays where it lies. "Flip" turns it over in place and shows what is written on the back (the memo says "10:40"; the torn photo says "...ra, my only heir").
  • The clues: a stopped clock on the wall ahead, a memo on a desk, footprints on the floor (look down), a broken glass on a chair, a torn photo above your head (look up).
  • The suspects. When all 5 are found, 3 suspects appear straight ahead of wherever you are facing. Pinch one to see their alibi and an "Accuse this person" button.
  • Wrong answer: the glowing thread breaks just before the person and "That doesn't match the clues" appears. You choose again.
  • Right answer: the clues glow, float up and gather in front of you, and glowing threads join them to the culprit. Then the culprit's translucent figure walks the night's path through your room, leaving glowing footprints, with a caption at each clue. The same walk plays on a small model of your room in front of you, so you can see all of it without turning. The one-sentence truth ends the game.

The case is newly written. It uses no real people, companies or trademarks.

How we built it

Planning. We planned with the Devpost Learn skill pack: the plan-lens interview checked the idea against AR design habits and against what the preview can show, and wrote our design brief, devpost/design-brief.md: the one spatial moment, why it belongs on glasses, where every object lives (distance, height, size), hands and input, timing, the case, and 5 done criteria.

Building with CLAD. Claude Code with the CLAD plugin read the brief and built the Lens in Lens Studio 5.24.1 through the Lens Studio MCP: 18 TypeScript components (for example the game flow, the clues, the head-locked counter and arrows, the inspect panel, the suspects, the replay and the room model), the clue chimes generated locally with CLAD's sound-effect synthesis (no samples), and the arrow icons imported from Google Material Symbols with the Lens Studio MCP's IconSelector tool. The agent recompiled and read the Lens logs through the MCP after each change, and looked at the preview with MCP panel captures.

Testing with LEAF. Every done criterion in the brief has a LEAF test (criterion_1 to criterion_5). 12 more tests run the whole game end to end, check the setup, and measure what the player sees and can reach: the clue group fits the view and faces the player, rays from the eye and the hand reach each button first, the arrows point the right way as the head turns all the way round and tilts, nothing solid hides a description, the suspect line-up fits the view and appears where you face, the replay model matches the real room in every frame, and a LEAF IK body can press the buttons with the hand's ray. The agent ran them through the MCP after every change; all 17 pass on the build in the repository.

Playtesting. The learner played seven rounds in Lens Studio's Interactive Preview. The first six ended in design notes in plain words; each note became a change and a test, and the brief's "Changes during the build" section records each one: what the brief said, what was built, the playtest quote, and the test that checks it. The seventh round found nothing left to fix.

The demo video is a screen recording of the preview. Start is pressed by hand; after that a LEAF scenario (Assets/Tests/DemoPlaythroughScenario.ts) turns the head and pinches like a player.

Design ideas we used

  • One spatial moment, done well: the clues you walked to collect connect into one answer, in your own room.
  • The view is narrow, so bring reading and watching to the middle. In the preview the view is about 32 degrees across. Descriptions, the suspect line-up and the replay model all open in the middle of the view and fit within 85% of it.
  • Keep searching in the room. Clues never fly to your hands; you look down for the footprints and up for the photo.
  • Cues that can't be misread. Separate arrows for left/right and up/down, and a ring for "behind you", after a playtester could not tell "behind" from "below" with one arrow.
  • Nothing in the way. A description that would be hidden by furniture comes in front of it, scaled so it looks the same.
  • You can't zoom out on glasses. The playtester asked to see the whole replay at once, so the room comes to the front as a model instead.

Challenges we ran into

  • Nothing was in view at Start. The front clues sat below the preview's field of view, so the room seemed empty. We moved one clue, the stopped clock, to the wall straight ahead and let the arrows lead to the rest.
  • Small targets close together. The suspects' pinch targets and the inspect buttons were measured with rays and the IK hand, then narrowed and spaced so one pinch never hits two things.
  • Recording the demo. In our first scripted takes, descriptions opened outside the view: the Lens read the preview's own head when a clue was pinched, while the script held the camera somewhere else. The demo scenario now poses the head by itself after Start, and it checks that every description is in view.

Accomplishments that we're proud of

All 5 done criteria pass as LEAF tests, together with 12 more (an end-to-end run, a smoke test and 10 checks of layout and reach from the player's eyes and hands), on the build in the repository. The whole game, start to truth, fits in a 1:55 video.

What we learned

Designing for glasses is designing for a small, moving view: what you read or watch belongs in the middle of it, and what you search for belongs in the room. Writing tests as measurements of what the player sees caught layout problems that code review would not. We also learned to label what we know: the logic is proven in the preview; the feel on real glasses (comfort, hand tracking, reaching the buttons with a finger) is not yet.

What's next for Case in Your Room

Try it on SPECS: check finger reach to Flip and Close, place the clues on the real desk and floor with surface detection, and write more cases.

Pre-existing work and third-party code

Everything above was built during the submission period (October 22 to 23, 2026), starting from Lens Studio's SPECS template. The project includes Snap's Spectacles Interaction Kit, Spectacles UI Kit, LEAF and Bitmoji 3D packages, the AI Preview Agent packages by Specs Inc. (MIT, added by the Lens Studio MCP tools), Google Material Symbols (Apache 2.0) and Devpost's plan-lens skill (MIT). See THIRD_PARTY_NOTICES.md. Built with the help of AI tools (Claude Code and CLAD); every text was checked by a person.

Built With

  • clad
  • claude-code
  • leaf
  • lens-studio
  • lens-studio-mcp
  • specs
  • spectacles-interaction-kit
  • typescript
Share this project:

Updates

Submission history