> For the complete documentation index, see [llms.txt](https://docs.m-xr.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.m-xr.com/marso-studio/getting-started/how-marso-studio-works.md).

# How Marso Studio Works

Marso Studio builds 3D assets and predicts a complete set of physically-based rendering (PBR) materials for them — in minutes, in your browser. It works at two scales: a whole scene decomposed into its objects, or a single asset on its own.

### The model: I2M

At the centre of Marso Studio is **I2M (Image-to-Material)**, M-XR's foundational material model. Given a mesh and its base-colour texture, I2M predicts a full PBR material stack:

| Map           | What it describes                                       |
| ------------- | ------------------------------------------------------- |
| **Albedo**    | The true surface colour, with lighting removed          |
| **Metallic**  | Which areas behave as metal vs non-metal                |
| **Roughness** | How sharp or diffuse surface reflections are            |
| **IOR**       | Index of refraction — how light reflects at the surface |

> **Normal map prediction is in active development** and is not yet part of the downloadable output.

I2M is trained on measured material data rather than artist interpretation, so its predictions are consistent and ready to drop into a production pipeline.

### What the model needs from you

* Clean mesh geometry
* A base-colour texture (see [3D file support](/marso-studio/preparing-your-assets/3d-file-support.md))

I2M **enhances** materials — it does not fix broken geometry, bad UVs or poor scans. The better your input, the better your result. This holds for generated meshes too: the quality of a scene object depends on the reference image it was built from.

### The scene pipeline

The main route through Studio starts from a whole environment rather than a single object.

A scene is **decomposed** before anything is generated. Detection breaks the scene image into individual objects and shows them to you; you confirm which ones are worth building; then each selected object is generated and textured independently.

1. **Scene Generation** — describe the environment and get a scene image
2. **Detect Objects** — the scene becomes a list of individual objects
3. **Confirm your selection** — everything is selected by default; you decide what gets built, and what it costs
4. **Generate Reference Images** — each object gets a reference image of its own
5. **Generate 3D Model** — each object is reconstructed as a mesh
6. **Generate PBR Textures** — I2M predicts materials for each one
7. **Export** — the whole scene, or any object individually

Each object is reconstructed from its own reference image, and 3D generation needs the object to fill most of that image. Objects that were small or distant in the scene are the ones that fail.

See [Generate a scene](/marso-studio/scenes/generate-a-scene.md).

### The node editor

Rather than a single upload box, Marso Studio gives you a **node editor**. Each node is one step in the process — detect objects, load or generate an asset, generate or edit an image, apply materials — and you connect a node's output to the next node's input to build a pipeline.

You don't have to start from an empty graph. When you create a project you choose a **workflow**, and the starting nodes are placed for you:

* **Bulk** — **Scene Generation → Detect Objects**, for a whole environment
* **Individual** — **3D Model Upload → Generate PBR Textures**, for a single asset

From there you add, remove and rewire nodes as you like. See the full [Nodes reference](/marso-studio/reference/nodes-reference.md) for what every node does.

### The single-asset routes

Scene generation is the main route, but for one hero prop the direct routes are faster:

* **You have the mesh** — upload it, run **Generate PBR Textures**. This is what an Individual project opens with.
* **You have an image, or an idea** — **Image Generation → Generate 3D Model → Generate PBR Textures**.

Both remain fully supported. See [Workflows](/marso-studio/workflows/apply-pbr-to-your-own-model.md).

### How work is charged

Every generation step spends **credits**, and the node tells you what a step will cost before you run it. Scenes are charged per object, so the size of your selection decides what a scene costs..

See [Credits & billing](/marso-studio/reference/credits-and-billing.md).

### From input to output, at a glance

1. **Start** — describe a scene, bring an image, or upload a model.
2. **Decompose** *(scenes only)* — break the scene into objects and choose what to keep.
3. **Build** — generate the mesh, or use the one you uploaded.
4. **Apply materials** — run **Generate PBR Textures** to predict the PBR stack with I2M.
5. **Preview** — inspect the result in the 3D viewer.
6. **Export** — download the textured assets and their individual maps.

Ready to try it? Head to the [Quickstart](/marso-studio/getting-started/quickstart.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.m-xr.com/marso-studio/getting-started/how-marso-studio-works.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
