--- title: Monuments de Paris emoji: 🗼 colorFrom: gray colorTo: yellow sdk: static pinned: false license: mit --- # Monuments de Paris — Gaussian Splat Captures An interactive, cinematic showcase of Paris monuments as 3D Gaussian splats, floating spotlit in a black void. Scroll to move between monuments (they cross-slide), drag to rotate. Each monument is auto-framed and re-fits to the viewport. **Collection:** Tour Eiffel (Champ-de-Mars diorama), Opéra Garnier, Arc de Triomphe, Sacré-Cœur, Moulin Rouge, Panthéon. ## 🤖 Built agentically via `agents.md` The whole asset pipeline was produced by an agent calling two Hugging Face Spaces through their **`agents.md`** files — machine-readable docs that tell an agent exactly how to call a Space's API (endpoints, params, auth, polling). To do the same, just copy one of the `agents.md` links below and paste it into your coding agent (e.g. Claude Code): it reads the spec and drives the Space for you — generating images or splats — no manual clicking required. The Agents button on a Hugging Face Space 1. **Images** — [`ideogram-ai/ideogram4`](https://huggingface.co/spaces/ideogram-ai/ideogram4/agents.md) generated each monument as a dark-background "specimen" (and the Eiffel as a diorama on a plinth). 2. **Splats** — [`VAST-AI/TripoSplat`](https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md) reconstructed a 3D Gaussian splat (`.ply`) from each image. The `.ply` files were then compressed to `.ksplat` (~3× smaller) for fast loading. See the `gen_*.py` / `hf_call.py` scripts in this repo — that's the exact pipeline the agent ran against those two `agents.md` endpoints. ## Built with [three.js](https://threejs.org) and [@mkkellogg/gaussian-splats-3d](https://github.com/mkkellogg/GaussianSplats3D) for rendering. Sibling galleries: [Japan](https://huggingface.co/spaces/mishig/monuments-of-japan) and [Egypt](https://huggingface.co/spaces/mishig/monuments-of-egypt).