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 (maximum speed, maximum torque, pulses per revolution, position scaling, 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: the recorded data points, the imported CSV data, and which of those is currently driving playback.
A single project can contain as many shows as you need. Switching between them is instant, and all shows share the same axes.
Samples and Splines
A profile holds motion data in two possible forms:
Recorded sample — position points captured live while you moved the motor, plus the speed and torque the motor reported at each point.
Fixed-interval sample — position points imported from a CSV file, evenly spaced in time.
Whichever sample is active, Contours fits a smooth spline curve through the 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.
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
|
`-- Shows
|-- Show "Opening"
| |-- Profile for Pan (recorded sample + spline)
| |-- Profile for Tilt (recorded sample + spline)
| `-- Profile for Dolly (fixed-interval sample + spline)
|
`-- Show "Finale"
|-- Profile for Pan
|-- Profile for Tilt
`-- Profile for Dolly