9. Tips and General Advice
I'll now give a few tips for making a good Monocurl slideshow or video.
9.1 General Tips
- Remember everything is short lived. Don't over engineer stuff and be ok with using hardcoded constants. Most of the time, you'll never touch it again. Still maintain some level of professionalism, but only so much that is necessary.
- Use resources effectively! Look at examples. I also tried to make the documentation highlight which meshes are very important versus ones you probably only have to lookup if necessary.
- Maintain sane tags, and partition variables appropriately in complex scenes.
- Create lots of functions for meshes, and few for animations. There are times where you might need to create functions for animations (generally for convenience or when we have to apply a transformation with a discrete transformation together), but these are the exception. More often than not, using a cleverly calculated functor with an interpolation will seal the deal.
- Break down complex animations as a parallel and sequential subcomponents, and think about interpolation for each subcomponent. In a similar vain, think about the timeline of each object, and relate that to the timeline of screenvariables
- Use new scenes when possible. Rather than having everything in a single file, use many (possibly copy/pasting the config when necessary). This improves performance (maybe in the future, this will not be necessary).
9.2 Monocurl Scripting Language Idioms
A few idioms in the Monocurl language.
One useful trick is using right_key to help with tags, as was done in lesson 6 with the sorting example.
Monocurl doesn't have any boolean or integer types, so for booleans you'll typically use 1 and 0, whereas for integers you'll have to use number types and do rounding when necessary.
Vectors are extremely important in Monocurl, and definitely get comfortable using +=
syntax. This can be helpful for meshes and animations, but also stuff like generating latex strings.
Dictionaries are insertion order guaranteed, allowing us to create gradients, as was done in the Monocurl intro video animation.
9.3 Comparison to Alternatives
We compare Monocurl to other alternatives. On the plus side, Monocurl is capable of making slideshows (which to my knowledge is a unique feature). I also think Monocurl's animation system is very strong. On the other hand, Monocurl is in beta. This means that it is less mature so that its overall power is smaller (in particular, you have less control over the overall looks). Also, compare to something such as Manim, you do not have access to general python programming construts. Monocurl is generally slower.
9.3 Conclusion
I'll add more as time goes on, but I genuinely recommend checking out examples, looking at what is closest to what you're trying to do, and adapting the code from there.
This is the end of the tutorial series!