Skip to main content
Version: 18.0

Constraints Overview

A constraint is a spatial relation, temporal relation, or formation between any two components. In the context of interpreting plexes as a multigraph of relationships over our system (comprised of different components), constraints are the edge-relationships of the graph.

Constraint Types

"To" and "From" Constraints

Aka "What is origin?", parent vs child, etc. etc.

Every constraint links exactly two components, identified by their UUIDs. One is labeled from and the other to. This directionality tells us how to apply the constraint's data to move observations into a common frame of reference, whether that's an extrinsics transform (spatial) or a synchronization correction (temporal).

For spatial constraints, the extrinsics transform Γ\Gamma moves points from one coordinate frame to another. We write this as:

ΓBA:=Γfrom Bto A\Gamma_{B}^{A} \mathrel{:=} \Gamma_{from\ B}^{to\ A}

To transform a point pp from the frame of component BB into the frame of component AA:

pA=ΓBApBp_{A} = \Gamma_{B}^{A} \cdot p_{B}

Read this as "pp in AA's frame equals the transform of pp from BB to AA." In other words:

  • The to component (AA) is the "origin"; it owns the reference frame
  • the from component (BB) is the one whose points get transformed

The same directional logic applies to temporal constraints: synchronization data converts timestamps from BB's clock into AA's clock.

Visualization of the "to-and-from" extrinsics convention