On this page

The graph view lets you view and edit animated parameters as graphs of their values over time. It is one view of the animation editor. You can also use the table view and the dopesheet view to edit animation. To switch between these views, use the buttons in the top left corner of the pane.

A channel contains a series of segments. Each segment has two end points. Each endpoint is at a key and has the following properties: value, slope, and acceleration. The segment as a whole also has a segment function associated with it and, depending on what it is, will use any number of the properties at the end points. For example, the constant() segment function uses the “value” of the first end point only, while the bezier segment function uses all three (slope, acceleration, and value) at each end.

Adding and deleting keys

To...Do this

Add a key

  • Click the graph with Alt + LMB to create a new keyframe at that frame. This will only work when adding keyframes to existing channels. You can also hold the button down and drag the insertion point along the curve, allowing more accurate positioning. If a key already exists on a selected channel, this will not create a duplicate key.

  • ⌃ Ctrl + K with mouse over the graph adds a keyframe for the selected channels.

  • K or LMB on the playbar keyframe button adds a keyframes based on the Global Set Key animation preference.

  • Alt + LMB on a parameter edit box adds a keyframe as well, but only for the selected boxes.

  • RMB on the graph and select Set Keyframe at Current Time.

  • RMB on a parameter and select Keyframes ▸ Set Keyframe.

Remove a key

  • Select the key handle and press ⌦ Del.

  • RMB on the graph and select Delete.

  • RMB on a parameter and select Keyframes > Remove Keyframe.

Editing curves

The following illustration shows the handles at each keyframe. The handles correspond to the text boxes at the bottom of the graph (Value, Frame, Slope, and Accel), allowing you to set them to exact numbers. (Some indicators may only appear on the selected key.)

You can select a segment and choose the “segment function” to control how Houdini connects the two ends of the segment.

You can use automatic or manual control of slope, and tie or untie value, slope, and/or acceleration at each keyframe.

To...Do this

Change the shape of a graph segment

  1. Select the segment you want to change.

    If segments are drawn as dashed lines, turn on the “functions” icon on the toolbar to the left of the graph to make segments selectable.

  2. Choose a function from the pop-up menu at the right end of the Function text box below the graph, or type a custom expression into the Function box directly.

    You can also change the shape of the graph segment by clicking the desired function button on the Functions toolbar.

  3. Use the handles (if any) on the selected keys in the graph view to adjust the shape of the curve. Press Y to switch to a scale handle.

    For the cubic, bezier, and quintic functions, you can adjust the shape of the curve by dragging the slope handles on keyframes, or by clicking the handle and typing a value in the Slope text box.

    For the bezier and quintic functions, you can also drag the round acceleration handles at the end of the slop handles, or by clicking the handle and typing a value in the Accel. text box.

    You can also type exact numbers for the selected handle in the Slope, Accel. (acceleration), and Value text boxes below the graph.

Move a keyframe in time

Drag the short vertical line that runs through a value handle left or right to move the keyframe.

Time values on the graph have a dashed line under them. When you turn on the Snap to Frame option, keys will move to the nearest frame time when you finish dragging.

Quickly edit curve slopes

Select a keyframe and press 0 to zero the slope, or 9 to make the slope tangent.

“Hold” a value

Select the keyframe and use Alt + C or ⌃ Ctrl + C to copy it, move along the timeline, and use Alt + P or ⌃ Ctrl + P to paste a copy of it.

Change a value at a keyframe

Drag a keyframe handle up or down.

Click a keyframe handle and enter an exact number in the Value field below the graph and press Enter.

Change multiple values at once

Use ⇧ Shift + LMB to select multiple handles, or drag a marquee around the handles you want to select. The you can drag one selected handle to move them all.

If you select more than one value, the Value field shows ---. Edit the field to set all selected values at once.

Move a key in X and Y and the same time

Hold ⌃ Ctrl and drag the value handle.

Only affect the acceleration and keep the slope orientation intact

Hold ⌃ Ctrl and drag the acceleration handle.

Select all of the same type of handles on a channel

Double-click the handle.

Add all of the same type of handles to the existing selection

⇧ Shift double-click the handle.


⌃ Ctrl + ⇧ Shift double-click will remove of the same type of handles from the selection.

