Away3D TypeScript at Mozfest



Unfortunately, I can’t be there but this weekend, the Away Foundation will be attending the annual Mozfest conference in Ravensbourne, London. As one of the facilitators, they will be arriving armed with a ton of useful demos and advice on how to build games with Away3D. You’ll be able to find their booth in the Open Games area where you’ll have a chance to chat to them about what they do and how it can benefit your own projects.

Away3D will also be hosting a scheduled 2 hour workshop during the conference with the title “Getting started with Away3D in Typescript”. This will be part of the Open Games session track, official details of which will be announced in the next day or so. Keep an eye on the Mozfest site for more info.

The Away3D team are excited to be part of Mozfest and look forward to meeting fellow Away3D’ers as well as those new to the world of 3D in the browser. If you want to follow along with the workshop, a laptop is recommended but not essential.



Gary Paluk

Posted in away3d Tagged with: , ,

Zest3D Physics

MRT Ready

As people may know, I’ve been busy working on the Away3D TypeScript project so it’s great when I can get a moment to work on my own 3D engine project. Much of my recent work has been on MRT support and whilst this feature is not strictly available in Flash yet, I have included support since choices about MRT architecture can impact some other parts of the engine such as the structures for deferred rendering and screen targets.

I hope that the team at Adobe will make MRT available soon and I will be able to switch on that feature. You can even help by voting for this feature in the Adobe Bugbase:

Something Visual

Because MRT is not available yet, I don’t have much to show about that so I decided to add something to Zest3D that everyone can look at. Physics!

Adding physics to Zest3D was a simple task thanks to a fantastic library called Oimo, a physics/collision engine written in pure AS3. Because Oimo is written in AS3, developers can easily tweak the code as they see fit. Out of the box, Oimo has a direct one-to-one mapping with the structures of Zest3D meaning that there is very little code to bind during integration. Oimo slots together naturally making it the perfect solution for Zest3D physics and not to mention, it’s very fast.

How Fast?


Gary Paluk

Posted in zest3d Tagged with: , , , , , , , ,

Away3D Typescript 4.1 Alpha


Away3D TypeScript Alpha 4.1 Release

I’m excited to announce that Away3D TypeScript 4.1 is now in Alpha. Some additional developer resources are also available from the official Away3D TypeScript homepage:


Other Announcements

The release of Away3D for TypeScript has also been noted in the following blogs:


Source Files


Flash Online Conference

Karim and I will be presenting at the Flash Online Conference. We’ll cover details of our development of the Away3D TypeScript library, as well as getting setup with TypeScript. This will be a live screencast on Friday Oct 11th 2013 at 14:00 (UTC+0) . The event will be recorded if you wish to watch it back at a later date.

For more details about the Flash Online Conference, please visit the official Flash Online Conference Facebook page and feel free to vote for the Away3D TypeScript option in the poll.


The Flash Online Conference #6 is now over. Thank you to everyone who could make it to the live session and as always, a big thank you to Sergey Gonchar who organizes these great community events. You can get more details about this session from Sergey’s blog post or click the link below to view the recorded session:


Gary Paluk


Posted in away3d Tagged with: , , , , , ,

Away3D TypeScript 3


Away3D TypeScript Dev 3

After some weeks now, Karim and myself are fast approaching the first major milestone of Away3D TypeScript development. When we originally scoped this project, I gave myself some very steep learning goals. I had never written TypeScript before and had little time to get rolling with arguably some of the most cutting edge and complex HTML5 features.

Fortunately, coming from AS3, TypeScript was very intuitive and I felt pretty fluent after day two. Karim, on the other hand, is a whiz with JS, TypeScript and general HTML5-ness so between us, we found that our skill sets were very complimentary. Development moved quickly and it has been thoroughly enjoyable. I especially loved the challenge of that steep learning curve.

During this development phase, my main areas of focus has been the integration of WebGL, GLSL Shaders, AGLSL, Stage3D/Context3D, ByteArray etc. A lot of focus has been on ensuring that current uses of the Away3D library can easily switch to the TypeScript library and help aid the porting process of existing projects whilst developers can continue to use their tried and tested workflows.



