# Roto

> In the Viewer pick Bezier or B-spline (V), click points (drag = smooth tangent), click the first point or Enter to close.

In the Viewer pick Bezier or B-spline (V), click points (drag = smooth tangent), click the first point or Enter to close. Q = select; drag points / tangents (Ctrl = break); Ctrl+drag a point = feather; Ctrl+Alt+click a curve adds a point; Z / Shift+Z smooth / cusp; E / Shift+E feather; Delete removes points. With autokey on, every edit keys the whole shape on this frame. Import from mask turns a matte (e.g. an AIRoto layer on the input) into animated shapes. A shape can have a lifetime (it shows only between two frames). Shapes, strokes, layer and shape transforms and attributes from a .nk script import with the node.

| Node | Roto |
|---|---|
| Menu | Draw › Roto |
| **Names in each format** | |
| .oink comp (JSON) | `"type": "OC_N_roto"` |
| .nk script | `Roto` ([how .nk import works](/docs/nuke-users/nk-import)) |
| Python | `nuke.createNode("Roto")` |
| Assistant (MCP) | `create_node(type="Roto")` |
| Tab search | `roto` |

![Roto properties](/shots/nodes/roto@2x.webp)

## Inputs and outputs

| Port | Name | Type |
|---|---|---|
| input 0 | Source | image |
| output 0 | Mask | image |

## Knobs

Panel tab **Roto**, in panel order.

| Knob | Label | Type | Default | Range / values | .nk knob | Description |
|---|---|---|---|---|---|---|
| `output` | output | text | `alpha` |  | `output` | alpha, rgb, rgba, <layer> or <layer>.<channel> |
| `premultiply` | premultiply | menu | `none` | none, rgba | `premultiply` |  |
| `replace` | replace | bool | `false` |  | `replace` | Clear the output channels before drawing the shapes |
| `autokey` | autokey | bool | `true` |  |  | Editing a shape sets a key on the current frame |
| `shutter` | shutter | float | `0.5` | 0 to 2 |  |  |
| `shutter_offset` | shutter offset | menu | `CENTRED` | START (start), CENTRED (centred), END (end) |  |  |
| `motionblur_samples` | mblur samples | float | `8` | 2 to 64 (integer) |  |  |
| `output_width` | format w | float | `0` | 0 to 16384 (integer) |  | Format when nothing is connected (0 = project format) |
| `output_height` | format h | float | `0` | 0 to 16384 (integer) |  |  |

### Other knobs (Python, .nk and the assistant; not on the panel)

| Knob | Label | Type | Default | Range / values | .nk knob | Description |
|---|---|---|---|---|---|---|
| `gl_color` | Viewer Controls Color | float ×3 | `0, 0, 0` | 0 to 1 |  |  |
| `postage_stamp_frame` | Static Frame | int | `1` | -2147483648 to 2147483647 |  |  |
| `lifetimeStart` | Lifetime Start | int | `0` | -2147483648 to 2147483647 |  |  |
| `lifetimeEnd` | Lifetime End | int | `100` | -2147483648 to 2147483647 |  |  |
| `useLifetime` | Use Lifetime | boolean | `false` |  |  |  |
| `cached` | Cached | boolean | `false` |  |  |  |
| `bookmark` | Bookmark | boolean | `false` |  |  |  |
| `dope_sheet` | Dope Sheet | boolean | `false` |  |  |  |
| `clone_group` | Clone Group | string |  |  |  |  |
| `link_source` | Link Source | string |  |  |  |  |
| `link_overrides` | Link Overrides | string |  |  |  |  |
| `split_views` | Split Views | string |  |  |  |  |
| `roto_data` | Shapes | string |  |  |  |  |
| `smart_data` | Smart Roto | string |  |  |  |  |


---
Sources: opencomp_core/nodes/draw/roto.py, opencomp_electron/src/components/properties/knobSchema.ts, opencomp_core/nodes/help/roto.md, opencomp_core/nk/mapping.py