Add handles to a box selection

Hold ⇧ Shift and drag LMB.


⌃ Ctrl + ⇧ Shift and drag LMB will remove handles.

Gear menu

To access the following menus, click the gear menu on the top right corner of the Channel graph. You can also access these menus by clicking RMB in the graph, or by turning on Show Menu Bar in the View menu.

Channels menu

When a channel is displayed, it means that it is visible for viewing/editing in the animation editor’s graph, table, and dopesheet panes.

Set Keyframes at Current Time

Adds keyframes to the channels at the current time.

Sample Values at Current Time

Copies the values of the parameters at the current time to the clipboard. Move to a different time and choose Paste sampled values at current time to use the same values at another frame.

Paste Sampled Values at Current Time

Pastes values copied with Sample values at current time.

Import Channels

Opens a dialog to load previously saved animation data from Export Channels into the parameters that are currently displayed.

Export Channels

Opens a dialog that allows you to save the data from the displayed channels.

Edit Channel Properties

Brings up a window that allows you to set various properties of the selected channels, including the channel alias, the channel behavior before the first segment and after the last segment, the auto-key and auto-select flags, and the channel colors displayed in the graph.

Isolate Channels (Only Display Selected Channels)

Displays only the channels with selected keys/handles.

First select any keys/handles in the graph. Then select Isolate Channels or press lowercase I while hovering over the graph to display only the channels with the selected keys/handles. These channels will also show as selected in the channel list (parameters will be highlighted orange).

You can further isolate channels by selecting any keys/handles from the already isolated list of channels, and pressing lowercase I again.

Revert Isolate Channels reverses the actions of Isolate Channels. Selecting and deselecting channels using Isolate Channels and Revert Isolate Channels acts as a stack (see Revert Isolate Channels below).

Revert Isolate Channels

Reverses the actions of Isolate Channels. You can also perform this action by pressing SHIFT + I while hovering over the graph.

Selecting and deselecting channels using Isolate Channels and Revert Isolate Channels acts as a stack. For example:

  1. Start with 9 channels displayed in the graph.

  2. Isolate 4 channels by selecting the keys/handles from 4 channels and pressing I. Only the 4 channels will be displayed.

  3. Further isolate 1 channel by selecting the keys/handles from one of the remaining 4 channels, and pressing I. Only the 1 channel will be displayed.

  4. Revert isolate channels by pressing SHIFT + I. 4 channels will be displayed.

  5. Revert isolate channels again by pressing SHIFT + I. The original 9 channels will be displayed.

Edit menu


Cuts, Copies, or Pastes all selected handles using the Paste Settings.

Paste Settings

Channel copy and paste works by storing the selected channel handles in a temporary file. The animated range, channels names, full paths, and row order based on the currently displayed channels are also stored in file. This information can be used to perform a mapping between the copied channel list and the target channel list.

Using Channel Names

Channel mapping is performed based on channel names. This works well to transfer animation from 2 nodes of the same type with the same parameter layout.


Use this with caution when copying multiple transform nodes at the same time, as it will only paste the first occurrence of the channel name.

Using Full Paths

Channel mapping is performed based on full paths. This works well when doing copy/paste to and from the same channels. It will behave correctly even if the list of channels is changing. This mode won’t allow copy/paste to be used to transfer animation from different channels.

Using Row Order

Channel mapping is performed using the row order in the displayed channels at the moment of the copy operation and the row order at the moment of the paste operation. It counts parameters without valid channels to make it possible to copy/paste to a node without any channels, or a node with a different set of channels.

At Current Time

Paste the copied handles after at the current time.

At Original Time

Paste the copied handles at their original time.

On Parameters with Existing Channels

Paste only on parameters with existing channels.

On All Parameters

Paste on all the displayed parameters creating missing channels.


Deletes selected channels.

Select All Handles

Selects all the handles on the displayed channels.

Select No Handles

Clear the handle selection.

Invert Handle Selection

Selected handles become unselected. Unselected handles become selected.

Snap Selected Keys to Nearest Frame

Each selected key, is rounded in time to the nearest integer frame.


Tie locks the left and right channels together (changing one changes the other). When channels are untied, you can alter the left and right channels independently.

Set Selection to Default Values

