Jax v1.1.0 Released!

Nearly two months after the initial release, Jax v1.1.0 is huge, representing a massive set of great improvements over the previous version, and I’m proud to announce it is officially ready for use!

As I was adding release notes to the Changelog, I realized that I’d doubled the size of the log with this release! So instead of overviewing them all here, I’ll highlight what I think are the greatest improvements and leave it to you to read through the individual updates, if you wish.

Without further ado, here are some of the highlights of this release:

  • The new plug-in system makes Jax trivial to extend on a per-application basis, allowing Jax itself to stay small without sacrificing your needs.
    • I’ve added a new Plugins Guide to help you get started. You’ll see that if you have ever worked with Jax at all, developing and releasing plugins is a breeze!
  • Massive reduction in memory footprint and performance gains across the board
    • Meshes now take full advantage of Typed Arrays, allowing them to remove redundancy in favor of sharing the same physical memory in numerous places.
    • This has allowed me to add some really helpful objects like Jax.Geometry.Triangle (see below), without duplicating vertex and normal data.
  • Full support for both Ruby 1.8.7 and Ruby 1.9.2!
  • Added Jax.Geometry.Triangle, which represents individual triangles in a mesh (via Jax.Mesh#getTriangles()), and comes with free triangle, sphere, ray and point intersection tests! This should make collision detection a relative breeze!
  • Built-in Perlin noise functions now only require a single function call to use. The old way still works, but the new way will drastically improve your application’s memory usage!
  • New error handling API allows the developer to directly intervene when an error is encountered
    • You can use this to report the error to your server, attempt to gracefully recover, or whatever else you want!
  • Loads of new documentation! I’ve almost finished documenting the entire JavaScript API!
    • The Ruby portion still leaves something to be desired, though. I’m working on it.

In addition to everything else, I’ve added a new quick-start page to help new developers get started. It’s a lot less daunting than the Getting Started Guide but you’ll still want to read the guide if you want to dig into anything more involved than a teapot.

Finally, I also updated the Getting Started Guide with some details. Out with the deprecated, in with the awesome. Besides minor changes, I added a section on redirection, which explains how the controllers can communicate with one another. It should have been there from the start, but it slipped my mind with everything else I’ve been working on!


A few of the improvements deal with how applications are generated, so those tweaks will naturally only be applied to new applications. Existing ones aren’t left in the dark, however. As always, the update process for an existing app is as follows:

  1. Update your Gemfile. Make sure the version of Jax is set to “1.1.0″.
  2. Update the bundle by running bundle update.
  3. Update the Jax JavaScript runtime by running rake jax:update.
  4. You’re Done!

Trackbacks and Pingbacks: