Skip to content
Algorithm visualization website and framework (anif).
JavaScript Go C++ Java Python Shell Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


Avy is algorithm visualization framework and visualization hosting website.

Directory structure of this repository

client: Website client-side application (AngularJS)

  • css: CSS style sheets
  • img: images
  • js: JavaScript source files
  • partials: HTML (AngularJS) templates
  • vendor: 3rd party libraries
  • index.html: template for the website index

server: AppEngine server application

  • api: API for the website (
  • anif: visualization and module hosting (
  • common: common functions
  • model: data structures for storing in the database
  • server.go: main server file

anif: Animation framework

  • framework: basic framework files (libraries and api.html for iframe file access API)
  • tools: algorithm event capturing tools in various programming languages
  • modules: visualization modules
  • examples: full visualization examples with code and input files
  • index.html: template for visualization index

Visualization/Module development


  • anif/modules
  • anif/examples

You can find information about visualization development on the website:

Make push requests only if you're changing an existing visualization or module in this repository. If you're creating your own modules and/or visualizations create your own repository and let me know if you want me to link to it here.

Website development


  • client
  • server

Running development server

Pushing changes to production

To push changes to you need my permission fist, but you can also create your own AppEngine project and push there.

To get started with AppEngine go here:

Once you have an AppEngine project, you can push the code using "goapp deploy" or " --oauth2 update ." if you prefer using OAuth/password-less authentication (I certainly do). Before you do the push, you need to change the configuration in the "server/server.go" file (domain name and port number). You can get more information here:

You can’t perform that action at this time.