Sets the values of the selected keys to their default values. The actual values depend on the parameter of the channels.

Set Selection Slopes to Zero

Sets the selected slopes to have a value of 0 (ie. flat horizontally).

Set Selected Slopes to Manual/Automatic/Toggle Selected Slopes Mode

This controls the new Automatic Slope flag on in and out slopes. When the auto slope flag is Automatic, moving a keyframe value or time will affect the tangent and will keep it smooth. When the auto slope flag is Manual, the slopes will keep the same orientation when moving keyframes.


Keyframes with their slopes set to automatic are drawn as diamonds.

Smooth Selected Slopes

Sets the value of the selected slopes so that there is no overshoot. The slopes of keys on the channel for which it is a local minimum/maximum will be set to 0, while all other slopes will be given an approximate value that will result in a smooth transition between its adjacent keys. Smoothing also normalizes the acceleration values.

Set Selected Segments to…

Allows you to change the segment function. See the Function field section for more information.

Filter Euler Rotations of Selected Channels

The Euler filter fixes bad rotation interpolations that happen when animating rotations using Euler angles over large angles. A common issue is the rotation flipping the wrong way between the keyframes.

To apply the filter, select any handles on all 3 rotation channels and apply the filter. The filtering operation is applied to all the channels that have a selected handle and it affects the whole channel. The Rotation Order on the object node affects the filtering operation.

The filter should only be used on rotation channels. Rotations from multiple objects can be filtered at the same time.

Match Keyframes of Selected Timemarks

Creates missing keyframes on channels based of selected time marks. This ensures the channels have matching keyframes within the selection.

Bake Keyframes of Selected Segments

Shows a modal dialog with options to perform a cubic() curve refiting and resampling on the selected segments. Resampling allows segment expressions and CHOP exports to be baked to keyframes. Channel extrapolation (cycles, cycle offset) can be baked to keyframes, if you provide a range that is outside the channel first and last keyframe.

Enable Refit Segments

Enable/disable the refitting. Refiting reduces the number of keyframes while trying to keep the same curve shape.

Refit Preserve Extremas

Preserves the local minimas and maximas.

Refit Set Bezier function on segments

Even if the refitting creates cubic curves, this forces the segments to be bezier segments.

Refit Tolerance

The tolerance used to merge keyframe values. It is an absolute value and should be picked based on the actual keyframe values.

Enable Resample Segments

Enable/disable the resampling. Resampling adds keyframes without changing the curve’s shape.

Resample at every (frame)

Adds keyframes at every n frame or fractional frame.

Resample Tolerance

Tolerance used to merge keyframes while resampling.

Enable Override Range of Selected Segments

Enable/disable the explict range. If disabled, the channel ranges comes from the selected segments. If enabled, the channel range is overriden by the start and end values. This is useful to bake channel extrapolation, CHOP exports and expressions.

Start/End frames

Defines the start and end frame range to use when Enable Override Range of Selected Segments is checked.

Bake CHOP Exports to Channels

Defines what to do when a parameter is driven by a CHOP export.


Don’t bake CHOP exports.

Bake, Keep Export Flags

Perform the baking but leave the CHOP export flag in place. The parameter will still be driven by the CHOP export, but the baked animation will be present on the channel.

Bake, Disable Export Flags

Perform the baking and disable the CHOP export flags on all the CHOP nodes. This doesn’t take into account the possibly that the CHOP nodes can be exporting to other parameters. Use it only when you know you are baking all the channels exported from a CHOP node.

Bake Create Delete CHOPs and Move Export Flags

Perform the baking and create Delete CHOP nodes to disable the exported channels individually.

View menu

Home Channels (Current Graph/All Graphs)

Pans and zooms the graph to show all keys in the current graph or all graphs.

Home Playback Range (All Graphs)

Zooms the graphs to the playback range. The playback range is the range between the Start Frame and End Frame.

Home Global Range (All Graphs)

Adjusts the zoom of all the channel graphs to show the .hip file’s global animation range.

Frame Selection

Adjusts the zoom of the channel graph to show only the selected keys.

Horizontal/Vertical Adapt

When these checkboxes are turned on, the graph automatically pans and zooms to keep all horizontal and/or vertical values visible.

Show Values

