How an Agent Built a 3D Paris Gallery by Chaining Two Hugging Face Spaces
An agent built a 3D Paris gallery from two Hugging Face Spaces.

An agent built a 3D Paris gallery from two Hugging Face Spaces.
I asked a coding agent to build a beautiful website showcasing the monuments of Paris as 3D Gaussian splats. I never opened an image generator. I never touched a 3D reconstruction tool. The agent produced every asset (the images and the 3D splats) by calling two Hugging Face Spaces directly, then wired them into a cinematic viewer.
Here's the result, live as a static Space:
This post is about how that's possible now, and why I think it's a preview of how a lot of multimedia software gets built from here on.
Mitchell Hashimoto recently described a shift he calls the building block economy : the most effective path to software is no longer a polished monolith, but small, well-documented components that others (increasingly agents ) can assemble. His key observation: AI is okay at building everything from scratch, but it is really good at gluing together proven pieces.
That thesis has mostly been told with code libraries. But the same forces are hitting multimedia AI . The hard part of using a state-of-the-art image model, a video model, a TTS model, or a 3D reconstruction model was never the model. It was the integration: SDKs, weights, GPUs, input formats, polling. If each model were instead a documented, callable block, an agent could glue them together the same way it globs together npm packages.
That's exactly what Hugging Face Spaces have quietly become.
The Hub hosts thousands of state-of-the-art models (a huge share of them open-weights ), and most are deployed as interactive Spaces . As of now, every Gradio Space also exposes a plain-text agents.md that tells an agent exactly how to call it:
returns everything needed in one shot: the schema URL, the call and poll templates, how to upload files, and the auth hint:
No client library. No hardcoded integration. An agent reads that, and it can drive the Space end to end. Set an HF_TOKEN and you're going.
The real unlock is chaining : the output of one Space becomes the input to the next. Prompt → image → 3D. That's the whole pipeline behind this gallery.
The six source images the agent generated, all isolated on black, ready for single-image 3D reconstruction:
From there the agent did the "glue" work too. It noticed TripoSplat outputs are Y-down and flipped them upright, auto-framed each monument, compressed the .ply files to .ksplat (~3× smaller, so they load fast), built a Three.js viewer with a scroll-to-switch and drag-to-rotate UI, and deployed the whole thing as a static Space. The only human inputs were taste-level: "make it zoomed out," "replace the obelisk with something better for splatting," "the transition lingers too long."
Source: Hugging Face