A tape measure in a real room

Point at any surface, pull the trigger, and read the distance on a steel tape.

A capture of the project running in Graspable's emulated headset. A scanned seating corner seen from the headset: a steel tape case in the right hand, yellow tapes running across the rug and up to a wooden dresser, with plates reading 128.4 cm, 181.2 cm and a total of 309.7 cm.

Open the appContinue from it in GraspableRuns in a browser, on a Quest or a Vision Pro.

The request, word for word

This is the text that was sent to the agent to start the project. Nothing was edited for this page.

Build a measuring app inside a captured real room. The room is public/room.glb: a textured 3D scan of a real seating area (about 500,000 triangles, one 8K photo texture, real scale in metres, y up, floor at y = 0, the origin is on the rug). The texture already holds the room's real light, so show the room unlit, exactly as captured, and start me standing on the rug at the origin, facing the dresser (-z). It must work in VR in the emulated headset (an Enter VR button) and on the desktop with the mouse, where I look around by dragging. Measuring: I point with the right controller (on the desktop, with the mouse). A reticle lies flat on whatever surface of the room I point at - floor, walls, furniture - turned to that surface. The trigger (or a click) places a point. Consecutive points form segments; every segment has a floating label with its length in centimetres, and one more label shows the total. The B button (Backspace on the desktop) undoes the last point. The tool must look physically real, not like debug lines. Every segment is a steel measuring tape: a thin, slightly curved yellow blade with printed black tick marks every centimetre and numbers every 10 cm, metal end hooks at both ends, and a small brushed-steel pin at every placed point. In my right hand, instead of the default controller ray, show a steel tape case, and the live tape pulls out of it towards the reticle. Use PBR materials (metalness and roughness, textures drawn in code), reflections taken from the room itself, lights that match the room's ceiling lamps, and soft contact shadows under the tape and the pins on the room's surfaces. Labels are crisp plates (dark plate, light text, drawn to a canvas texture, no fonts from the network) that face me and stay readable from 3 metres. Nothing may be downloaded while the app runs. Keep 72 fps or more in the headset: pointing must not get slow on a mesh this size.

How it went

Runs
3 runs: the request above, then 2 follow-up requests. A run ends only when the project builds and loads in a real browser without errors.
Started from
The React XR template: An empty WebXR scene with React Three Fiber: the starting point for anything.
Notes and credits
Room capture from the Eyeful Tower dataset. Copyright (c) Meta Platforms, Inc. and affiliates. MIT License. Two follow-up requests made the labels larger and the tape clearer. AI: Codex CLI.

Build your own

Graspable is a desktop app. Describe the scene you want, and the agent builds it as a real project on your computer and checks that it runs. It is free with your own AI account.

Download GraspableYour first project

More examples

See all examples