惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
Recent Announcements
Recent Announcements
L
LangChain Blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
D
Docker
WordPress大学
WordPress大学
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
有赞技术团队
有赞技术团队
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MongoDB | Blog
MongoDB | Blog
博客园 - Franky

Hugging Face - Blog

Waypoint-1.5: Higher-Fidelity Interactive Worlds for Everyday GPUs ALTK‑Evolve: On‑the‑Job Learning for AI Agents Safetensors is Joining the PyTorch Foundation Holo3: Breaking the Computer Use Frontier Any Custom Frontend with Gradio's Backend A New Framework for Evaluating Voice Agents (EVA) Bringing Robotics AI to Embedded Platforms: Dataset Recording, VLA Fine‑Tuning, and On‑Device Optimizations One-Shot Any Web App with Gradio's gr.HTML CUGA on Hugging Face: Democratizing Configurable AI Agents New in llama.cpp: Model Management Building Deep Research: How we Achieved State of the Art OVHcloud on Hugging Face Inference Providers 🔥 20x Faster TRL Fine-tuning with RapidFire AI Building for an Open Future - our new partnership with Google Cloud Aligning to What? Rethinking Agent Generalization in MiniMax M2 Building a Healthcare Robot from Simulation to Deployment with NVIDIA Isaac Sentence Transformers is joining Hugging Face! Unlock the power of images with AI Sheets Supercharge your OCR Pipelines with Open Models Google Cloud C4 Brings a 70% TCO improvement on GPT OSS with Intel and Hugging Face Get your VLM running in 3 simple steps on Intel CPUs Nemotron-Personas-India: Synthesized Data for Sovereign AI Introducing RTEB: A New Standard for Retrieval Evaluation Accelerating Qwen3-8B Agent on Intel® Core™ Ultra with Depth-Pruned Draft Models VibeGame: Exploring Vibe Coding Games Nemotron-Personas-Japan: ソブリン AI のための合成データセット Swift Transformers Reaches 1.0 – and Looks to the Future Smol2Operator: Post-Training GUI Agents for Computer Use SyGra: The One-Stop Framework for Building Data for LLMs and SLMs Gaia2 and ARE: Empowering the community to study agents
How an Agent Built a 3D Paris Gallery by Chaining Two Hug...
Mishig Davaadorj · 2026-06-09 · via Hugging Face - Blog

Back to Articles

Mishig Davaadorj's avatar

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:

👉 mishig/monuments-de-paris

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.

The building-block economy comes for multimedia

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.

Every Space is a building block, via agents.md

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:

curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md

returns everything needed in one shot: the schema URL, the call and poll templates, how to upload files, and the auth hint:

API schema:   GET  .../gradio_api/info
Call endpoint: POST .../gradio_api/call/v2/{endpoint} {"param_name": value, ...}
Poll result:  GET  .../gradio_api/call/{endpoint}/{event_id}
File inputs:  POST .../gradio_api/upload -F "files=@file.ext"
Auth:         Bearer $HF_TOKEN

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. You can find these instructions on any Gradio Space via its Agents button:

The Agents button on a Hugging Face Space

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 worked example: Paris monuments → splats

The agent chained two Spaces:

  1. Image: an image-generation Space turned each monument into a clean, dark-background "specimen" shot (and the Eiffel Tower into a little diorama on a plinth). Prompt in, image out.
  2. Splat: VAST-AI/TripoSplat reconstructed a 3D Gaussian splat (.ply) from each single image. Image in, 3D out.

Generated image

Generated Panthéon

Reconstructed splat

The six source images the agent generated, all isolated on black, ready for single-image 3D reconstruction:

Generated monument images Generated Arc de Triomphe Generated Sacré-Cœur Generated Eiffel diorama

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

Several of those steps were the agent reacting to reality. A wide glass pyramid splats poorly. A thin obelisk is dull. A single-view reconstruction infers the back. That is exactly the "outsourced R&D, fast iteration" loop the building-block economy predicts, except the R&D was a conversation.

Two prompts, a whole new gallery

The real test of a building block is how cheaply you can reuse it. Once this pipeline existed, spinning up entirely new galleries cost about one sentence each. "Create a similar Space with splats for Japan," then the same for Egypt, and the agent did the rest: six monument images, six splats, compression, a viewer, and a deployed Space, per country.

  • 🏛️ Monuments of Egypt: the Great Pyramid, the Sphinx, Abu Simbel, the mask of Tutankhamun, Karnak, the Colossi of Memnon.

<video autoplay loop muted playsinline width="100%" src="

">

  • ⛩️ Monuments of Japan: Tokyo Tower, Himeji Castle, Kinkaku-ji, Osaka Castle, the Great Buddha of Kamakura, the Itsukushima torii.

<video autoplay loop muted playsinline width="100%" src="

">

Same two Spaces, same agents.md, only the prompts changed. That is the building-block economy in one line: the marginal cost of a new multimedia app falls toward the cost of describing it.

Why this matters

  • Models become composable. A SOTA splat model and a SOTA image model, from different orgs, chained with zero integration code. The Hub's open-weights catalog turns into a library of callable multimedia primitives.
  • Agents prefer what's documented and reachable. agents.md makes a Space trivially reachable, so an agent will pick it over a model it has to set up by hand. That is the same dynamic Hashimoto flags for open-source libraries.
  • The barrier was integration, and it's largely gone. "Turn a prompt into a rotating 3D monument" used to be a project. Here it was a step in a pipeline.

Try it yourself

Point your own agent at a Space's agents.md and let it cook:

# image generation
curl https://huggingface.co/spaces/ideogram-ai/ideogram4/agents.md
# single-image to 3D gaussian splat
curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md

Paste either link into your coding agent (Claude Code, etc.), set your HF_TOKEN, and ask it to build something. The full, reproducible pipeline for this gallery, the scripts that hit those two agents.md endpoints, lives in the Space repo.

The building blocks are sitting right there on the Hub. The agents already know how to glue.

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:

👉 mishig/monuments-de-paris

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.

The building-block economy comes for multimedia

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.

Every Space is a building block, via agents.md

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:

curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md

returns everything needed in one shot: the schema URL, the call and poll templates, how to upload files, and the auth hint:

API schema:   GET  .../gradio_api/info
Call endpoint: POST .../gradio_api/call/v2/{endpoint} {"param_name": value, ...}
Poll result:  GET  .../gradio_api/call/{endpoint}/{event_id}
File inputs:  POST .../gradio_api/upload -F "files=@file.ext"
Auth:         Bearer $HF_TOKEN

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 worked example: Paris monuments → splats

The agent chained two Spaces:

  1. Image: ideogram-ai/ideogram4 turned each monument into a clean, dark-background "specimen" shot (and the Eiffel Tower into a little diorama on a plinth). Prompt in, image out.
  2. Splat: VAST-AI/TripoSplat reconstructed a 3D Gaussian splat (.ply) from each single image. Image in, 3D out.

Generated image

Generated Panthéon

Reconstructed splat

The six source images the agent generated, all isolated on black, ready for single-image 3D reconstruction:

Generated monument images Generated Arc de Triomphe Generated Sacré-Cœur Generated Eiffel diorama

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

Several of those steps were the agent reacting to reality. A wide glass pyramid splats poorly. A thin obelisk is dull. A single-view reconstruction infers the back. That is exactly the "outsourced R&D, fast iteration" loop the building-block economy predicts, except the R&D was a conversation.

Two prompts, a whole new gallery

The real test of a building block is how cheaply you can reuse it. Once this pipeline existed, spinning up entirely new galleries cost about one sentence each. "Create a similar Space with splats for Japan," then the same for Egypt, and the agent did the rest: six monument images, six splats, compression, a viewer, and a deployed Space, per country.

  • 🏛️ Monuments of Egypt: the Great Pyramid, the Sphinx, Abu Simbel, the mask of Tutankhamun, Karnak, the Colossi of Memnon.
  • ⛩️ Monuments of Japan: Tokyo Tower, Himeji Castle, Kinkaku-ji, Osaka Castle, the Great Buddha of Kamakura, the Itsukushima torii.

Same two Spaces, same agents.md, only the prompts changed. That is the building-block economy in one line: the marginal cost of a new multimedia app falls toward the cost of describing it.

Why this matters

  • Models become composable. A SOTA splat model and a SOTA image model, from different orgs, chained with zero integration code. The Hub's open-weights catalog turns into a library of callable multimedia primitives.
  • Agents prefer what's documented and reachable. agents.md makes a Space trivially reachable, so an agent will pick it over a model it has to set up by hand. That is the same dynamic Hashimoto flags for open-source libraries.
  • The barrier was integration, and it's largely gone. "Turn a prompt into a rotating 3D monument" used to be a project. Here it was a step in a pipeline.

Try it yourself

Point your own agent at a Space's agents.md and let it cook:

# image generation
curl https://huggingface.co/spaces/ideogram-ai/ideogram4/agents.md
# single-image to 3D gaussian splat
curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md

Paste either link into your coding agent (Claude Code, etc.), set your HF_TOKEN, and ask it to build something. The full, reproducible pipeline for this gallery, the scripts that hit those two agents.md endpoints, lives in the Space repo.

The building blocks are sitting right there on the Hub. The agents already know how to glue.