Maya VFX Pipeline Tool // Documentation

SPEED.SYS  //  FORENSICS_CLIPBOARD

Version 11  |  Aaron Stewart  |  Real-time Speed Measurement & Motion Trail

01   -   Annotated UI Overview All controls labelled. Hover a callout number to highlight it.
  • 1
    PEAK_INCIDENT_LOG - Header

    Identifies the log panel. All speed events are recorded here automatically.

  • 2
    Log Entry Area

    Shows timestamped events: KEY frames (speed at keyframes) and !! PEAK EXCEEDED alerts when over the limit.

  • 3
    COPY_LOG_DATA

    Copies all log entries to your clipboard. Paste into shot notes, a spreadsheet, or an email.

  • 4
    WIPE_LOG

    Clears the log panel. Has no effect on the Maya scene.

  • 5
    Speedometer Dial

    Real-time circular gauge showing current speed. Turns red and shakes when over the limit.

  • 6
    Speed Limit Marker

    The small red tick on the arc shows exactly where your LIMIT threshold sits.

  • 7
    Telemetry Wave

    Scrolling oscilloscope of the last ~80 speed samples. Shows speed history at a glance.

  • 8
    CAT - Category Selector

    Choose between METRIC, IMPERIAL, NAUTICAL, or ROTATION measurement systems.

  • 9
    LIMIT - Speed Threshold

    Set the maximum acceptable speed. Breaches trigger the log and the red alert dial.

  • 10
    Sub-Unit Selector (Meters/s)

    Picks the specific unit within the category. Options change based on CAT selection.

  • 11
    ATTACH SIGNAL / LOCKED: CAMERA1

    Select an object in Maya then click this to attach it. Turns green showing the object name. Click with nothing selected to detach.

  • 12
    HUD: ACTIVE / HUD: OFF

    Toggles a Maya viewport overlay showing the live speed value. Shows "!! WARN !!" when over the limit.

  • 13
    TRAIL: ON / TRAIL: OFF

    Toggles the motion trail. ON expands the settings panel below and builds the trail in-scene. OFF deletes all trail nodes and collapses the panel.

  • 14
    Full Timeline (checkbox)

    When ticked, automatically calculates the number of locators needed to cover your full Maya playback range. Disables the manual Count spinner.

  • 15
    Timeline Info Label

    Shows the computed result: e.g. "Timeline: 1-120 (119 frames @ step 1.00) Past: 8 | Future: 111 locators"

  • 16
    Count

    Number of locators per side (past and future) when Full Timeline is off. Range 1 - 1000. Requires Rebuild Trail.

  • 17
    Offset

    Frame gap between each locator. 1.0 = every frame. 2.0 = every other frame. Requires Rebuild Trail.

  • 18
    Scale

    Base display size of each locator cross in the viewport. Updates live.

  • 19
    Heat Sens (Heat Sensitivity)

    How much speed variation is needed to shift the colour. Lower = more sensitive. Updates live.

  • 20
    Size Boost

    How much hotter locators grow in size. 0 = all same size. 8.5 = hot locators are ~10× bigger. Updates live.

  • 21
    Heat Mode

    Acceleration = colour based on rate of speed change. Speed = colour based on absolute speed vs average. Updates live.

  • 22
    Match Orientation

    When ticked, each locator also shows the object's rotation at that frame - useful for cameras and directional props.

  • 23
    Hide on Playback

    Hides all trail nodes during playback and playblast so they don't appear in renders. Reappear when playback stops.

  • 24
    REBUILD TRAIL

    Deletes and recreates the trail with current settings. Required after changing Count, Offset, or timeline range.

  • 25
    DRIVE .speed_LIVE CHANNEL

    Adds a live-driven speed_LIVE attribute to the target object, connectable to anything else in Maya.

  • 26
    AUTO_SPIN EXPRESSION

    Select wheel objects, then click. Creates a Maya expression driving rotateX based on the target's speed - physically correct wheel rotation.

02   -   Peak Incident Log Callouts 1 - 4
What is it?

The log panel automatically records speed events as you scrub or play your animation. No manual action required.

KEY entries

Any time the playhead lands on a keyframe of the tracked object, the current speed is recorded:

[17:47:00] FRAME 31: KEY (0.70 METERS/S)
PEAK EXCEEDED entries

Logged once each time the object crosses above the LIMIT value:

[17:46:59] FRAME 17: !! PEAK EXCEEDED (1.01 METERS/S)
COPY_LOG_DATA

Copies everything in the log to your clipboard. Paste into a spreadsheet, email, or shot report.

WIPE_LOG

Clears the panel. Nothing in the Maya scene is affected.

03   -   Speedometer & Telemetry Wave Callouts 5 - 7
How speed is measured

Every 32 ms the tool reads the world-space position of the tracked object at the current frame and at frame+1, multiplies the distance by FPS and the unit multiplier, then smooths the result over 5 samples.

