Because tickers always give their elapsed time relative to the first
tick after they were started; tickers are all synchronised. If you
start three tickers at different times between two ticks, they will all
nonetheless be synchronised with the same starting time, and will
subsequently tick in lockstep. Like people at a bus-stop,
all the tickers wait for a regularly occurring event
(the tick) to begin moving (counting time).

Simulations

The Simulation abstract class maps a
relative time value (an elapsed time) to a
double value, and has a notion of completion.

In principle simulations are stateless but in practice
some simulations (for example,
BouncingScrollSimulation and
ClampingScrollSimulation)
change state irreversibly when queried.

There are various concrete implementations
of the Simulation class for different effects.

Animatables

The Animatable abstract class maps a
double to a value of a particular type.