Skip to content
Library for writing 2D games or other interactive graphics applications for the HTML Canvas.
JavaScript Shell
Pull request Compare This branch is 437 commits behind GameJs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


GameJs is a JavaScript library for writing 2D games or other interactive graphic applications for the HTML Canvas. Its API is modeled after the successful PyGame library.

  • Runs in modern browsers
  • Sane JavaScript! With CommonJs support
  • Mature, well documented PyGame API with a decade of patterns
  • Philosophy: Ease of use > Completeness

Gamejs is early in development. The API will change though it will converge to a sensible translation of PyGame concepts to JavaScript.


GameJs is a Ringo application. Once you have Ringo installed the other components are easy to get with Ringo's package managment.

Details on how to install Ringo:

Once you have Ringo get the necessary dependancies with ringo-admin:

ringo-admin install hns/ringo-modulr
ringo-admin install ringo/stick

Git clone GameJs to a convinient location:

cd ~
git clone git://

Finally symlink GameJs into Ringo's packages directory:

ln -s ~/gamejs /usr/share/ringojs/packages/

(Do not ringo-admin install gamejs. That would not work.)

Try example apps

Start the GameJs web server:


and access it in your browser:


Several links to example apps should show up. The source to those apps is in the apps/ directory of your GameJs installation.

Writing games with GameJs

Check the docs folder of your GameJs installation.

A couple of example apps can be found in the apps directory.

See the GameJs API as well as the Mailing List for more help.

Something went wrong with that request. Please try again.