> For the complete documentation index, see [llms.txt](https://docs.motorica.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.motorica.com/documentation/motion-factory/reference/pure-root-motion-format.md).

# Pure Root Motion Format

Pure Root Motion, captured from character movement or simulated, can be uploaded to the Trail Set Manager for creating custom Trails.

## Pure Root Motion

When uploading a JSON file to create a Trail in the Trail Set Manager, the JSON must be written in the compatible format.

### Format Definition

Pure Root Motion uses a flat array where **each 7 elements represents 1 frame**. It may look like this:

In this order, each element within a set of 7 represents:

1. X Position
2. Y Position
3. Z Position
4. Quaternion W
5. Quaternion X
6. Quaternion Y
7. Quaternion Z

```
[Px1, Py1, Pz1, Qw1, Qx1, Qy1, Qz1, Px2, Py2, Pz2, Qw2, Qx2, Qy2, Qz2, ... ]
```

<details>

<summary>Example</summary>

```json
[0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,2.0,1.0,0.0,0.0,0.0, ...]
```

</details>

{% hint style="info" %}
Motion Factory uses a right-handed Y-Up Axis:&#x20;

* X is left
* Y is up
* Z is forward.

<p align="center"><img src="https://3701240830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fd4XRcFZ7K0KOxbfN13Yz%2Fuploads%2FTnSLj1toi7PRnKPUAnoF%2Faxes.png?alt=media&amp;token=73bbb4af-d1dd-4252-98c1-db114718a154" alt="A circle with different colored circles placed inside, representing X, Y, and Z bubbles in an invisible 3D plane." data-size="original"></p>
{% endhint %}

### Frame Rate

Root motion is locked to 30 fps, and any uploaded root motion paths will cause artefacts.

#### Recording at Runtime

If recording at runtime, we recommend plotting recorded values to a curve and then resampling at a constant 30 fps due to the uncertainty of frame interval&#x73;**.** You can then record at a higher frame rate and downsample the root motion to the JSON file before uploading.

#### Simulating paths

If simulating paths, you must simulate with an exact delta for 30 fps (0.33333 seconds).
