11. Advanced and Theoretical
11.1 Semisequential
Monocurl is capable of animating any semisequential animation set. We say (roughly speaking) an animation set is semisequential if the final state is the same as the final state if the animation set were to be run purely sequentialy. Semisequential animations are nice because it allows the two pass system Monocurl is built on. There are certain classes of animations that you may want to be able to do that aren't purely semisequential but these are generally best avoided. In particular, it can be seen that an animation is semisequential if and only if animations later in the animation tree have no bearing on animations earlier in the animation tree. This is a nice property and helps us reason about the code better. As a consequence of this property, there are some parallel animations that only work when you reorder the animations.
I will update with more in the future.
11.2 Custom Followers and Animations
We can use follower as well as reference_map to create very composable functions that can animate on multiple variables. TODO