A furniture catalogue from the internet, in your room

The catalogue is loaded live: pick a scanned piece from the list, see it at its true size, and place several in your own room.

A photographed room with a leather lounge chair on a round stand and a dark panel titled Furniture catalogue: tabs Catalogue, My room and Device, filter chips, and a grid of cards with thumbnails, names and sizes of sofas, tables and chairs loaded from Poly Haven
A capture of the project running in Graspable's emulated headset. A photographed room with a leather lounge chair on a round stand and a dark panel titled Furniture catalogue: tabs Catalogue, My room and Device, filter chips, and a grid of cards with thumbnails, names and sizes of sofas, tables and chairs loaded from Poly Haven.

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.

Turn this into a furniture catalogue that people place in their own room, the kind of app a furniture retailer would commission. The catalogue is not in the app: it is loaded from the internet when the app starts. The source is Poly Haven's public catalogue of scanned, photoreal models (public domain, CC0, open to browsers): - the list: https://api.polyhaven.com/assets?t=models&c=furniture gives every furniture model with its name, categories, real dimensions in millimetres and polycount; - one model's files: https://api.polyhaven.com/files/<id> ; use the glTF at 1k (gltf → 1k → gltf: its url, and the files under include, which the glTF refers to by relative path, so loading the url is enough); - thumbnails: https://cdn.polyhaven.com/asset_img/thumbs/<id>.png?width=256 Keep only models under 60,000 polygons and no larger than 2.5 m in any direction, and show the 24 most downloaded. The panel has two tabs. Catalogue: a scrolling grid of cards, each with the thumbnail, the name and the real size in centimetres (width x depth x height). A row of filter chips above it: All, Seating, Tables, Storage, Lighting (from the categories). Choosing a card loads that model from the internet (show a progress state on the card, and "Could not load" if it fails) and puts it on the stand, replacing what was there. My room: the pieces I have placed, each with its name and size and a remove button, the number of pieces, and the floor area they take together in square metres. "Place in my room" places the current piece where I point, on the real floor in AR, at its real size, and it stays there; I can place several pieces, drag any of them later, and turn the selected one with the slider. In VR and on a flat screen they are placed on the floor of the photographed room. Every model must appear at its true size: check the loaded model's bounding box against the catalogue's dimensions and correct the scale when a file is not in metres (some are ten times too large). Stand each piece on its base. While the list is loading show skeleton cards; with no connection show "No connection" and the lounge chair that ships with the app, so the app is never empty. Nothing may throw when the network is away. Keep the Device tab as it is. Title of the panel: "Furniture catalogue".

How it went

Runs
One run: the request above, and it was done. A run ends only when the project builds and loads in a real browser without errors.
Started from
The Cross-platform XR template: One app for every headset, pair of glasses, phone and computer: a product shown in your own room where the device has passthrough, in a photographed room where it does not.
Notes and credits
Models, thumbnails and sizes are loaded at run time from Poly Haven's public catalogue (CC0). AI: Claude Code.

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