I worked on algorithm visualizers in the past and found the effort necessary to get something better than static pictures and text to be immense. Every single combination of data structure and algorithm needs to have a semi-custom designed visualizer in order for it to be easier to understand and appealing.
A human tutor can take pauses when something isn't clear, but a visualizer is forced to choose between checking for the user's understanding and not interrupting the flow.
Most of the time, what you want is not a clever visualization of a complex algorithm, but a simple distillation of its essence. Static diagrams are usually simpler than visualizations. And if you feel the inherent complexity can only be conveyed with animation, it's likely you haven't fully distilled your understanding.
Yeah, that's why I used the qualifiers "most of the time" and "usually".
But even in that example, while the animation instantly conveys the high-level idea, it's still a bit magical: "I get what's happening, but not exactly how." To understand in detail what's going on, carefully chosen freeze frames with an explanation would probably be better, especially complemented by the animation. The ability to slow down, reverse, and interact could work too here.
Right. There are also things called Optical Illusions which do not really explain anything but mislead you into thinking you see something which is not there. Optical illusions are often animated so seeing this Anti-twister mechanism makes me suspect I'm perhaps looking at some kind of optical illusion.
There was a great video on how a car’s differential works where they start by building it out of sticks and demonstrate how to progress from there to helical gears. That approach made it click for me while nothing else did prior, including playing with an actual differential.
I agree it's a great explanation, and the video format feels right for this. Still, it's not the video per se that makes this great, but the way the concept has been broken down into simple (almost unmoving) parts for you, and is then built up in steps.
I built something similar while learning for my algorithms course ate university. [0]
It not fully polished yet and not algorithms I had planned to implement are done yet. But I learned a lot doing it and some algorithms like "rotating calippers" or delaunay triangulation are really fun to watch.
Usage: click the canvas to create nodes, drag from their border to connect them. Click the "algorithms" tab on the top and select an algorithm to run in the right sidebar. The use the slider to step through the result.
The visualization library is independent and open source. There is also a rust cli and a web playground. I'm very open for contributions! (especially new visualizations)
A human tutor can take pauses when something isn't clear, but a visualizer is forced to choose between checking for the user's understanding and not interrupting the flow.
Link on BFS and Topological Sorting for instance:
https://csacademy.com/lesson/breadth_first_search
https://csacademy.com/lesson/topological_sorting