Motion runtime
This section defines a system that emphasizes the separation of a plan from its execution. We call it a motion runtime, or runtime for short.
A runtime serves two primary purposes:
- Provide an abstraction layer between the application engineer and the performance of motion.
- Coordinate the expression of diverse types of motion and interaction.
The following diagram shows where the runtime lives in relation to a platform like iOS.
Overview
A runtime will find a way to perform any plans it is provided.
This sentence introduces two important questions:
To answer the first question we introduce our first type: Plan
.
A plan is an object representing what you want something to do.
To answer the second question we introduce two more types: the Performer
and the Runtime
.
A performer's sole responsibility is to fulfill the contract defined by one or more plans. A runtime is the entity that creates performers.
Here's how these objects fit together:
- Plans are added to a runtime.
- Runtimes create performers.
- Performers fulfill the plans.
In visual form:
Learn more about these relationships by reading Life of a Plan.
Or dive in to the engineering specifications: