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
build
folder locally. - Run
gulp bundle
. - Run
gulp copy
to bundle the app into build folder. - Web app in
build
folder.
- 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.js
where the main logic is to be implemented. - Each algorithm will also have a
c_algorithm.js
which will have the javascript visualization. - The
index.html
will include both the scripts. - The
c_algorithm.js
will use AJAX to loadalgorithm.js
intoindex.html
as plain text for side-by-side reference of the reader. - The
index.html
will also includemain.js
which contains minified version of global scripts like jQuery, angular etc - See the
index.html
of 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.