A drawing that carries its controllers.

A vector document without a rig is a drawing. With one it is a rig, and opens in the workbench like any other. The rig holds groups, parameters and bindings, and nothing else about the document changes.

A binding names an element, one of its properties, and the parameter that writes to it.

{
  "id": "binding-1",
  "elementId": "blade",
  "property": "sides",
  "parameterId": "blades"
}

What a control can write to

Plain keys of an element:

Property Takes
x y width height rotation number
opacity number
visible boolean
fill stroke color
strokeWidth strokeDash number
cornerRadius cornerSmoothing number
text text
fontSize fontWeight letterSpacing number
sides innerRatio number
arcStart arcSweep number
blendMode option

And four paths that reach inside an element:

  • fills[i].color, fills[i].opacity and fills[i].stops, and the same three for strokes[i].
  • effects[i].<field>, where the field is one of dx, dy, blur, spread, opacity or color.
  • network.nodes[<id>].x and .y, one node of the path, by its id.
  • regionsOff[<key>], whether a planar region is painted.

A path the parser does not recognise is refused, never guessed. A binding pointing at a property that no longer exists is dropped, not written somewhere random.

Editing and tuning

Resolution is pure: the canvas, the inspector’s read-outs, the library thumbnail and the workbench preview all draw the resolved document, while editing always writes into the raw one. That is what lets the same file answer both questions without keeping two copies of the geometry.

The mode is remembered per document. A document with no parameters, or one last left on Edit, opens in the editor. Once it exposes controls, Tune shows it as a rig.

Exposing a property

In the editor, the diamond beside a field is the exposure control: offers to make that property a control, says one already drives it. The Controls tab is where the parameter that resulted gets its bounds, its label and its group.

The Aperture poster is the worked example: twenty-one layers, eight controls, and eight bindings that reach a polygon’s side count, a rectangle’s corner radius, an ellipse’s arc sweep, a stroke width, a fill color and two text properties.