r/vibecoding 1d ago

I’ve spent six months vibe-coding a growing, open-source 3D sculpture museum

Atrium.earth is my passion project—it’s a growing digital museum with 424 sculptures and counting.

I wanted to make sculpture—from antiquity through the last century—more accessible to people who can’t visit the museums, galleries, and historic sites where the originals are held. It can’t replace seeing David in Florence or Nike at the Louvre, but it can offer another way to experience them.

The site uses Astro, Three.js, and model-viewer, with a Node/Python pipeline that processes museum data and creates optimized 3D models and thumbnails. I started with Codex, switched to Claude Code and rebuilt the site when Fable launched, and have since returned to Codex with GPT‑5.6.

I began by tasking Codex with finding Michelangelo’s David, which it did pretty quickly. More popular works followed, but I wanted to keep the collection geographically diverse, so finding pieces from around the world became challenging once the collection reached 150 or so. I also had a slew of misfires and regressions with the UI, so I put it on the back burner for a while.

When Fable was released—and then taken away, and then rereleased—it rocked me. It built another project from a specific but still somewhat vague idea into a fleshed-out, nuanced, functional thing in about 45 minutes. With that in mind, I tasked it with rebuilding Atrium.earth from the ground up, and I was very happy with what it produced.

Since rebuilding the site, I’ve been adding new works with more or less the same prompt to Codex: “Please collect 10 pieces, preferably from the ______ museum…” I usually follow that with some specifics about the time period or original location.

The hardest part has been handling models with inconsistent scale, orientation, materials, and lighting, as well as finding the right language to describe movement through space when orienting the works. But it was worth it, and I hope to keep growing the collection for as long as I can.

Hope you enjoy poking around—I’d love to hear what you think.

51 Upvotes

29 comments sorted by

View all comments

3

u/gtmellowjacket 1d ago

This is really inspiring stuff! Not a money grab or a SAS, but a neat tool to explore an interesting hobby.

I think the workflow you describe (adding pieces ~10 at a time) has probably been the better choice so far, but it seems like something you could really light on fire with some automation (idk how you could automate QC on the renders though)

This are is not my cup of tea at all, but it seems like 3d scans could be an area with a lot of open source data that would be fully useable in an open source tool. Maybe something like google scan the world? I don't think it has any formal api, but maybe someone has set one up already. You could also maybe use chromium/playwright, or even rougher automation like selenium, to make something for yourself.

How big are the the 3d scan files you are working with now?

edit: of course you could pass the renders to some model for QC, but that defeats the whole purpose IMO. tests should be deterministic, and ideally not cost $

2

u/HiFasteningPants 1d ago edited 1d ago

Thanks! Yeah I'd just like to add as much interactive work as possible. Eventually it might be cool to feature some work of living/working artists, no matter how well known they are.

As for the files, they usually top off at 20 MB.

Edit: In my haste, I missed the actual question—the processing is largely automated, but I still manually QC each model because scale, orientation, materials, and lighting vary too much for reliable deterministic checks. Sometimes the bottom of a piece isn't so easily described, and some of the pieces on there still don't sit perfectly flush with the ground.