> For the complete documentation index, see [llms.txt](https://stage-precision.gitbook.io/grid/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stage-precision.gitbook.io/grid/timeline/layer-types/curve-layer.md).

# Curve Layer

Link parameters to a Curve Layer and create detailed Keyframe animations using linear, hold, and editable Bezier curves with precise value and timing control.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FwInFkfoG1fXT0Yabidbs%2Fimage.png?alt=media&amp;token=e7d02084-5620-43b8-8c40-5f57674cfe65" alt=""><figcaption></figcaption></figure>

The **Curve Layer** is designed for detailed value animation using Keyframes and editable animation curves.

Unlike the Parameter Layer, which is primarily intended for object-based recording, the Curve Layer is optimized for manually creating and shaping parameter animations.

Any compatible parameter can be linked directly to the Curve Layer and animated over time.

***

## Adding Parameters

Drag a parameter directly onto the **Curve Layer** to add it.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FlVbFWa157wf1pYFVIZRT%2FLuj1OEH41m.gif?alt=media&amp;token=0e413dae-01e2-48ff-9a2a-dc6e9c947949" alt=""><figcaption></figcaption></figure>

The parameter then becomes available as a Curve that can be animated with Keyframes.

### Multi-Component Parameters

Parameters containing multiple components are automatically split into separate Curves.

For example, adding a **Position** parameter creates individual Curves for:

* X
* Y
* Z

Each component can be animated independently with its own Keyframes and Curve settings.

Multiple parameters can be added to the same Curve Layer.

### Removing Parameters

A linked parameter or Curve can be removed by:

* using **Right Click → Remove**
* selecting the Curve entry and pressing **DEL**

Removing a Curve removes it from the Curve Layer.

***

## Curve Blocks

Adding a parameter to the Curve Layer makes the Curve available, but Keyframes require a **Curve Block**.

Double-click inside the Timeline area of the Curve Layer to create a new Curve Block.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FKrL1u9vNVHnIZdziC7ig%2FPowerToys_Lsf4RauRql.gif?alt=media&amp;token=c23ce433-ec9f-49b9-8c3b-3f666156f2e2" alt=""><figcaption></figcaption></figure>

A Curve Layer can contain multiple separate Curve Blocks.

Curve Blocks within the same Curve Layer **cannot overlap in time**.

For general information about moving, resizing, locking, and editing Timeline Items, see **Working with Layer Items**.

### Active Range

The Curve Layer only controls its linked parameters while the Playhead is inside a Curve Block.

Outside a Curve Block, the Timeline does not manipulate those parameters.

If the Playhead jumps or seeks directly into a Curve Block, the linked parameters are immediately set to the Curve values at that Timeline position.

***

## Creating Keyframes

There are several ways to create Keys inside a Curve Block.

### Key

Each Curve provides a **Key** button.

Clicking it creates a Key at the current **Playhead position** using the current value of the linked Target parameter.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FdhyH3PrWQgv3fLLQdmDK%2FsBtt7CHR3E.gif?alt=media&amp;token=893abc92-f49c-447a-954e-2394bfc6000d" alt=""><figcaption></figcaption></figure>

### Key All Curves

**Key All Curves** creates a Key for every Curve in the Layer at the current Playhead position.

Each Key uses the current value of its corresponding Target parameter.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2Fpi6fvAgratgZP7MRLW8k%2FXcnu2Sf5M9.gif?alt=media&amp;token=e793dba1-a17c-4c2c-900e-bebd159ca5af" alt=""><figcaption></figcaption></figure>

### Double-Click in the Curve Editor

Double-click directly in the Curve Editor to create a Key at the clicked position.

Unlike the **Key** button, this uses the exact **time and value position** where you clicked in the graph.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FB7qzrtD5m1JRf861JTMQ%2FOinXTxM8im.gif?alt=media&amp;token=c43583a6-eb9c-4150-82b4-58a4bfbe9990" alt=""><figcaption></figcaption></figure>

***

## Selecting and Editing Keys

Individual Keys can be selected by clicking them directly.

You can also drag a **selection rectangle** around one or multiple Keys.

When a single Key is selected, its exact:

* **Time**
* **Value**

can be edited in the Inspector.

Keys can also be moved directly in the Curve Editor using drag and drop.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FBBeoL5i5jt1MdDiozxk3%2FiZ3iZmEuZa.gif?alt=media&amp;token=a4a04587-9180-4bde-a652-55d82581a1d6" alt=""><figcaption></figcaption></figure>

### Selecting Multiple Keys

Drag a selection rectangle around multiple Keys to select them together.

Dragging one of the selected Keys moves the complete selection while preserving the relative time and value offsets between the Keys.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FMEO2FFuSVEz3aUHwbYhA%2FkVNGxzQ9ZN.gif?alt=media&amp;token=46335394-4a49-44f8-94e4-44c259431f9e" alt=""><figcaption></figcaption></figure>

### Duplicating Keys

Select one or multiple Keys and press:

**CTRL + D**

The duplicated Keys are created at the same positions as the originals.

They can then be moved to new positions.

### Deleting Keys

Select one or multiple Keys and press:

**DEL**

to remove the complete selection.

***

## Curve Interpolation

The Curve Layer provides different interpolation modes for defining how values change between Keyframes.

The selected interpolation applies to the Curve segment following the Key.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FCafhaY0T8EjO6577x8OF%2FEuL66ATXRZ.gif?alt=media&amp;token=d78c2b87-cda6-479f-b6d3-2f5c2b570237" alt=""><figcaption></figcaption></figure>

### Linear

**Linear** creates a straight interpolation between two Keyframes.

The value changes continuously at a constant rate between both Keys.

### Bezier

**Bezier** provides editable handles for shaping the transition between Keys.

The handles can be grabbed and moved directly with the mouse, allowing precise control over acceleration, deceleration, overshoot, and other Curve shapes.

### Hold

**Hold** keeps the current Key value until the next Key is reached instead of interpolating continuously.

***

## Bezier Editing

Bezier Keys provide additional tools for quickly shaping their handles.

### Smooth

**Smooth** is not a separate interpolation mode.

It automatically adjusts the Bezier handles to create a clean and smooth Curve through the selected Key.

### Flatten Handles

**Flatten handles** sets the Bezier handles of the selected Key to a horizontal tangent.

The handles can still be adjusted manually afterwards.

***

## Curve Visibility

Each Curve provides a **Show Curve** option.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FoJImPn3z7wTUoHDkYhf4%2FRBh55yvYFw.gif?alt=media&amp;token=5fb926b3-0612-4d2e-8780-7c5273b62e0d" alt=""><figcaption></figcaption></figure>

Disabling Show Curve hides the Curve from the Curve Editor.

This only changes its visibility in the editor. The Curve continues to control its linked parameter during Timeline playback.

***

## Curve Color

Each Curve has its own **Curve Color**.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2F69iQH7bDMEjNdf2G94IP%2F33ZGmU7NRG.gif?alt=media&amp;token=dad71fc8-f4b3-44c5-be05-63640d936dad" alt=""><figcaption></figcaption></figure>

This color is used only for displaying the Curve inside the Curve Editor and has no effect on the parameter value or Timeline playback.

Using different Curve colors can make it easier to distinguish multiple parameters or components when several Curves are displayed at the same time.

***

## Curve Editor View Range

The Curve Editor has its own vertical value range.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2Ftslwp20A4MMSsJWBOzu9%2FRZ2iJS5yI9.gif?alt=media&amp;token=22cf5832-150a-4970-b2ca-ac7f5fdd3d8a" alt=""><figcaption></figcaption></figure>

### View Min and View Max

**View Min** and **View Max** define which value range is currently visible vertically in the Curve Editor.

These settings only affect the editor view.

They do **not** limit or clamp the actual parameter or Keyframe values.

### Automatic Curve Framing

The controls next to the individual Curve entries can automatically adjust the visible value range based on the existing Keyframe values.

This makes it easy to frame a specific Curve without manually entering View Min and View Max values.

### Frame All Curves

**Frame All Curves** automatically adjusts the Curve Editor view so that all currently visible Curves and their Keyframes fit within the editor.

***

## Keyframe Navigation

The Curve Layer provides two navigation controls for quickly moving between Keyframes.

* **Previous Keyframe** moves the Playhead to the previous Keyframe.
* **Next Keyframe** moves the Playhead to the next Keyframe.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FgC8CJAHPWG2pMPaq3vqm%2FreWnWZx8xV.gif?alt=media&amp;token=7186ecc6-c3bf-4d5b-9378-17191f76ae91" alt=""><figcaption></figcaption></figure>

This makes it easy to step through existing Keys without manually positioning the Playhead on each Keyframe.