Hardware accelerated graphics enables the rasterization of  millions of textured and lit polygons. WebGL is a graphic API that allows your web browser to access the 3D hardware of your PC, mobile or tablet.

Many browsers already have great support for the WebGL API and this provides blisteringly fast access and render speed commonly associated with hardcore 3D gaming. The result is that games that run within your Web Browser can now benefit from the same graphical performance as your 3D accelerated PC/Console games.

Here are some WebGL capable browsers:



To allow developers to reuse existing Away3D shader code, I incorporated a utility package called AGLSL. This package enables you to take AGAL shader code and convert it directly into GLSL shader code. This means that developers that are already familiar with AGAL have the choice of writing their shaders in either AGAL or GLSL shader languages,  as well as the additional ability of reusing preexisting AGAL code.

The Display3D package has additional API support for GLSL, which is not available in Flash.


In Progress

It’s probably important to note that things are still under development. The current source code would not be considered a fully featured or stable release but there should be enough to get started. If you find an issue and you would like to raise a bug report, please do so on GitHub’s issue tracking system.


Already developing?

We are already seeing some exciting Away3D TypeScript demos and many people are following the development progress and dabbling with the codebase. If you build something, we’d really like to hear your feedback and I’d also like to compile a list of your examples for another blog entry so please leave a link to your demos/examples below:



Here are some of our own tests/demos to take a look at:


Gary Paluk

Posted in away3d Tagged with: , , , ,

Away3D TypeScript 2


Away3D TypeScript Dev 2

After the fantastic response to my last blog post, I decided to post a progress update. Karim and myself have been busy working on new features, model importing, lighting and AGAL shader systems. Steady progress has been made and today, I’m pleased to be able to show our first scene demo. The demo is running on the full Away3D TypeScript stack.


One key goal of the TypeScript project was to allow existing Away3D projects to easily migrate to HTML5 and WebGL, ensuring that existing AGAL effects would move seamlessly to the TypeScript platform, without modification, and generally enabling developer workflow to remain consistent across platforms. With that in mind, care has been taken to ensure that the APIs remain consistent and that Away3D and AS3 users and developers can take full advantage of familiar class packages. The new framework will also allow developers to seamlessly integrate GLSL shader effects that weren’t possible before.

What Next?

We are now very focussed on continuing to provide additional framework capabilities and code stability. We are working on demos and example projects that will focus our efforts towards testing and additional features.

Demo (Requires WebGL)

Gary Paluk


Posted in away3d Tagged with: , , , , , ,

Away3D TypeScript


Away3D TypeScript Dev

For the last 8 weeks, Plugin.IO have been working alongside Karim Beyrouti to port the popular Away3D framework to JavaScript via TypeScript. The project involves using bleeding edge HTML5, WebGL and TypeScript technologies and is aimed to be a direct port of the existing Away3D framework. TypeScript was chosen as it enables developers to create programs that adhere to stricter programmatic paradigms, in order to aid development of large scale projects, by offering typed structures similar to those found in C++, C#, Java etc. The TypeScript code is then compiled down to structured JavaScript code.

Our role during the project has been in the areas of WebGL interfacing, algebra math, GLSL, core porting and the adaptation of these to adhere to the existing Away3D API effectively. The result was a collaboration to develop TypeScript packages for Geom, Display3D, Display and BitmapData, Utils etc that attempt to mimic the Flash API as closely as practicable whilst also adding some additional functionality for GLSL shaders. This effectively makes working with the new classes intuitive and familiar when coming from the AS3 language (which, incidentally, resembles some of the TypeScript constructs and structures).

The process has involved multiple layers of reverse engineering of the Flash framework and the incorporation of some of Adobes own code (Kindly given to us by Adobe themselves – Thank you Adobe).

