Vamonos
Dynamic algorithm visualization in the browser
Vamonos is a library for generating browser-based visualizations of algorithms & data structures. Here are some reasons why we think Vamonos is great:
-
No installation barrier. Visualizations run on any modern browser using standard Javascript. No plugins or extensions are needed.
-
Self-containment. Visualizations do not require any server-side interaction. Your browser doesn’t even have to be connected to the internet. Visualizations can even be “compiled” into a self-contained HTML file that can be easily distributed to students.
-
Interaction. Students can easily provide their own inputs to an algorithm, set breakpoints & watchpoints, and step backwards & forwards through the algorithm’s execution.
-
Extensibility. If you can implement an algorithm in Javascript, then you can easily make a Vamonos visualization for that algorithm. We currently support dynamic display of array and graph data structures.
-
Appearance. Our default visualization styles are beautiful and natively scalable using your browser’s zoom feature. Of course, if you are handy with CSS, you can also easily style a visualization to meet your needs.
See it in action!
Here is a Vamonos visualization of the selection sort algorithm. Feel free to jump right in and play around with it. Or, if you’d like a short guided tour,
for i = 0 to A.length-2 # find smallest item in A[i..] m = i for j = i+1 to A.length-1 if A[j] < A[m] m = j swap A[i] and A[m]
Pre-made Visualizations:
We have developed pre-made visualizations of many common algorithms. See our demo collection.
Download:
The latest version of Vamonos is v2.1.0.
Past releases, source code, and everything else is available on our github project page.
Documentation:
Educators wishing to write their own visualizations in Vamonos should start with our User’s Guide:
- Getting things started
- Overview of a Vamonos visualization
- Implementing the algorithm for Vamonos
- Core widgets
- Widgets for data structures
- Other widgets
More detailed information can be found in our API reference:
About the Project:
Vamonos is developed in the EECS department of Oregon State University. It was started while the project leader was in the Computer Science department at the University of Montana.
The name “Vamonos” doesn’t really have to be an acronym, but if it were, its expansion would be Visualizing Algorithms from Montana and Oregon State.
Vamonos is developed with support from NSF award #1149647. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
The Vamonos project team:
- Mike Rosulek (project leader)
- Brent Carmer
- Pat Kujawa (graduated)
- Eric Spaulding (graduated)
Vamonos is distributed under the MIT license. For more details, see the LICENSE.md file in the source code.