# Graspable > Graspable is a desktop app for building WebXR experiences. You describe a 3D or XR scene, app or game in plain language; an AI agent builds it as a real React Three Fiber project on your computer, checks that it builds and loads, and you try it in an emulated headset or on a real one. - The app is available for macOS. Windows and Linux versions are coming soon. Nothing needs installing first. - Building on your own computer with your own AI account (an API key, a ChatGPT subscription, or Claude Code with a Claude subscription) is free. Paid plans add things Graspable runs for you, paid with Credits. - Projects are ordinary code: React, three.js, React Three Fiber and @react-three/xr. They run in any WebXR browser, such as the one on Meta Quest. - Every page below is plain Markdown. All documentation in one file: https://graspable.dev/llms-full.txt ## Docs: Start here - [What Graspable is](https://graspable.dev/docs/index.md): Graspable is a desktop app where you describe a 3D or XR experience and an AI agent builds it in a project on your computer. - [Install Graspable](https://graspable.dev/docs/install.md): Download and install Graspable on macOS, and learn where it keeps your projects and settings. - [Your first project](https://graspable.dev/docs/first-project.md): Create a project from a template, send your first request, read the run, open the preview and undo a run. ## Docs: Building - [Templates](https://graspable.dev/docs/templates.md): The eight project templates that ship with Graspable, what each starts you with, and how a project is laid out. - [Preview and headset](https://graspable.dev/docs/preview-and-headset.md): Use the live preview, the Scene panel, the emulated headset and number scrubbing, and open your project on a real headset. - [Generated worlds](https://graspable.dev/docs/worlds.md): Ask for a place and get it as a 3D world you can stand in, generated by World Labs and saved into your project as Gaussian splats. - [XR tests](https://graspable.dev/docs/xr-tests.md): Recordings of you using your app in XR become tests that Graspable replays after every run to catch things the agent broke. - [Fast mode](https://graspable.dev/docs/fast-mode.md): Quicker edits, code search by meaning and shorter build output for the agent. Comes with the Pro plan and uses Credits. ## Docs: Agents and models - [Engines and sign-in](https://graspable.dev/docs/engines-and-sign-in.md): Choose what powers the agent, sign in from inside the app, and learn which subscription or API key works where. - [Approvals and safety](https://graspable.dev/docs/approvals-and-safety.md): What the agent may do on its own, what it asks you first, how System One and run budgets work, and what the agent cannot touch. - [Memory](https://graspable.dev/docs/memory.md): What the agent remembers about you and your projects, where it is stored, and how to pin, edit or forget an item. ## Docs: Build with Graspable - [Use Graspable with your AI agent](https://graspable.dev/docs/use-with-ai-agents.md): For people and for AI agents. How an agent such as Claude Code, Codex, OpenCode or Amp installs, sets up and uses Graspable to build WebXR projects. - [Plugins and connectors](https://graspable.dev/docs/plugins.md): Give the agent tools from other services and programs. How to add one, how to write one, and the manifest format. - [Skills](https://graspable.dev/docs/skills.md): Teach the agent how you do one kind of task, in your own words. Skills work with every AI choice. - [The grasp command](https://graspable.dev/docs/cli.md): Use Graspable from a terminal or a script. Create projects, start runs, follow them, check and preview. - [The Graspable MCP server](https://graspable.dev/docs/mcp-server.md): Let another AI agent build with Graspable. Set-up for Claude Code, Codex and other MCP clients, and the list of tools. - [The local API](https://graspable.dev/docs/api.md): The HTTP API of the Graspable agent on your computer. Access tokens and their levels, and the requests for projects, files and runs. ## Docs: Running elsewhere - [Cloud Agents](https://graspable.dev/docs/cloud-agents.md): Run a project in the cloud instead of on your computer, keep it going while you are away, and move it back. - [Teams](https://graspable.dev/docs/teams.md): Work with other people on the same cloud projects, with one plan, one pool of Credits and shared project memory. ## Docs: Reference - [Credits](https://graspable.dev/docs/credits.md): What Credits pay for, how many each plan includes, Credit packs, overage, and what happens when they run out. - [Plans and billing](https://graspable.dev/docs/plans-and-billing.md): What is free, what each plan adds, and how to subscribe, change or cancel. - [Privacy and telemetry](https://graspable.dev/docs/privacy-and-telemetry.md): Exactly what Graspable sends, what it never sends, how to turn it off, and where your keys and sign-ins are stored. - [Troubleshooting](https://graspable.dev/docs/troubleshooting.md): Fixes for common problems with installing, project setup, the preview, sign-in, checks, headsets and cloud agents. - [Frequently asked questions](https://graspable.dev/docs/faq.md): Short answers about cost, privacy, subscriptions, headsets and what you need to use Graspable. ## Guides - [Gaussian splats, explained for people who build things](https://graspable.dev/blog/gaussian-splats-explained.md): What a Gaussian splat is and is not, how it is drawn, the file formats you will meet, what splats are good and bad at, and what that means for a WebXR experience built on one. - [How to test a WebXR app without a headset](https://graspable.dev/blog/test-webxr-without-a-headset.md): Emulate a headset in the browser with IWER: install it, move the headset and controllers from code, use a synthetic room for AR, record a session and replay it. - [Hand tracking or controllers in WebXR, and how to support both](https://graspable.dev/blog/webxr-hand-tracking-vs-controllers.md): How WebXR describes hands and controllers, what each can and cannot do, and how to write one React Three Fiber scene that works with either. - [WebXR hit testing: how to place objects on real surfaces](https://graspable.dev/blog/webxr-hit-testing-place-objects-on-real-surfaces.md): What a WebXR hit test is, how to request one, how to read its result, and a working reticle in React Three Fiber that places objects on floors and tables. - [A performance budget for WebXR on Quest 3](https://graspable.dev/blog/webxr-performance-budget-quest-3.md): How much time a frame has in the Meta Quest Browser, how to find out whether the CPU or the GPU is the limit, and what to change in a React Three Fiber scene. ## Optional - [Performance of Gaussian splats in WebXR: what we measured and what we chose](https://graspable.dev/blog/gaussian-splat-performance-webxr.md): Load time, memory and frame time of two 500,000-splat worlds in Spark, measured on a laptop and in an emulated headset, not on a real one, and the defaults we chose for our templates and why. - [Graspable now generates worlds with World Labs](https://graspable.dev/blog/generate-worlds-with-world-labs.md): Ask for a place in plain words and the agent generates it with World Labs Marble and puts it in your project: what you get, what it costs in Credits, and the three templates that use it. - [How our world templates work](https://graspable.dev/blog/how-world-templates-work.md): The layer shared by Splat World, World Explorer and World Game: one World component, raw units to metres, the collider as a physics mesh, a flattened floor, light from the splat, walking, throwing, and how the agent switches worlds. - [Spark: the renderer behind our splat templates](https://graspable.dev/blog/spark-splat-renderer.md): What Spark is, why a Gaussian splat renderer that lives inside a normal three.js scene matters for a project an agent builds, what moving from Spark 0.1 to 2 changed, and how our templates set it up. - [Describe a scene, step inside it](https://graspable.dev/blog/describe-a-scene-step-inside-it.md): Graspable is now a desktop studio. You say what you want, an agent builds it as a real project on your computer, and you try it on a headset. - [How Graspable checks its own work](https://graspable.dev/blog/how-graspable-checks-its-own-work.md): A run is not finished until the scene builds, loads in a browser and still passes the headset sessions you recorded. - [All documentation in one file](https://graspable.dev/llms-full.txt): Every documentation page, one after another. - [Download](https://graspable.dev/download): Get the app for macOS. - [Pricing](https://graspable.dev/pricing): Plans and what each one adds. - [Changelog](https://graspable.dev/changelog): What changed in each release. - [Blog feed](https://graspable.dev/blog/rss.xml): New articles as RSS.