Javis: Julia Animations and VISualizations
Javis.jl
is a general purpose Julia library to easily construct informative, performant, and winsome animated graphics. Javis
provides a powerful grammar for users to make animated visuals. Users of Javis
have made animations to explain concepts in a variety of fields such as mathematical concepts like Fourier transformation to brain imaging of EEGs. It builds on top of the Julia drawing framework Luxor by adding functions to simplify the creation of objects and their actions.
The Summer of Code Javis projects aims at simplifying the creation of animations to explain difficult concepts and communicate to broad audiences how Julia is a strong tool for graphics creation.
Below you can find a list of potential projects that can be tackled during Google Summer of Code. If interested in exploring any of these projects, please reach out to:
Jacob Zelko - email, Slack (username: TheCedarPrince), or Zulip (username: TheCedarPrince)
Ole Kröger - Slack (username: Wikunia), or Zulip (username: Wikunia)
Thanks for your interest! 🎉
Mentors: Ole Kröger, Jacob Zelko
Recommended skills: General understanding of Luxor and the underlying structure of Javis.
Difficulty: Medium
Description: This project is split across several tasks that are manageable enough to be worked on by a single student in the Google Summer of Code period. These small tasks come together to create an easier and understandable syntax for Javis-based animated graphic creation. The following list are the smaller tasks one could work on:
One of the bigger missing features is the lack of combining several objects into a layer. Issue #75
To improve the user experience it will be helpful to ease object positioning based on other objects. Issue #130
For visual appeal, morphing shapes into one another shall be improved as it's currently an undocumented and unfinished feature. Issue #286
To bring Javis and Julia closer to the broader audience we are interested in the ability of live streaming animations to platforms like Twitch. Issue #91
Mentors: Ole Kröger, Jacob Zelko
Recommended skills: Knowledge about graph theory and LightGraphs.jl
Difficulty: Hard
Description: Javis could be a powerful platform to easily animate problems and their solutions in a variety of different fields. Currently, Javis lacks the ability to visualize graphs. The goal for this project would be to add graph support to Javis by supporting interoperability with LightGraphs.jl. The animation of flows and shortest path is something that's extremely valuable for teaching as well as in practical analysis of graph networks. To learn more about the current thoughts surrounding this problem, check this issue for more information.
Mentors: Ole Kröger, Jacob Zelko
Recommended skills: Basic to intermediate knowledge about linear algebra.
Difficulty: Easy
Description: Linear algebra is of invaluable importance all across different fields of mathematics and engineering. Enabling the easy creation of visualizations regarding rotations, matrices and other concepts is helpful in educating students about this amazing branch mathematics. Here are a few issues related to tasks that could be worked on to bring about this capability: