> For the complete documentation index, see [llms.txt](https://help.intangible.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.intangible.ai/build/ai-composer.md).

# AI Composer

A conversational agent that builds environments and adjusts scenes from natural-language prompts. Ask for a tropical forest, a city block, a living room with characters – it goes and gets the assets, arranges them, and reports back.

## Watch

<https://www.youtube.com/watch?v=XxbxqcGCuR4>

![AI Composer Chat History panel on the right side of Build mode showing a conversation - user prompt asks to add a second sports car behind the Lamborghini, AI responds with the asset it found and placed. A second yellow super car is now visible in the scene](/files/JEejhsFf1Ro6k5zQ4mzx)

## What it does

If you've staged a previs scene before, you know the shape of the work: an hour collecting forty pieces of vegetation for a forest, then another hour distributing them so it looks like an actual forest and not a plant nursery. AI Composer collapses that. Prompt for the environment – "create a tropical forest" – and the agent collects the assets it needs and arranges them in a populator, ready for you to nudge.

The agent runs on a multi-agent architecture under the hood. Asset-lookup agents identify what your prompt implies, scene-composition agents decide how those assets should be arranged, and Intangible's proprietary world-model agents reason about the spatial layout. The point is that you get to direct, not drag – which matters when your director asks for a different forest twenty minutes before the client meeting.

## How to use it

The AI Composer dock sits at the bottom-right of Build mode. Open it with the chat-bubble icon, type a prompt, hit enter.

1. **Prompt for an environment.** "Create a city block." "Build a wedding scene." "Make a tropical forest, roughly 100 by 100 meters." Specificity helps; vague prompts produce generic results.
2. **Wait for the result.** Environments come back in one of two ways: as a populator (a procedural container that distributes assets across an area), or as individually placed assets arranged directly in the scene. Either way, expect 30 seconds to a couple of minutes depending on complexity.
3. **Adjust the populator.** Click the populator in the viewport to open its contents panel. Increase or decrease specific asset types ("more palm trees, fewer banana trees"), change footprint, or add new asset categories.
4. **Add objects to an existing scene.** "Add a character on the left side of the cabinet." "Drop a coffee table between the two couches." The agent uses spatial language – "left", "right", "between", "behind" – and tries to honor it.
5. **Delete or replace.** "Delete the rightmost couch." "Replace the dragon with a horse." The agent matches against object names and descriptions in the scene.
6. **Pose a character.** "Make the character stand." "Rotate the character to face the camera." Pose changes apply to whichever character the agent thinks you mean; name your characters if you have multiples.
7. **Attach a reference image to a specific object.** "Attach this as a reference image to the chair: \<image URL>". The agent finds the matching object and attaches the image. The Build viewport shows a base color at most, not the reference itself, which resolves at render time. This is the conversational shortcut for the most-important Build action; see [Image reference](/overview/concepts/image-reference.md).
8. **Thumbs up or thumbs down.** Each agent response has feedback icons – click them. The signal trains the agent to do better next time.

### Working with character names

The agent has a habit of latching onto descriptive names ("pirate captain") and over-rendering them in subsequent prompts. If you want a character to stay visually consistent across shots, give them a vanilla name – "Mark", "Jeff" – and use image references on the character object instead of relying on the description. The webinar walkthrough hits this directly.

## Paths, roads, and anything along a curve

AI Composer builds two kinds of curve-based structures from a prompt:

* **Scattering along a curve.** "A winding stone path with lampposts every 10 meters." "Line this driveway with pine trees on both sides." The agent creates a [spline populator](/build/spline-populator.md) – a curve with assets distributed along it. Click it to adjust the curve, spacing, or asset mix like any other populator. Multiple things on the same curve ("trees on both sides plus lampposts on the right") come back as one populator with multiple elements.
* **Solid surfaces.** "Add a curved road as one solid surface." The agent extrudes a single continuous mesh along the curve instead of scattering objects. Use this for roads, paths, and ribbons that need to read as one surface in renders.

The phrasing decides which you get. Asking for things *along* or *lining* a path produces a spline populator; asking for a road or surface produces an extrude. If a road comes back as scattered segments, re-prompt with "as one solid surface".

## Animating from a prompt

AI Composer can animate objects and cameras. Describe the motion and the agent authors keyframes for it:

* **Object motion.** "Move the cube 3 meters left over 2 seconds."
* **Camera moves.** "Orbit around the product for 180 degrees." Camera prompts use director-level vocabulary – orbit, dolly, push in – and each camera-move prompt creates a new shot with its own camera.
* **Whole reels.** "Create a cinematic reel of the scene" produces a series of animated shots.

![A generated cinematic reel: fourteen named shots from Opening Crane Up to Grand Finale Dolly Out, each an editable camera move](/files/5wG7kJHHSXjretxbwCAx)

![A Compose-mode storyboard filled with AI Composer-generated animated shots, each with its own camera move](/files/npw50zk9PxkgHl6187f1)

The keyframes land on the scene timeline as ordinary, editable keys – refine them in Compose mode like anything you keyframed by hand. See [Animation](/compose/animation.md).

Three behaviors to know:

* **Camera-move prompts create a new shot and camera each time.** To change a generated move, clear its animation and re-prompt rather than stacking prompts on the same shot.
* **Camera moves aim at a static target point.** The camera won't track an object that's animating; for follow shots, use [Aim Camera and Target](/compose/aim-camera-and-target.md).
* **Full 360-degree rotations need intermediate keyframes.** Two keyframes with the same orientation have nothing to interpolate; ask for the rotation in segments or add intermediate keys in the timeline.

## Details

| Capability           | What it can do                                                                                     |
| -------------------- | -------------------------------------------------------------------------------------------------- |
| Environment creation | Cities, forests, interiors, beaches, urban districts – anything with characteristic asset families |
| Asset addition       | Add a single object to an existing scene with spatial language                                     |
| Asset deletion       | Delete by reference – "the rightmost couch", "the dragon", "everything red"                        |
| Character pose       | Standing, sitting, running, gesturing, custom prompts                                              |
| Character placement  | Spatial moves – "behind the bar", "in the back of the truck"                                       |
| Population scaling   | "More vegetation", "fewer cars", "double the crowd"                                                |
| Spline scattering    | Distribute assets along a curve – paths, fences, tree lines, lampposts                             |
| Road generation      | Extrude a curved road or path as a single solid surface                                            |
| Object animation     | Keyframe object motion from a prompt – "move the cube 3 meters left over 2 seconds"                |
| Camera moves         | Director-level camera animation – "orbit around the product for 180 degrees"                       |

## Limits and known issues

* **Spatial accuracy is approximate.** "Move the character forward by 75 cm" works directionally; the exact distance often comes back wrong. Re-prompt or use [Transform](/build/transform.md) for fine placement.
* **Generation can go off the rails.** A vague prompt occasionally returns nothing useful. Refine with more specificity or undo and try again.
* **Character consistency is best with image references, not names.** See "Working with character names" above and [Image reference](/overview/concepts/image-reference.md).
* **The agent doesn't know your custom assets unless you tell it.** Imported objects in My Assets won't be picked up by general prompts. Name and describe them well on import – AI Composer uses those names to match assets to natural-language prompts. A model named "2024 Bronco, matte olive" will respond to "drop in the green Bronco"; a model named "object-12" won't.
* **Can generate an unmanageable number of individual objects.** A prompt like "add a grass field" might return hundreds of individually placed grass assets instead of routing through a populator. If the result is too dense to work with, undo and rephrase – "create a grass field as a populator" is more likely to produce a manageable structure.

## Related

* [Asset library](/build/asset-library.md)
* [Populators](/overview/concepts/populators.md)
* [Image reference](/overview/concepts/image-reference.md)
* [Smart Import](/build/import-your-own-models.md)
* [How the visualizer thinks](/overview/concepts/how-the-visualizer-thinks.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://help.intangible.ai/build/ai-composer.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.
