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)) [](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/) [](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)) [](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)) [](http://www.emergentmind.com/the-perceptron) * [The Nature of Code](http://natureofcode.com/book/) book (example: [Oscillation](http://natureofcode.com/book/chapter-3-oscillation/)) [](http://natureofcode.com/book/chapter-3-oscillation/) * [Game Mechanic Explorer](http://gamemechanicexplorer.com/) (example: [Homing Missiles](http://gamemechanicexplorer.com/#homingmissiles-1)) [](http://gamemechanicexplorer.com/#homingmissiles-1) * [Pixel Shaders](http://pixelshaders.com/proposal/) book proposal [](http://pixelshaders.com/proposal/) * [Probabilistic Models of Computation](https://probmods.org/) book (example: [Generative Models](https://probmods.org/chapters/generative-models.html)) [](https://probmods.org/chapters/02-generative-models.html) * [Steven Wittens](http://acko.net/) (example: [How to fold a Julia Fractal](http://acko.net/blog/how-to-fold-a-julia-fractal/) - click arrows on slideshows) [](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/)) [](http://www.redblobgames.com/articles/visibility/) * [Khan Academy 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)) [](https://www.khanacademy.org/computing/computer-science/algorithms/breadth-first-search/a/the-breadth-first-search-algorithm) * [Christopher Olah](https://colah.github.io/) (example: [Neural Networks, Manifolds, and Topology](https://colah.github.io/posts/2014-03-NN-Manifolds-Topology/)) [](https://colah.github.io/posts/2014-03-NN-Manifolds-Topology/) * [Visualgo](https://visualgo.net/en) [](https://visualgo.net/en) * [Melkman's Algorithm interactively explained](http://maxgoldste.in/melkman/) [](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.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 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.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.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.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.io/t3tr0s-slides/#0) * [HyperLogLog for 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.io/2014/08/31/visibility-1.html) * [Explanation of X11 Servers](http://magcius.github.io/xplain/article/) has an X11 server running in the browser! * [Manual for rot.js, a roguelike game library](http://ondras.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))