> 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/scenes/detecting-and-selecting-objects.md).

# Detecting & selecting objects

Detection is the step that turns a scene image into a list of separate objects — and the step where you decide what the scene is going to cost.

## Running detection

In a **Scene** project, **Detect Objects** is already wired to the **Generate Image** node. Generate your scene image, then run it. It needs a paid plan or the trial: see [Plans](/marso-studio/reference/credits-and-billing.md#plans).

Before you run it, pick at least one **category** to look for: **Environment**, **Set Dressing**, **Props** or **Furniture**. It finds objects in the categories you pick, so picking just one is worth it when a scene has one class of object you actually care about, for example **Furniture** in a room full of props.

Detection returns a set of objects with a preview. **Nothing else runs yet, and nothing else is charged yet.**

## Reviewing the selection

Open the object viewer to see what was found. **Everything is selected by default**, so this step is about removing what you don't want.

Every object you keep is charged for all three generation stages that follow, so the selection screen is the cheapest place to control your spend. Work through the list and deselect:

* **Structure** — walls, floors, ceilings, ground planes. These are usually better built in your DCC than generated.
* **Anything small or distant.** 3D generation needs each object to fill most of its reference image. An object that was tiny or heavily occluded in the scene won't produce a usable reference, and will usually fail at the 3D stage.
* **Backdrop** — anything blurred or only partly visible that you wouldn't place in a level.
* **Duplicates** — if the scene contains six near-identical crates, keep one and instance it yourself.
* **Fragments** — a detection that's caught part of an object rather than the whole thing.

Your plan also sets how many objects one detection can carry on: **10** on Artist and the trial, **20** on Artist Pro, and no limit on Studio and Enterprise. If you've selected more than that, the object viewer tells you how many to deselect. See [Plans](/marso-studio/reference/credits-and-billing.md#plans).

Confirm the selection when you're happy with it. The count you confirm is the count you're billed for at each downstream stage.

## Adding an object detection missed

If detection missed something you want, draw it in yourself rather than running detection again:

1. In the object viewer, click **Draw box** and drag a rectangle round the object.
2. Give it a **Name**. **Type**, **Tier** and **Height in metres** are optional.
3. Click **Save**. The object joins the list, already selected.

Drawing a box costs nothing. The object then goes through reference images, 3D and PBR like any other, at the same price per object.

## Running detection again

If the detection isn't right — it split one object into several, merged several into one, or missed a whole kind of object — you can run **Detect Objects** again, with a different choice of categories for a kind it missed. Each run is charged the same as the first. For one or two missed objects, drawing a box is quicker, and free.

This is worth doing before you generate. Re-running detection is cheap relative to what follows, so fixing a bad decomposition costs far less than generating an object that was never a whole object in the first place.

| What you see                    | What to try                                                                        |
| ------------------------------- | ---------------------------------------------------------------------------------- |
| Objects missing entirely        | Draw a box round them (free), or check their category is selected and run it again |
| One object split into pieces    | Usually the scene image: see below                                                 |
| Several objects merged into one | Usually the scene image: see below                                                 |
| Too much scenery detected       | Just deselect the extras — that's free                                             |

If two runs don't improve things, the scene image is usually the problem rather than the detection. A clearer image with better-separated objects, each one reasonably large in frame, will detect better than any choice of categories. See [Sourcing & preparing assets](/marso-studio/preparing-your-assets/sourcing-and-preparing-assets.md).

## What happens next

Once you confirm a selection, the generation stages run **per object**, as a group:

1. **Generate Reference Images (Group)**
2. **Generate 3D Models (Group)**
3. **Generate PBR Textures (Group)**

Each stage runs across every object in the selection. See [Working with scene results](/marso-studio/scenes/working-with-scene-results.md) for what to do when some objects succeed and others don't.


---

# 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/scenes/detecting-and-selecting-objects.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.