The brilliant Karim Beyrouti was on a mission to port a large subset of the core Away3D classes (which he managed incredibly quickly) whilst I worked on some core porting and AS3 style libraries. I then followed this with systems that would carriage the data through an AGAL to GLSL translation system along with adaptations for particular cases that are enforced by the code derived from Adobes own code. This was a period of development that would require all subsystems to slot together at the end. After everything was ready, a few tweaks and out popped our visual demo running on the full view stack of the new TypeScript Away3D system.

[added 20.08.2013] (Inside culling) (Blend modes)

We are already moving into the main debugging phase. As you can imagine, over 300 classes in 8 weeks means a lot to debug but having a visual is a major milestone and will prove to aid the debugging effort considerably. There are a few things left to add such as animators and file format parsers but we are now well on the way to bringing a complete Away3D JS / TypeScript library to the HTML5 world.

You can get all of the code today from the GitHub repo at:

Gary Paluk

Posted in away3d Tagged with: , , , ,

What is Zest3D

Zest3D is a super fast, cross-platform, 3D engine that supports modern programmable GPU render techniques and advanced 3D engine features. Zest3D is available for iPhone, iPad, Android, Desktop, Facebook, Ouya, Nook, Blackberry Playbook etc (see below for all platforms). Zest3D also helps you manage your development budget by enabling developers to write code once and deploy across all of the mobile, web and desktop platforms below.

If you are interested in creating the next wave of great 3D mobile content, awesome social web games or slick apps then Plugin.IO can offer you hands on technical support with early access to the Zest3D engine.

System requirements


  • 2.33GHz or faster x86-compatible processor, or Intel Atom™ 1.6GHz or faster processor for netbook class devices
  • Microsoft® Windows® XP, Windows Server 2008, Windows Vista® Home Premium, Business, Ultimate, or Enterprise (including 64 bit editions) with Service Pack 2, Windows 7, or Windows 8 Classic
  • 512MB of RAM (1GB recommended)

Mac OS

  • Intel® Core™ Duo 1.83GHz or faster processor
  • Mac OS X v10.6, v10.7, or v10.8
  • 512MB of RAM (1GB recommended)


  • ARMv7 processor with vector FPU, minimum 550MHz, OpenGL ES 2.0, H.264 and AAC HW decoders
  • Android™ 2.3 and above
  • 256MB of RAM


  • iPod touch 4, iPhone 3GS, iPhone 4, iPhone 5, iPad, iPad 2, iPad mini or iPad with Retina display
  • iOS 4.3 or later

Adobe Access clients for protected content playback

  • Windows: Microsoft Windows XP (32 bit), Windows Vista (32 bit and 64-bit), or Windows 7 (32 bit and 64 bit)
  • Mac OS: Mac OS X v10.6 or v10.7 (32 bit and 64 bit)
  • Linux: openSUSE 11.3 or later (32 bit and 64 bit), RHEL 5.6 or later (32 bit and 64 bit), or Ubuntu 10.04 or later (32 bit and 64 bit)

Note: Ubuntu Linux requires libhal (Hardware Abstraction Layer). Install hal to play the protected content.

Posted in zest3d Tagged with: , , , , , ,

Zest3D on the Ouya

We got the chance to present Zest3D at the Stage3D Online Conference. We had great fun and a fantastic response from developers around the world. It’s still early days but we’re continuing to incorporate many advanced 3D features for developers to use in their games, apps and creative coding projects.

Last week we were invited to present at the Ouya UK meetup and managed to get our hands on an Ouya and we decided that we would get something running on the console. We spent less than two days creating a quick and were surprised that the 3D scenes that were we sending to the little Ouya was not pushing it to its limits despite the Ouya’s low mobile specs.

Most of the buildings in our scene contain 30k – 45k polygons with no LODs and we are clipping over 50% of the geometry as we hacked in a skybox. This was a very simple demo but it definitely showed us the great potential for creating home console games using Zest3D and we’re excited to see what real artists and game studios will do with the Zest3D platform.

Posted in zest3d Tagged with: , , , ,