---
visibility: public
---

# Algorithm Visualizations

**repo:** [enjalot/algovis](https://github.com/enjalot/algovis)  
**category:** [[theory|Theory]]
**related:** [[d3|D3]] · [[algorithms|Algorithms]]

---

algovis [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)
=======

This is collection of projects and links about algorithm visualization.

# Projects

* [Setosa](http://setosa.io) blog (example: [Gridlock vs. Bottlenecks](http://setosa.io/blog/2014/09/02/gridlock/index.html))
[<img src='/images/setosa.png' width='800px'/>](http://setosa.io/blog/2014/09/02/gridlock/index.html)
* [Mathigon](http://world.mathigon.org/) (example: [Sieve of Eratosthenes](http://world.mathigon.org/Prime_Numbers)) and [beta site](http://beta.mathigon.org/)
[<img src='/images/mathigon.png' width='800px'/>](http://world.mathigon.org/Prime_Numbers)
* [Encinographic](http://encinographic.blogspot.com/) blog (example: [2D Wave Equation](http://encinographic.blogspot.com/2014/05/sim-class-wave-equation-in-2d.html))
[<img src='/images/encinographic.png' width='800px'/>](http://encinographic.blogspot.com/2014/05/sim-class-wave-equation-in-2d.html)
* [Emergent Mind](http://www.emergentmind.com/) blog (example: [Perceptrons](http://www.emergentmind.com/the-perceptron))
[<img src='/images/emergent_mind.png' width='800px'/>](http://www.emergentmind.com/the-perceptron)
* [The Nature of Code](http://natureofcode.com/book/) book (example: [Oscillation](http://natureofcode.com/book/chapter-3-oscillation/))
[<img src='/images/the_nature_of_code.png' width='800px'/>](http://natureofcode.com/book/chapter-3-oscillation/)
* [Game Mechanic Explorer](http://gamemechanicexplorer.com/) (example: [Homing Missiles](http://gamemechanicexplorer.com/#homingmissiles-1))
[<img src='/images/game_mechanic_explorer.png' width='800px'/>](http://gamemechanicexplorer.com/#homingmissiles-1)
* [Pixel Shaders](http://pixelshaders.com/proposal/) book proposal
[<img src='/images/pixel_shaders.png' width='800px'/>](http://pixelshaders.com/proposal/)
* [Probabilistic Models of Computation](https://probmods.org/) book (example: [Generative Models](https://probmods.org/chapters/generative-models.html))
[<img src='/images/probabilistic_models_of_computation.png' width='800px'/>](https://probmods.org/chapters/02-generative-models.html)
* [Steven Wittens](http://acko.net/) (example: [How to fold a [Julia](/@harrisonqian/awesome/wiki/programming-languages/julia) Fractal](http://acko.net/blog/how-to-fold-a-julia-fractal/) - click arrows on slideshows)
[<img src='/images/steve_witten.png' width='800px'/>](http://acko.net/blog/how-to-fold-a-julia-fractal/)
* [Red Blob Games](http://www.redblobgames.com/) (example: [2D Visibility](http://www.redblobgames.com/articles/visibility/))
[<img src='/images/red_blob_games.png' width='800px'/>](http://www.redblobgames.com/articles/visibility/)
* [Khan Academy [algorithms](/@harrisonqian/awesome/wiki/theory/algorithms) course](https://www.khanacademy.org/computing/computer-science/algorithms) (example: [Breadth First Search](https://www.khanacademy.org/computing/computer-science/algorithms/breadth-first-search/a/the-breadth-first-search-algorithm))
[<img src='/images/khan_academy.png' width='800px'/>](https://www.khanacademy.org/computing/computer-science/algorithms/breadth-first-search/a/the-breadth-first-search-algorithm)
* [Christopher Olah](https://colah.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/) (example: [Neural Networks, Manifolds, and Topology](https://colah.github.io/posts/2014-03-NN-Manifolds-Topology/))
[<img src='/images/colah.png' width='800px'/>](https://colah.github.io/posts/2014-03-NN-Manifolds-Topology/)
* [Visualgo](https://visualgo.net/en)
[<img src='/images/visualgo.png' width='800px'/>](https://visualgo.net/en)
* [Melkman's Algorithm interactively explained](http://maxgoldste.in/melkman/)
[<img src='/images/melkman.png' width='800px'/>](http://maxgoldste.in/melkman/)

# Libraries & tools

* [Tailspin](http://will.thimbleby.net/algorithms/doku.php): JS interpreter in JS that runs an algorithm and lets the visualization inspect the local variables. Records history to allow stepping backwards too.
* [Vamonos](http://rosulek.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/vamonos/): algorithm visualizations with pseudocode shown to reader and JS version underneath, plus some useful widgets to show pseudocode, call stack, data structures
* [Algomation](http://www.algomation.com/): algorithm visualization that uses JS generators to pass control between algorithm execution and browser event loop
* [Algorithm Visualizations](http://www.cs.usfca.edu/~galles/visualization/Algorithms.html)
* [LaTeX2HTML5](http://latex2html5.com/): annotate [LaTeX](/@harrisonqian/awesome/wiki/miscellaneous/latex) diagrams with interactivity when exporting to HTML
* [Tangle](http://worrydream.com/Tangle/)

# References

* [Visualizing Algorithms](http://bost.ocks.org/mike/algorithms/)
* [Active Essays on the Web](http://tinlizzie.org/chalkboard/#ActiveEssaysOnTheWeb)
* [Visualizing sorting algorithms](https://corte.si/posts/code/visualisingsorting/index.html) - arguing that static visualizations are better than algorithm animation

# Examples

* [Garbage Collection](http://spin.atomicobject.com/2014/09/03/visualizing-garbage-collection-algorithms/)
* [Spatial Hashing](http://zufallsgenerator.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/2014/01/26/visually-comparing-algorithms/)
* [Fourier Image Filtering](http://david.li/filtering/)
* [Fourier Series Visualization](http://bl.ocks.org/jinroh/7524988)
* [The Skyline Problem](https://briangordon.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/2014/08/the-skyline-problem.html)
* [Animated Bézier Curves](http://www.jasondavies.com/animated-bezier/)
* [A Primer on Bezier Curves](http://pomax.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/bezierinfo/)
* [Sight And Light](http://ncase.me/sight-and-light/)
* [Newton-Raphson Optimization (1D)](http://bl.ocks.org/dannyko/ffe9653768cb80dfc0da)
* [Newton-Raphson Optimization (2D)](http://bl.ocks.org/dannyko/0956c361a6ce22362867)
* [Fisher-Yates Shuffle](http://bost.ocks.org/mike/shuffle/)
* [Tetris in Clojure](http://shaunlebron.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/t3tr0s-slides/#0)
* [HyperLogLog for [big data](/@harrisonqian/awesome/wiki/big-data/big-data) distinct values](http://research.neustar.biz/2012/10/25/sketch-of-the-day-hyperloglog-cornerstone-of-a-big-data-infrastructure/)
* [Cave Culling Algorithm in Minecraft](http://tomcc.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/2014/08/31/visibility-1.html)
* [Explanation of X11 Servers](http://magcius.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/xplain/article/) has an X11 server running in the browser!
* [Manual for rot.js, a roguelike game library](http://ondras.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/rot.js/manual/#intro) makes all the examples editable and viewable in the browser
* [ConvNetJS](http://cs.stanford.edu/people/karpathy/convnetjs/) neural network examples in browser (example: [2-layer neural network](http://cs.stanford.edu/people/karpathy/convnetjs/demo/classify2d.html))
