# A furniture catalogue loaded from the internet, placed in your room

> Pick a scanned piece of furniture from a live catalogue, see it at its true size, and place several in your own room. It was built in one run, and the request is here word for word.

Michal Takáč, 7 October 2026 · Product
Source: https://graspable.dev/blog/a-furniture-catalogue-loaded-from-the-internet

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

[Open the furniture catalogue](https://graspable.dev/a/oro7hk1z). From the same page you can continue from it in Graspable.

## What it shows

- It loads from the internet. Models, thumbnails and sizes come from a public catalogue when the app runs.
- Mixed reality. The pieces are placed in your own room.
- uikit. The panel with its tabs, filter chips and cards is built with it.
- Photoreal models. The furniture is scanned.

The picture at the top shows a photographed room with a leather lounge chair on a round stand. Beside it is the panel, titled Furniture catalogue, with the tabs Catalogue, My room and Device, the filter chips, and a grid of cards with thumbnails, names and sizes of sofas, tables and chairs.

## How it was made

The project started from the [Cross-platform XR template](https://graspable.dev/templates/crossplatform): one app for every headset, pair of glasses, phone and computer, with a product shown in your own room where the device has passthrough, and in a photographed room where it does not.

It took one run. The AI was Claude Code. A run ends only when the project builds and loads in a real browser without errors.

## The request, word for word

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

> 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".

## Notes and credits

Models, thumbnails and sizes are loaded at run time from Poly Haven's public catalogue (CC0).

The picture is a capture of the project running in Graspable's emulated headset.

## Make 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.

[Download Graspable](https://graspable.dev/download), and start from the [Cross-platform XR template](https://graspable.dev/templates/crossplatform). More examples are in [Made in Graspable](https://graspable.dev/made).