Show or hide handles at keyframes. You can drag the handles to change the parameter value at that keyframe. If the values at the key are tied together, the handle is a box, otherwise it is two independent triangles.

Show Time Marks

Show or hide short vertical lines indicating keyframes. You can drag the keyframe lines left or right to move the keyframe in time.

Show Slopes and Acceleration

Show or hide short lines indicating the slope and acceleration of segments as they enter and leave a keyframe. You can drag the slope lines and/or acceleration handles to change the shape of the segment (for segments controlled by functions that use slopes and/or acceleration).

Show Functions

Allow or disallow selection of segments so you can change the function that controls their shape.

Show Time Groups

Show or hide time groups. The time group is displayed as a vertical yellow line. Handles that belong to the time group have a dotted yellow line connected them. Dragging the time group line left or right moves the grouped keyframes in time.

Show Time Bar

Displays a vertical line on the graph which indicates the current frame.

Show Box Handles

Displays handles that let you translate and scale blocks of keys. You can also turn this on by selecting a group of keys in the Channel Graph an pressing Y.

You can drag the edges of the box to translate the group of keyframes from side to side or up and down. The axis is locked, so you can only move the keyframes in one direction at a time. To move in both axes together, hold ⇧ Shift when dragging the edges of the box.

To scale, select and drag a corner of the box.

Show Box Handle Pivot

Displays a pivot handle at the center your box handle. You can also turn this on by clicking ⇧ Shift + Y in the Channel Graph. Any scaling will be done around the pivot location.

To move your pivot, simply drag it to another location. To move it back to the center, click ⇧ Shift + Y + Y. This will turn the pivot off and then on again, moving it back to the center.

Show Handles

Choose whether all handles or selected handles are displayed on the graph, or turn all handles off.

Show Full Channel Names

Displays the full name of the channel in the graph. For example: box_object1/tx, box_object1/ty, box_object1/tz.

Show Channel Names

Displays the name of the channel in the graph. For example: tx, ty, tz.

Show Times for Selected Marks

Displays the frame number for selected marks.

Show Values for Selected Keys

Displays the graph value for selected keys.

Show Only Attached Time Groups

When this option is on, the graph only shows time groups which have visible keyframes attached.

Draw Past Channel Ends

Draws a horizontal dotted line after the end of the last keyframe.

Show Color Mode Field

If you have scripted a custom coloring scheme using hou.ChannelEditorPane.registerColorsCallback, you can turn on this menu to select it.

Show Channel Lister

Displays the channel lister on the left side of the animation editor. You must have this checkbox enabled to see the group list, channel chooser, and parameters.

Show Channel Chooser

Displays the channel chooser in the channel lister on the left side of the animation editor.

Show Group List

Displays the group list in the channel lister on the left side of the animation editor. The group list shows all channel groups.

Show Layers

Displays the Animation Layer Editor in the left pane.

Show Menu Bar

Allows you to see the menu bar at the top of the pane. These options are also available in the gear menu.

Show Bottom Values Toolbar/Top Timeline/Right Toolbar

Allows you to hide the toolbars from the display. These are on by default.

Snapshots menu

Enable Channel Snapshot

Creates a temporary channel copy every time the keyframe animation changes. This can be used to quickly revert a keyframe animation to its previous state.

Persistent Channel Snapshot

Keeps the snapshot when the channel editor refreshes to show new channels.

Revert Active Channels to Snapshot

Returns the keyframe animation to its snapshot state.

Swap Active Channels and Snapshots

Interchanges the keyframe animation and the snapshot state.

Clear Channel Snapshot

Clears the snapshot or accepts the modification.

Time Group menu

A time group is a collection of keys. A time group makes it easy to move keys through time together.

To...Do this

Group keys together in a time group

  1. Select the keys.

  2. In the pane menus choose Time Group ▸ Create Time Group on Selected Keys.

Add keys to an existing time group

  1. Select the keys.

  2. Shift-select the time group line.

  3. Choose Time Group ▸ Attach/Detach Selected Keys

Move the keys in a time group together

  • Drag the yellow time group line left or right.

Move the time group line without moving the keys

  • Drag the time group line with MMB.

Delete a time group

  1. Click the yellow time group line.

  2. Press ⌦ Del.

Settings menu

