Skip to content
Amit Patel edited this page Aug 22, 2019 · 31 revisions

Thanks for considering contributing to aima-javascript! We are building visual explanations of the concepts, problems, and solutions described in AIMA. In the past we were building individual visualizations, but we are now (as of 2018) building visualizations integrated with explanations.

If you are here for GSoC

First read this guide for 2018. The guide for GSoC 2019 will be similar to GSoC 2018, assuming Google accepts AIMA this year. Start with a project proposal and implement one of the visualizations. We will find out Feb 26 whether AIMA is part of GSoC this year, and there will be a new guide available then.

Do not contribute new chapters to the repository! AIMA-Javascript is not like most open source projects so our guidelines are different. Come ask questions on the gitter channel. Amit Patel (redblobgames) was the mentor for GSoC 2017. Sam Goto (samuelgoto) is the mentor for GSoC 2018 and 2019. Sam says to contribute improvements to chapters 5 and 24 only (from Aug 2019 to Mar 2020, Amit believes). If AIMA is part of GSoC 2020, Sam or another mentor will post updated instructions. In 2018 and 2019, the selection was primarily based on design docs and not on contributions.

If you are not interested in GSoC

As of 2019, AIMA-Javascript is not accepting contributions due to lack of staffing.

If you are not interested in Google Summer of Code, here's how you can contribute (2017-2018):

  • First, read and understand the code to get a feel for how the existing visualizations have been implemented. Read the Implementation guide. Each chapter may be written in a different style using different libraries. Use the existing technology (libraries, languages, frameworks) for the chapter you are working in instead of introducing new technology.
  • Changes that are not visible to the end user (readers of AIMA) are typically not accepted, for the same reason that Ruby on Rails and other projects do not accept these changes.
  • Look at the issues and pick one to work on. Discuss your plan with a project member before beginning work.
    • Small projects marked bug. Due to the nature of this project, there many not be any listed.
    • Small projects marked improvement.
    • Medium projects marked feature.
  • Large projects require a mentor, and are typically part of Google Summer of Code. See Division of work thread. If you would like to work on one of these outside of GSoC, please contact one of us.
Clone this wiki locally