Contours

2. Key Concepts

Contours is built around a short list of ideas. Once these click into place, the rest of the application is mostly navigation.

Projects

A project is the outermost container for your work. Everything you create — axes, shows, recordings, settings — lives inside a single project file. The name of the currently open project appears in the window title, for example Contours - DemoStage.

Axes

An axis represents one motor in your project. Each axis has a name you choose, a colour used everywhere on charts, and a full set of motor properties (units and gearing, controller settings, Run To speed, homing parameters, and so on). An axis can be linked to a physical motor through a connection, at which point real position, speed, and torque readings flow in.

Shows and Profiles

A show is one performance — one complete motion sequence that uses every axis in the project. Inside a show, each axis is represented by a profile. A profile holds the motion for that one axis: its take (see below), which drives that axis when you run the show.

A single project can contain as many shows as you need. Switching between them is instant, and all shows share the same axes. A show lasts as long as its longest take.

Takes and Splines

A profile's motion is a take: position points evenly spaced in time, at the take's interval (typically 100 ms). A take comes from one of two places:

  • Recorded — captured live while you move the motor (see chapter 10).

  • Imported — read from a CSV file and resampled to a fixed interval (see chapter 12).

Either way the take is stored and played in the same way, and a new recording or import replaces it.

Contours fits a smooth spline curve through the take's points. The spline is what the motors actually follow when you run the show. Showing or hiding the spline on the chart does not change playback — the spline always exists.

Axis groups

An axis group names two or three axes that move together in space, for example the X and Y of a gantry, and says which of them is X, Y, and Z. Contours uses it to draw a show as the path those axes trace together, beside or instead of the time chart (see chapter 8). A project can have several groups. Groups only change what you see on screen, never how the motors move.

How it all fits together

Project
  |
  +-- Axes (one per motor)
  |     |-- Axis "Pan"     --> linked to motor with serial #A123
  |     |-- Axis "Tilt"    --> linked to motor with serial #A124
  |     `-- Axis "Dolly"   --> linked to motor with serial #A125
  |
  +-- Axis groups (optional, for the path view)
  |     `-- Group "Aim"    X = Pan, Y = Tilt
  |
  `-- Shows
        |-- Show "Opening"
        |     |-- Profile for Pan     (recorded take + spline)
        |     |-- Profile for Tilt    (recorded take + spline)
        |     `-- Profile for Dolly   (imported take + spline)
        |
        `-- Show "Finale"
              |-- Profile for Pan
              |-- Profile for Tilt
              `-- Profile for Dolly