Visualization of concepts from Russell And Norvig's "Artificial Intelligence - A Modern Approach", and Javascript code for algorithms. Unlike aima-python, aima-java, and other sibling projects, this project is primarily about the visualizations and secondarily about the code.
Click here to go to the static hosted page
Click here to go to the gitter chat lobby
Some Javascript visualizations that I admire, and would like to see similar kinds of things here:
- Red Blob Games: A* Tutorial
- Qiao Search Demo
- Nicky Case: Simulating the World
- Rafael Matsunaga: Genetic Car Thingy
- Lee Yiyuan: 2048 Bot
- Install Prerequisites.
- Doing Installation.
- Deploying locally.
- Running Local Server.
- Node.js version 0.10.0 or newer
- Install jspm, eslint, gulp globally
npm install -g jspm
npm install -g eslint
npm install -g gulp
To run locally for development.
- run
npm install - run
jspm install
To bundle the web app :
- Deploy Locally :
- Serve
buildfolder locally. - Run
gulp bundle. - Run
gulp copyto bundle the app into build folder. - Web app in
buildfolder.
- Deploy to gh-pages :
- Run
gulp bundle. - Run
gulp copy. - Deploy it to gh-pages by running
gulp deploy.
Start a local server, e.g. cd build; python -m SimpleHTTPServer 80 for Python 2.x or cd build; python -m http.server 80 for Python 3.x. Then visit http://localhost using your browser. On some systems you may need to use a different port, e.g. 8000.
This directory contains the minified source code for production deployment.
The repository has the following structure for each algorithm:
- There is a directory for each chapter
- Each algorithm will have a
algorithm.jswhere the main logic is to be implemented. - Each algorithm will also have a
c_algorithm.jswhich will have the javascript visualization. - The
index.htmlwill include both the scripts. - The
c_algorithm.jswill use AJAX to loadalgorithm.jsintoindex.htmlas plain text for side-by-side reference of the reader. - The
index.htmlwill also includemain.jswhich contains minified version of global scripts like jQuery, angular etc - See the
index.htmlof chapter 2 for reference.
However, there will also be visualizations that do not fit into that structure:
- There may be concepts without pseudocode in the book.
- There may be multiple concepts for an algorithm.
- There may be concepts that do not correspond to a single algorithm.
Put the name of the chapter you want to contribute in the Division of work thread. Please squash all commits into a single commit. Also see CONTRIBUTION.md for know the working status.