Javis.jl is a graphical animation/visualization package for the Julia Language which is inspired by Grant Sanderson's (aka, famous Math educator and YouTuber, 3blue1brown) Python based animation engine, Manim. This talk is about the work I have been doing this summer to make Javis more friendly and feature rich for creators
This summer I have been working towards:
Bringing a more organized experience for creators and developers via layers. Currently a WIP, this feature aims to add a layer based approach towards the Javis animation canvas, where different layers are stacked on top of each other. This is beneficial in cases where a user wants to modify a particular layer, without affecting objects present in other layers. It helps maintain virtual boundaries between different objects on the canvas both conceptually and syntactically.
Powerful abstractions for improved reasoning about the Javis API. Creating shorthand methods/constants to define general functions that saves creators from writing anonymous functions for each object by extending Luxor’s shapes such as Line, Circle, Rectangle, Polygon etc.
Improvements to object transformations To be able to create stunning animations, being able to visualize the transformation of one element to another on the fly is both useful and aesthetically pleasing. The current state of morphing allows only single step transformation where the final object is not a distinctly different object.Being able to modify the new object after morphing will open new possibilities for the user to transform the object further.
Livestream animations Sharing is a part of creation, and being able to share animations is really important. Livestreaming can be done in two ways, over a local network, or directly to platforms like twitch.tv. While twitch support is a WIP, the former is available in the latest Javis.jl release.