Tuesday, January 1, 2013

glMatrix 2.0 Released!

Hey, did you hear that it's a 2013 now? New years usually inspire resolutions, and one of mine is simple: Finish more of the projects that I start! To get off on the right foot in that regard, lets start off the year with a brand shiny new glMatrix 2.0!

So what's new in version 2?
  • The entire API has been reworked with an eye towards consistency and speed. This means that while it looks similar to the previous revision the new library is NOT backwards compatible with glMatrix 1.3.7. That's an unfortunate casualty of progress, but a necessary one to make sure the library isn't held back by mistakes made early on.
  • A much expanded suite of unit tests. We don't have full test coverage yet, but the new tests should at least help to ensure that we catch obvious regressions before they make it into the wild, and it can be expanded to cover new bugs as we find them
  • A new library structure and build process that integrates the new tests and will eventually make new releases a one-click operation.
  • More optimizations!
  • New functions at the request of the community!
  • A higher version number!
This new version has been in the works for a little while, and there's still some more updates that I'm planning on around the documentation and landing page, but I'm pretty happy with where the code is at, and the new version should allow the library to evolve more smoothly as feature requests and bug fixes roll in moving forward.

Of course, the new release isn't something that I can take credit for alone. There's plenty of thanks to go around to everyone that's contributed code, ideas, or even just opinions to get the library where it is now. In particular, thank you to:
And of course, glMatrix's co-author, who has been an invaluable source of support, feedback, and code: Colin MacKenzie IV (Otherwise known as sinisterchipmunk, which is the most awesome username ever!)

Happy new year, everyone, and happy coding!


  1. Awesome! I've been looking forward to it. Are there any updated benchmarks? I'd like to see how the speed now compares to the Closure math API, which was almost always the fastest in the past.

  2. No benchmarks yet, but I'm still working on a lot of the docs pages and such. I'll probably squeeze some benchmarks in there when I do. More importantly, though, I'm going to be doing a page about how to use the library in the most optimal fashion, which is something many benchmarks miss.

  3. Yay! I love this library... although I've lost count of the amount of times I'd written vec3.create(x,y,z) instead of vec3.create([x,y,z]). New interface looks great, can't wait to try it out.

    Is there any call in API for a vec3.transformMat4 variant with w=0? (ie transform vector vs transform point).

    Also, can you make subarray go faster? ;-)