poppenhuis /
poppenhuis (Dutch for "dollhouse") is a space for sharing collections and their 3D scans.
Have a collection you care about? of pottery? of sculptures? of guitars? of cars? of cakes? of plants? of dolls?
They're welcome to live here too.
Want your collection to live here?
Either:- Edit the 1st party manifest yourself by submitting a GitHub PR to the repo modifying
//src/manifest.tsx
and//public/models/
- Get me to edit the 1st party manifest for you by reaching out to me on Twitter and sending over a
.zip
folder of your models and a Google Sheet of your metadata.
Want to load models from an Are.na user profile?
Enter an Are.na profile slug:The following (shareable!) link will only display channels that contain blocks uploaded as
.glb
files:https://poppenhu.is/arena:
Want to mount a 3rd party manifest?
Your 3rd party manifest will be merged with poppenhuis's 1st party manifest, and the manifest URL will be stored in?manifest=
query param so you can share your collections with others.Manifest schema
type Manifest = User[]; interface User { id: string; name: string; bio?: string; collections: Collection[]; } interface Collection { id: string; name: string; description?: string; items: Item[]; } export const ITEM_FIELD_DESCRIPTIONS = { formalName: "A more specific name (like a model number or a scientific name) than the general name.", model: "The path to the 3D model. Only glTF/GLB models are supported.", alt: "Custom text that will be used to describe the model to viewers who use a screen reader or otherwise depend on additional semantic context to understand what they are viewing.", poster: "The image to be displayed instead of the model it is loaded and ready to render.", releaseDate: `The release date and the manufacture date are subtly different. The release date is the date this item's specific variant was made available to the public. The manufacture date is the date the item was actually made. e.g. while the iPhone SE 1 was released in 2016, it was manufactured up until 2018.` }; export interface Item { // required fields id: string; name: string; // model-viewer fields model: string; poster?: string; alt?: string; // abstract details formalName?: string; releaseDate?: string; description?: string; // material reality manufacturer?: string; manufactureDate?: string; manufactureLocation?: string; material?: string[]; // acquisition acquisitionDate?: string; acquisitionLocation?: string; // capture captureDate?: string; captureLocation?: string; captureLatLon?: string; captureDevice?: string; captureApp?: string; captureMethod?: string; // misc customFields?: { [key: string]: string | undefined; }; }
What file formats can poppenhuis render?
poppenhuis uses model-viewer for rendering 3D models, which only renders glTF/GLB (.gltf/.glb
) files.Ideally poppenhuis would also support rendering Polygon File Format (
.ply
) for rendering Gaussian splats. PRs welcome.Why?
My partner has a large collection of dolls, so I built poppenhuis to make it easier for her to catalogue and track metadata. Some of the dolls are culturally sensitive and shouldn't be displayed on a public forum, so she hosts her collection privately with a 3rd party manifest.Credits and inspiration
poppenhuis takes inspiration from Are.na, The Hydrant Directory and Tony Hawk's Pro Skater 4.I discovered this Sam Peitz tweet, nathannhan.art, What's in Jisu's bag?, and rotating sandwiches after first release, and they guided poppenhuis's development in its final stages.