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

# Attitude Transitions

> Schedule and manage attitude mode transitions for your spacecraft

> For the complete documentation index, see [llms.txt](/llms.txt).

Use this page to schedule when your spacecraft switches between attitude modes, pick the **default mode** the spacecraft falls back to between transitions, and configure free-drift dynamics for an uncontrolled, torque-free orientation. For attitude mode concepts — what a mode is, body axes, target families, and the unified workspace catalog — see [Attitude modes overview](/features/attitude/overview).

**Route:** `/attitude/modes`

## The Transition Schedule

The **Transition Schedule** card lives in the main column of the attitude modes page, below the mode carousel and the Euler-angle plot. It lists every scheduled mode transition for the selected spacecraft in chronological order, alongside any CUSTOM-mode windows imported from AEM files.

Each row shows:

* The **target mode** the spacecraft will adopt at the transition time. CUSTOM rows (created by AEM imports) display **File Import** in place of a mode name, with a small badge naming the source `.aem` or `.txt` file.
* The **scheduled time**, formatted as `MMM DD, HH:MM` in UTC (for example, `Apr 14, 08:56`).
* An actions menu with **Edit** and **Delete** entries. CUSTOM rows handle these differently — see [CUSTOM Windows from AEM Imports](#custom-windows-from-aem-imports) below.

By default the table hides past events and shows upcoming transitions only. Open the gear menu in the card header and tick **Show past events** to include scheduled times that have already elapsed.

### The right-hand modes panel

The attitude modes page has a second column on the right that lists every attitude mode in your workspace catalog. The header carries a panel-toggle icon (the right-panel glyph next to the **Import** and **Export** buttons) — click it to hide or show the modes panel and reclaim screen space for the schedule and plots.

### Empty state

When no transitions are scheduled and no AEM imports have been added, the **Transition Schedule** card replaces the row list with a centered **No transitions scheduled** message and a single **Add transition** button. Clicking the button opens the same scheduling dialog as the **Add transition** action in the card header.

## Scheduling a Transition

Click **Add transition** in the **Transition Schedule** card header to open the **Add Transition** dialog. Every scheduled transition is time-anchored: it activates at a single UTC instant and remains active until the next transition (or until the schedule returns to the default mode).

To schedule a transition:

<Steps>
  <Step title="Pick the transition time (UTC)">
    Type the time of day into the `HH:MM` input — the dialog auto-inserts the colon as you type. Then pick the date from the 7-day MiniCalendar carousel below the input. Use the left and right chevrons to navigate the carousel one week at a time. The carousel only allows dates between **today** and **today + 30 days**; days outside that window are disabled.
  </Step>

  <Step title="Choose the target mode">
    Open the **Target mode** dropdown and pick any mode from the workspace catalog. CUSTOM is not selectable — CUSTOM windows can only be added via [AEM import](/features/attitude/ephemeris).
  </Step>

  <Step title="Configure free-drift dynamics (Free drift only)">
    If you pick **Free drift**, the dialog reveals an extra section for the torque-free dynamics needed to integrate the spacecraft's tumble. See [Free-Drift Dynamics](#free-drift-dynamics) below for the field reference.
  </Step>

  <Step title="Create the transition">
    Click **Create**. The dialog closes on success and the new row appears in the **Transition Schedule** card, sorted by transition time.
  </Step>
</Steps>

If the chosen time falls inside an existing AEM-imported CUSTOM window, the dialog stays open and surfaces an inline message naming the conflicting file and its time range — pick a different time, or delete the conflicting import first and retry.

To change a previously scheduled transition, open the row's actions menu and click **Edit**. The dialog re-opens with the existing values pre-filled and a **Update** button in place of **Create**. CUSTOM rows do not expose **Edit** because their times are bound to the AEM import.

## The Default Mode

Each spacecraft has exactly one **default attitude mode** — the orientation the spacecraft holds whenever no scheduled transition is active. The default is the fallback the schedule returns to between operations:

* **No transitions scheduled:** the spacecraft holds the default mode at all times.
* **One transition scheduled at time `T`:** the spacecraft holds the default before `T` and switches to the scheduled mode at `T`.
* **Multiple transitions:** the spacecraft switches at each transition time in order; the default fills any gap before the first transition.

You set and change the default from the **Attitude Modes** panel on the right of the page. Each mode card carries an actions menu — click **Set as default** on the mode you want to become the new fallback. The current default is marked with a **Default** badge. Selecting **Free drift** as default reveals the [free-drift dynamics form](#free-drift-dynamics) inline on the card.

<Note>
  Setting the default mode rewrites which mode is active **between** scheduled transitions. It does not modify the rows in your transition schedule.
</Note>

## CUSTOM Windows from AEM Imports

When you import a CCSDS AEM file from the attitude modes page header, every attitude sample window in the file is added to the **Transition Schedule** card as a **CUSTOM** row. CUSTOM rows coexist with manually scheduled transitions and are sequenced into the same chronological list using the file's `START_TIME` and `STOP_TIME`.

CUSTOM rows behave a little differently from manually scheduled transitions:

* The mode column displays **File Import** with a file-name badge instead of a regular mode name.
* The actions menu hides **Edit** — the time and duration of a CUSTOM window are fixed by the source AEM file.
* Clicking **Delete import** on a CUSTOM row opens a confirmation dialog that warns the deletion will remove both the AEM import and its associated transitions.
* New manually scheduled transitions cannot land inside an existing CUSTOM window. If the **Add Transition** dialog detects a collision, it surfaces an inline error naming the conflicting file.

For the full AEM ingest flow, supported file types, validation messages, and the export counterpart, see [Import & Export Attitude Ephemeris](/features/attitude/ephemeris).

## Free-Drift Dynamics

The **Free drift** mode disables active control and lets the spacecraft tumble under torque-free dynamics. Because two spacecraft running the same Free-drift mode have different inertias and different initial spin states, the physical inputs that drive the torque-free integration are configured **per spacecraft**, not per workspace mode.

The free-drift form is rendered inline in two places, with identical fields:

* Inside the **Add Transition** dialog, whenever you pick **Free drift** as the target mode of a scheduled transition.
* Inside the **Attitude Modes** panel on the right of the page, when you select **Set as default** on the **Free drift** card.

The form has three groups of three fields each:

| Group                            | Fields                                               | Unit                               |
| -------------------------------- | ---------------------------------------------------- | ---------------------------------- |
| **Principal Moments of Inertia** | Ixx, Iyy, Izz                                        | kg·m²                              |
| **Inertia Axis Assignments**     | Inertia axis Ixx, Inertia axis Iyy, Inertia axis Izz | Body axis (+X, -X, +Y, -Y, +Z, -Z) |
| **Initial Angular Velocity**     | ωx, ωy, ωz                                           | rad/s                              |

The three principal moments describe the spacecraft's resistance to rotation about its own inertia axes; the three axis assignments tell the platform which body face each principal moment is aligned with; the three initial angular velocity components seed the torque-free integration at the transition's start time. A footnote at the bottom of the form reads **Free drift is computed using torque-free dynamics**.

All nine values are validated as you edit, and the **Create**, **Update**, or **Set as Default** button stays disabled until every input is valid.

***

<CardGroup cols={2}>
  <Card title="Attitude modes overview" icon="compass" href="/features/attitude/overview">
    Understand attitude modes, body axes, target types, and the unified workspace catalog
  </Card>

  <Card title="Manage attitude modes" icon="sitemap" href="/features/attitude/modes">
    Browse, create, edit, and delete modes in the workspace catalog
  </Card>

  <Card title="Import and export AEM files" icon="file-export" href="/features/attitude/ephemeris">
    Exchange attitude ephemeris with external partners and tools
  </Card>

  <Card title="Visualize attitude" icon="chart-line" href="/features/attitude/visualization">
    Inspect quaternion and Euler angle plots over time
  </Card>
</CardGroup>
