Skip to content
Framework for creating rich WebGL-enabled applications using JavaScript and Ruby
CoffeeScript JavaScript CSS Ruby
Failed to load latest commit information.
gemfiles support running jasmine headlessly
guides Doc updates in getting_started guide
jax-core log moar infoz during linking failure
jax-engine Shaders are now JST templates that we get for free from Sprockets
lib World's Most Epic Refactor, Ever
tasks World's Most Epic Refactor, Ever
.gitignore don't commit lock files, the paths will be different for everyone
.ruby-gemset Fix `rake` from project root by refactoring all gemfiles into ~/gemfiles
.ruby-version Fix `rake` from project root by refactoring all gemfiles into ~/gemfiles
.travis.yml set x display
Bedfile jax-tests is now jax-demos and is no longer automatically loaded.
CHANGELOG update with changes from recent commits
LICENSE Update README and add MIT license
Rakefile Fix `rake` from project root by refactoring all gemfiles into ~/gemfiles
TESTING move TESTING to project root and update it Introduce Jax.Material.Legacy type, relevant shaders, supporting file…
jax.gemspec World's Most Epic Refactor, Ever

Jax Build Status Dependency Status

Jax is a framework for developing rich WebGL-enabled applications using JavaScript and Ruby. It can be used within a Ruby on Rails application, or as a completely stand-alone WebGL development environment.

Live Demos

Click on any image below to be taken to a live WebGL demonstration. Be sure to use a WebGL-enabled browser!

If you're working on a demo you'd like to see added to this list, let me know!


It requires ruby, which you can download at:

Other than that, Jax requires a few ruby gems which will be retrieved automatically when installing.

Getting Started

By far the best place to go if you want to dive into Jax is the Jax Guides. These are comprehensive guided tours of the framework, and cover pretty much anything you can think of doing. In particular, the Getting Started Guide is laid out in an easy-to-follow tutorial format.

Another good place to look around is the Jax Wiki, where Jax developers (including yourself!) can share tips and tricks with one another.

The Forums are a great place to get involved in the Jax community, and are a good place to go for help or general discussion.

The Jax Blog is where the latest news and developments-in-progress will be posted, so if you keep an eye on you'll always be in the know.

Finally, you can always contact me, the developer, on Twitter as @sinisterchipmnk or sinisterchipmunk on Github.

Helping Out

Anyone interested in doing so is more than welcome -- nay, encouraged -- to fork this project on Github.

How to Contribute

  1. Fork Jax.
  2. Check out a new branch. Name it something representative of the changes you'll make.
  3. Write a failing test case to demonstrate the need for your new code. If this is not possible, explain in detail why not.
  4. Make the appropriate changes to Jax.
  5. Send me a pull request explaining what you did and why you did it.
  6. I'll review the commits and, if they are in keeping with the goals of Jax, I'll merge them with the main project.


  • When making code changes, please don't update the version number. I'll do that when it's time to actually release some code.
  • Feel free to fix or update the documentation and/or the Jax guides. They're part of the project, after all.
  • If your code change is public-facing, please do update the documentation with how to use the new features. You know your own code better than anyone else.


Jax is released under the MIT license.

Something went wrong with that request. Please try again.