Interview with Robert Bateman, founder of Away3d, an open-source 3D engine for the Flash Platform


At JetBrains we believe that supporting the open source initiative is a key to knowledge exchange and progress. We’re proud to support OS projects with free licenses since 2007, with over 5000 licenses given out to date.

Recently we’ve touched base with some of our colleagues from the Open Source world, to learn more about how they use our products to grow and get better. Perhaps this can inspire some of our readers to start something new and exciting in the world of OS.

In this interview we speak with Robert Bateman, the Director of the Away Foundation, about their key projects, their cooperation with JetBrains which is an Associate Partner of the Foundation, and their developers’ experience with open source software provided by JetBrains.

What is The Away Foundation and what is its mission?

The Away Foundation is a non-profit organization that promotes openness, innovation and participation in and around freely available software resources.

The Away Foundation was formed to make it easier for us to deal with sponsors and supporters in a business-like way. Before the company we got by on an ad-hoc basis but as things expanded, it gradually became clear that we would need to think of a better model to continue the management and upkeep of the multiple codebases we had become.

What key projects is The Away Foundation currently working on?

The Away3D engine is The Away Foundation’s widest used software resource, receiving regular updates and maintenance. Parallel resource projects also managed by The Away Foundation include Away Physics, the AWD format and Away Builder.

Away Builder is visual workflow tool for 3D designers to import and optimize their assets for use in Away3D and simplify the process of 3D visual adjustment – something that was previously only exposed in the Away3D codebase. Browse the project at GitHub.

Away Physics is an Actionscript3 wrapper for the popular C++ based open source physics engine, with custom hooks to integrate with Away3D scenes. It uses the Adobe FlasCC compiler to create a binary swc of the core libraries – an approach that offers a degree of performance improvement over regular ActionScript code. Browse the project codebase at GitHub.

Who are Away3d main users? Any specific projects which were built using your software that you’d like to tell us about?

Our users are very varied, and seem to be constantly demonstrating the versatility of Away3D as a general purpose 3D framework. We know a handful of big-name game studios, as well as many smaller indies, creating all kinds of 3D games. Then there are educational companies and institutions that create learning software, advertising agencies using Away3D for their latest marketing campaigns, all the way down to individual freelancers and hobbyists doing experimental work, museums and government funded non-profits building interactive installations… the list just goes on.

Frequently we come across projects that have a completely new way of using the engine – in terms of additional functionality, hooking things up to other libraries, slotting things together in new ways. A testament to the flexibility of the framework seems to be that no two Away3D projects look and feel alike, and we love the fact that people use us to feel unhampered by the usual restrictions of closed source software. There seems to be a very homemade feel to an Away3D project, and it is something we definitely want to retain for the future. You can browse a hand-picked selection of Away3D projects by going to our showcase section or here:

How did you know about IntelliJ IDEA and why did you choose it?

IntelliJ IDEA is a tool we’ve used at the Away Foundation for a while, primarily for ActionScript development. We chose it as an integral part of our development process because of the features it offers, and the fact that it is a stable, cross platform editing environment.

Can you tell us more about the Away3D engine and how IntelliJ IDEA helped in your software development processes?

Many of the libraries we maintain (including Away3D) are ActionScript-based, and we love IntelliJ IDEA AS3 editor as well as the many invaluable coding workflow tools such as the refactoring options. We also love the inbuilt integration with collaborative tools such as Git, an absolute requirement for community-built software.

As a widely used open-source engine, Away3D is constantly evolving to provide cutting-edge graphics while maintaining an easy-to-use interface for our users. New features or performance updates often require substantial rewrites or restructuring. The unparalleled refactor tools provided by IntelliJ IDEA make a lot of this a breeze, allowing for methodical step-by-step refactoring often without even breaking the code. Additionally, efficient code navigation helps finding bugs and understanding code flow.

The bottom line is that IDEA aids the coding by allowing a programmer to reason in concepts on the right level: high-level code restructuring without getting bogged down with details, or low level authoring/investigating while keeping a good overview.

What new projects are you planning for the future in The Away Foundation?

Right now we are working hard developing a conversion of the Away3D engine from Flash to the native web language Typescript. Its been very enjoyable to dive head first into a new technology and try things out – start at the bottom again so to speak. Our plan is to completely convert the Away3D codebase over the next few months and set about finding our audience in the Typescript / Javascript community (we already have an alpha version of the source available at GitHub). Alongside that, we are of course still adding patches and features to the current Flash version of Away3D 4.1, and have some work lined up for an upgrade to Away Builder (our official design workflow tool) that we are currently signing off with our primary sponsor Adobe. We’ve recently published a new minisite promoting some of the work we have done already on the Away3D Typescript conversion – be sure to check!

Any JetBrains tools participate in this process? What’s your experience with them?

We are currently using both WebStorm and PhpStorm to create a TypeScript / JavaScript conversion of Away3D. WebStorm offers fantastic TypeScript support, and was our first choice for cross-platform TypeScript development after evaluating what was out there, thanks to its seamless TypeScript integration coupled with the usual smoothness of operation in the editor.

In conclusion… Did you think of what the project would become right from the start? Did you expect it to get this big?

In the beginning Away3D was nothing more than a spare-time project, something we all did for fun and for the developers that used our engine. Once large ad agencies and game publishers started using our software, we had to evolve to keep pace.

We never realized how big it would become, but our intention has always been to provide accessible tools and libraries that assist in the creation of 3D content, for anyone, all for free and open source. Seeing what amazing things people build with our libraries never gets boring, and there is still so much we want to improve and add. The work has transitioned from an obsession into a business, but the enjoyment is still there.

 

We’d like to thank Rob for his time and the experience shared. We’re inspired and hope you are too.

If you are a contributor to an Open Source project, we’d be happy to support your efforts and invite you to join our program. Be sure to check out our Community Support center and apply for your license(s).

 

This entry was posted in Interviews and tagged , , , . Bookmark the permalink.

2 Responses to Interview with Robert Bateman, founder of Away3d, an open-source 3D engine for the Flash Platform

  1. Pingback: Jetbrains partnership and interview | The Away Foundation

  2. Pingback: Flash Platform Rundown – Week of November 4th, 2013 | In Flagrante Delicto!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">