Show Audio in Timeline

If enabled, a graphical representation will be shown in the bottom portion of the channel graph of the currently loaded audio source.

Synchronize Group Selection From Channel List

Adjusts the channel group selection to match the current channels.

Grid Line Density

Choose the density of the grid or turn the grid off.

Slope Handle Length

Allows you to set the length of the slope handle in the channel graph. The preset lengths are short, medium, and long; however, you can also set a custom length by choosing Custom.

Curve Quality

Choose the accuracy of the curves. Lower levels of detail can be faster for very complex graphs. Minimum detail does not draw curves, just lines connecting keyframes.

Add Keys

Customizes the behavior in the channel graph when Alt + LMB is used to create keys. If set to At Mouse Click Position, the new key on the channel will be created at the value where the mouse is in the graph. If set to At Curve Value, the key is created at the current value of the channel.

Auto-Smooth Slopes

Choose if and when you want your slopes to be automatically smoothed. Smoothing also normalizes the acceleration values.

Toggle Auto-Slope Mode Preference

Toggles the auto slope preference, which defines the auto slope flag of new slopes when creating keyframes.

Snap Moved Keys to Nearest Frame

If enabled, moving keys in the channel graph will ensure that they are always moved to an integer frame value in time.

Snap Scaled Keys to Nearest Frame

If enabled, scaling keys in the channel graph (ie. using the scale handle) will ensure that they are always moved to an integer frame value in time.

Bold Non-Integer Keys

If enabled, keys at non-integer frame values in time will be drawn in bold and white.

Reset Channels Settings

Resets all channel settings to their factory default settings.

Edit fields


The frame number of the selected key or time group. If more than one key or time group is selected, the field displays ---, and editing the field sets the value for all selected keys.


The numeric representation of the selected key’s in or out value.


The slope of the selected key’s in or out line. This is only valid for functions such as cubic that use slope values.


The acceleration of the selected key’s in or out line. This is only valid for functions such as bezier that use acceleration values.


You can do simple addition, multiplication, and division on the current value of the field. Replace the current value with, for example:

+ 1.25

…and press Enter. Use * for multiplication and / for division. To subtract, add a negative number, for example:

+ -0.5

Function field

A segment’s function controls how Houdini interpolates between keyframes.

Choose a function from the pop-up menu at the right end of the text box, or type an expression function directly in the text box.

Function Effect


Uses the in value for the entire segment, and jumps to the out value at the end.


Generates a straight line between the in and out values, animating the value with uniform speed along the segment.


Generates motion that gently accelerates the value at the beginning of the segment and decelerates it at the end. The value starts the animation at rest and ends at rest.


Generates motion that gently accelerates the value from rest at the beginning of the segment and continues accelerating until the end.


Generates motion that gently decelerates the value to rest at the end of the segment.

easep(2) easeinp(2) easeoutp(2)

These are fundamentally the same as the ease functions, but are raised to the power 2, resulting in steeper slopes.

You can manually change the power in the Function text box (for example, to 3, 4, 5, etc.) to further steepen the curve.


Makes the slope of the out curve equal to the slope of the in curve.

In the example above, the segment to the right of the key used a Cubic interpolation function. After selecting it and altering its interpolation type to Match, its slope adjusted to match the slope of the curve segment to the left of the key.

matchin, matchout, vmatch

See the expression reference pages for these functions.


Gives you control over the in and out slopes.


Gives you control over the in and out slope and acceleration.


Like the bezier function, but uses a higher-order curve.



Generates a spherical linear interpolation in quaternion space between the in and out values. This is the default for rotation channels.

This function is intended for rotation channels. Make sure all three rotation channels use qlinear() and all have keys in the same frames.

Segments with quaternion interpolation will display as straight lines in the graph editor, because their intermediate values expressed as euler angles are mostly meaningless. If you're curious you can use the expression qlinear() + 0 to fool the graph editor into showing the actual values.

To perform a quaternion based interpolation between two key frames, the qlinear() function needs to know the three euler angles. It does this by figuring out what the neighboring channels are. This is accomplishes this through the heuristic of looking for channels ending with x, y, or z, or by looking for channels ending with a number. Thus, “rx ry rz” will be one group, and “test0 test1 test2” would be another.