> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cadenzalabs.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Projects & environments

> Scaffold a project and understand what's in it.

A **project** is a directory containing an `env.json` mission spec. Two commands
create one.

## Create a project

<Tabs>
  <Tab title="Full scaffold (mkdir)">
    ```bash theme={null}
    cadenza mkdir rescue-dog
    ```

    Creates `./rescue-dog/` with everything you need:

    * `env.json`: the mission spec (scene + phases + rewards)
    * `main.py`: a runnable driver for the project
    * `requirements.txt`
    * `README`
  </Tab>

  <Tab title="Spec only (env init)">
    ```bash theme={null}
    cadenza env init rescue-dog
    ```

    Writes just `rescue-dog/env.json`, a light scaffold for when you only need the
    mission spec and will wire up your own driver.
  </Tab>
</Tabs>

Both seed a working multi-phase mission (a rescue-dog debris scenario) you can
run immediately, then edit.

## Inspect a project

```bash theme={null}
cadenza env show rescue-dog
```

Renders the mission: the **scene** (zones and objects), and the ordered
**phases** with their goals, success/fail predicates, and reward terms, so you
can sanity-check a spec before running it.

## Anatomy of `env.json`

At a glance, every mission has three parts:

```jsonc theme={null}
{
  "name": "rescue-dog-debris",
  "robot": "go1",                 // go1 (default) or g1
  "spawn": [0.0, 0.0, 0.0],
  "scene":  { "objects": [...], "zones": [...] },   // the world
  "phases": [ ... ],                                 // ordered sub-goals
  "vla_finetune": { ... }                            // how rollouts become training rows
}
```

* **scene**: the static world, including boxes/markers the robot interacts with
  and named zones used by predicates and rewards.
* **phases**: the mission as a sequence of sub-goals. Each phase has its own
  natural-language goal, a predicate that completes it, a predicate that fails
  it, and reward shaping.
* **vla\_finetune**: the prompt template used when exporting fine-tune records.

The complete field-by-field reference (every predicate and reward term) is on
the next page.

<Card title="Environment schema reference" icon="diagram-project" href="/cli/environment-schema">
  Full `env.json` schema: scene, zones, phases, predicates, and reward terms.
</Card>

<Note>
  Cadenza's world **forward direction is −X**. Zone AABBs and positions are in
  world coordinates. Keep this in mind when placing objects and reading
  `forward_distance_gain`.
</Note>
