> 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

This page describes 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**    | Fine surface detail, such as small bumps and grooves, and how it catches the light |

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. **Generate Image**, on its **Scene** tab — 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 (Group)** — each object gets a reference image of its own
5. **Generate 3D Models (Group)** — each object is reconstructed as a mesh
6. **Generate PBR Textures (Group)** — 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 how to start, and the starting nodes are placed for you:

* **Scene** — the whole scene chain, **Generate Image → Detect Objects → Generate Reference Images (Group) → Generate 3D Models (Group) → Generate PBR Textures (Group)**, for a whole environment. Needs a paid plan or the trial: see [Plans](/marso-studio/reference/credits-and-billing.md#plans)
* **Single asset** — **Load 3D Model → Generate PBR Textures**, for a single asset
* **Blank** — an empty canvas

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.

Or let an app do it. An app takes one input, a prompt, an image or a 3D model, then builds the nodes and runs every stage for you. Its project opens in the node editor whenever you want to take over. See [Apps](/marso-studio/workflows/apps.md).

## 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 a Single asset project opens with.
* **You have an image, or an idea** — **Generate Image → Generate 3D Model → Generate PBR Textures**.

Both remain fully supported. See [Apply PBR to your own model](/marso-studio/workflows/apply-pbr-to-your-own-model.md) and [From image to textured 3D](/marso-studio/workflows/from-image-to-textured-3d.md).

## How work is charged

Every generation step spends **credits**, and hovering a node's **Run** button 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