speed = dist(pos[T], pos[T+1]) × FPS × unit_mult
The Dial
  • Arc sweeps clockwise from 0 to max (set at 1.5× your limit)
  • Red tick shows the exact limit position
  • Large centre number = current speed
  • Dial turns RED and shakes when over limit
Telemetry Wave

The oscilloscope strip shows the last ~80 speed samples as a scrolling waveform. Auto-scales to the max value in view. Great for spotting sudden spikes or gradual acceleration ramps.

04   -   Configuration Zone Callouts 8 - 10 | CAT / LIMIT / Unit Selector
CAT - Category
  • METRIC - Meters/s, Km/h, Cm/s
  • IMPERIAL - Inches/s, Feet/s, Miles/h
  • NAUTICAL - Knots
  • ROTATION - RPS, RPM
LIMIT - Speed Threshold

Type a number here. When the tracked object exceeds this speed:

  • Speedometer turns red & shakes
  • A PEAK EXCEEDED entry is logged
  • The HUD label changes to !! WARN !!
Sub-Unit Selector (row 2)

Selects the exact unit within the chosen category. Shown as "Meters/s" in the screenshot. Changing this updates the conversion multiplier and all readouts immediately.

05   -   Control Buttons Callouts 11 - 13 | ATTACH SIGNAL / HUD / TRAIL
11 - ATTACH SIGNAL / LOCKED: CAMERA1
LOCKED: CAMERA1

How to use: Select any transform in Maya (camera, prop, character control), then click this button. It turns green and shows the object name.

Click again with nothing selected to detach. If TRAIL is ON, detaching also removes the trail from the scene.

12 - HUD: ACTIVE / HUD: OFF
HUD: ACTIVE

Adds a Maya Heads-Up Display entry in the viewport showing live speed. Displays !! WARN !! as the label prefix when over limit.

Toggling OFF removes the HUD element cleanly.

13 - TRAIL: ON / TRAIL: OFF
TRAIL: ON

Expands the trail settings panel and builds the motion trail in the scene for the attached object. Turning OFF collapses the panel and deletes all trail nodes from the scene.

If you switch the target (ATTACH SIGNAL) while TRAIL is ON, the trail is automatically rebuilt on the new target.
06   -   Motion Trail Settings Panel Callouts 14 - 24 | Visible only when TRAIL: ON
The trail panel is hidden until you click TRAIL: ON. Changes to Scale, Heat Sens, Size Boost, and Heat Mode apply in real-time. Count, Offset, and Full Timeline require REBUILD TRAIL.
14 - Full Timeline (checkbox)
✔ Full Timeline

When checked: reads your Maya playback range (e.g. frames 1 - 120) and calculates exactly how many past and future locators are needed at the current Offset step to cover the full range.

The Count spinner is disabled - the number is computed automatically.

15 - Timeline Info Label
Timeline: 1-120  (119 frames @ step 1.00)
Past: 8 | Future: 111 locators

Appears when Full Timeline is checked. Shows the computed past/future split based on where the playhead currently sits within the range.

16 - Count

Number of locators on each side of the current position. Disabled when Full Timeline is active. Range 1 - 1000.

Requires REBUILD TRAIL to apply.
17 - Offset (Frame Step)

Gap in frames between each successive locator. 1.0 = one locator per frame. 2.0 = every other frame (sparser but covers more time). 0.5 = sub-frame sampling.

Requires REBUILD TRAIL to apply.
18 - Scale

The base size of each locator cross displayed in the Maya viewport. Unrelated to the heat-based size boost. Updates live without a rebuild.

19 - Heat Sens (Heat Sensitivity)

Controls how big a speed difference is needed before the colour shifts. Lower = more sensitive to subtle differences. Higher = only extreme differences show as hot. Updates live.

20 - Size Boost

How much bigger "hot" locators grow relative to "cool" ones. At 0 all locators are the same size. At 8.5 the hottest locators are nearly 10× the size of the coolest. Updates live.

21 - Heat Mode

Acceleration: colour driven by how much the speed is changing between adjacent locators. Blue = constant velocity. Red = rapid acceleration or deceleration.

Speed: colour driven by absolute speed vs the average across all locators. Blue = slower than average. Red = faster than average.

Cool (slow/constant)  â†’  Hot (fast/accelerating)

22 - Match Orientation

When ticked, each locator also inherits the rotation of the tracked object at that frame. Useful for cameras so you can see where it was pointing at each sampled moment.

23 - Hide on Playback

Sets hideOnPlayback on all trail nodes. The trail disappears during playback and playblast so it never appears in your renders, then reappears when you stop.

24 - REBUILD TRAIL
REBUILD TRAIL

Tears down and recreates all trail nodes using the current settings. Use this after changing Count, Offset, Full Timeline, or your Maya timeline range.

You do NOT need to rebuild for Scale, Heat Sens, Size Boost, Heat Mode, Match Orientation, or Hide on Playback - those update live.
07   -   Action Buttons Callouts 25 - 26 | DRIVE CHANNEL / AUTO_SPIN
25 - DRIVE .speed_LIVE CHANNEL
DRIVE .speed_LIVE CHANNEL

