@wallsnap/scenes
The wallsnap scene library: 19 room scenes with real-world wall geometry, a typed manifest, and
CDN-hosted imagery. The npm package ships metadata only — the webp files live on
cdn.wallsnap.app (Cloudflare R2), addressed by content-hashed keys.
Install
npm install @wallsnap/scenes
Usage
import { SCENES, sceneUrl, sceneThumbUrl } from '@wallsnap/scenes';
const scene = SCENES[0];
sceneUrl(scene.file); // https://cdn.wallsnap.app/scenes/<stem>-<hash>.webp
sceneThumbUrl(scene.file); // 320px picker thumbnail
scene.overlayFile && sceneUrl(scene.overlayFile); // matched foreground plate, if any
Every SceneManifestEntry carries real geometry: the photographed wall's estimated size in cm
(wallWidthCm/wallHeightCm), the clear-wall rectangle a piece may occupy
(anchorX/anchorY + maxWidthCm/maxHeightCm, placed by eye per scene), and the file's pixel
size (imageWidth/imageHeight) so no decode pass is needed for layout.
Self-hosting the imagery? Pass your own base URL: sceneUrl(scene.file, 'https://my-cdn.example').
Provenance
All imagery is synthetic, generated by our own pipeline — see PROVENANCE.md (shipped in this
package) for the full record.
License
MIT. Part of wallsnap — see @wallsnap/core for the geometry that
consumes these scenes.