Adds a custom speed_LIVE floating-point attribute to the tracked object. This attribute is continuously updated every tick with the live speed value.

Once created, you can connect it to anything in Maya via driven keys, expressions, or node graphs:

  • Drive particle emission rates
  • Control motion blur strength
  • Trigger animation layer blending
  • Feed a custom viewport shader
26 - AUTO_SPIN EXPRESSION
AUTO_SPIN EXPRESSION

How to use:

  1. First click DRIVE .speed_LIVE CHANNEL to create the attribute.
  2. Select your wheel / tyre objects in the Maya viewport.
  3. Click this button.

A Maya expression is created on each selected object driving its rotateX channel based on the tracked object's speed. The formula assumes radius = 1 Maya unit and produces physically-correct rotation. Edit the expression (named <wheel>_speedExp) in Maya's Expression Editor to adjust the radius.

08   -   Viewport - What You See in the Maya Scene Heat Modes compared
Viewport  -  Heat map trail (Acceleration mode)

Acceleration / Speed Mode - Active Heat

Red and orange locators indicate rapid acceleration or high speed. Locators grow larger at hotter points (Size Boost active). The trail fans out around the current position and arcs through the full shot path.

Cool → Hot

Viewport  -  Speed mode trail (low sensitivity)

Uniform Trail - High Sensitivity or Low Speed Variation

When all locators fall within the cool range (low Speed variation or high Heat Sens value), the trail appears as a uniform blue line. The path shape still shows the full arc of motion even when colour is uniform.

To get more colour variation: lower the Heat Sensitivity value, or switch Heat Mode to Acceleration.

Maya Outliner Hierarchy

timeCascade_<objectName>_GRP          ← root group (all metadata stored here)
  timeCascade_<name>_locators_GRP     ← all locator transforms
    timeCascade_<name>_current_POINT  ← follows object at current frame
    timeCascade_<name>_past_01_LOC   ← object pos 1×Offset frames ago
    timeCascade_<name>_past_02_LOC   ← object pos 2×Offset frames ago
    ...
    timeCascade_<name>_future_01_LOC ← object pos 1×Offset frames ahead
    ...
  timeCascade_<name>_curveSegments_GRP ← line segments connecting locators
09   -   Workflow Quick Reference
STEP 01

Open Maya's Script Editor (Python tab). Paste and run the launch code below. Or add it as a Maya shelf button for one-click access.

STEP 02

Select your target object (camera, vehicle, character control) in the Maya viewport or Outliner.

STEP 03

Click ATTACH SIGNAL. The button turns green showing the object name (e.g. LOCKED: CAMERA1).

STEP 04

Set your CAT and sub-unit (e.g. METRIC → Meters/s). Set a LIMIT value for your acceptable speed range.

STEP 05

Scrub or play your animation. The dial, log, and telemetry wave all update live.

STEP 06

(Optional) Click HUD: ACTIVE to overlay the speed in the Maya viewport.

STEP 07

Click TRAIL: ON to open the trail settings panel. The trail is built immediately on the attached target.

STEP 08

Tick Full Timeline to cover the entire shot range automatically - or set Count and Offset manually for a shorter/denser trail.

STEP 09

Tune Heat Sens and Size Boost until the heat-map highlights the problem areas you care about.

STEP 10

If you change Count, Offset, or your Maya timeline range - click REBUILD TRAIL.

STEP 11

(Wheel spin) Click DRIVE .speed_LIVE CHANNEL, select your wheel objects, then click AUTO_SPIN EXPRESSION.

STEP 12

Use COPY_LOG_DATA to export the incident log for shot notes or review.

Launch Code

import sys
sys.path.append(r'C:/Users/aprst/OneDrive/Documents/maya/scripts/Scipts/Speedo')
import importlib, Speedo_V11 as speedo
importlib.reload(speedo)
speedo.run()
TIP: Add this block as a Maya shelf button (Python type) for one-click access from any scene.
10   -   Maya Nodes Created by the Trail
Node Type Quantity Purpose
plusMinusAverageOne per locatorAdds the frame offset value to Maya's current time output.
frameCacheThree per locator (X/Y/Z)Samples the target's world position at the offset time. This is what makes the trail update without baking.
decomposeMatrixOne per target + one per curve CVExtracts world-space translate and rotate from the object's world matrix.
spaceLocatorOne per past/future frame sampledThe visible locator crosses you see in the viewport.
nurbsCurveOne per adjacent locator pairThe line segments connecting neighbouring locators.
transform (group)3 groups totalRoot GRP (stores metadata), locators GRP, curves GRP - keeps the Outliner tidy.
All trail nodes are parented under a single root group and can be safely deleted by turning TRAIL: OFF or clicking REBUILD TRAIL. They do not affect your animation data.
↑ TOP