Away3D is an
open-source platform for developing interactive 3D graphics for
video game
A video game or computer game is an electronic game that involves interaction with a user interface or input device (such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device) to generate visual fe ...
s and
applications, in
Adobe Flash or
HTML5
HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
. The platform consists of a 3D world editor (Away Builder),
[Away Builder](_blank)
Away Tools a
3D graphics engine (Away3D or AwayJS), a 3D physics engine (Away Physics)
[Away Physics](_blank)
Away Foundation and a compressed 3D model file format (AWD).
[AWD Format Website](_blank)
/ref>[AWD Format](_blank)
Away Tools
Development is managed by the Away Foundation, a UK-based non-profit
A nonprofit organization (NPO), also known as a nonbusiness entity, nonprofit institution, not-for-profit organization, or simply a nonprofit, is a non-governmental (private) legal entity organized and operated for a collective, public, or so ...
focused on building and maintaining free and open-source software resources for high-performance mobile games and applications. The foundation is supported by corporate sponsorship ( Adobe, JetBrains among others) and individual donors.
Platform
Away Builder
Away Builder is an open-source integrated development environment
An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
for importing, refining, preparing and exporting 3D models and animations. It can import 3D models from various 3D applications such as Autodesk 3ds Max, and can bake lighting into texture maps. The primary purpose of Away Builder is exporting 3D model packages for the Away3D engine. It supports the compressed AWD binary format, enabling smaller sizes for 3D models than ASCII
ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
-based formats such as OBJ.
The Away Extension's plugin enables exporting 2D and 3D content from Adobe Animate into Away3D or AwayJS.
Away3D
Away3D is an open-source ActionScript 3
ActionScript is an object-oriented programming language originally developed by Macromedia Inc. (later acquired by Adobe). It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript (meani ...
engine for developing interactive 3D graphics within Adobe Flash Player
Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is a discontinuedExcept in China, where it continues to be used, as well as Harman for enterprise users. computer program for viewing multimedia ...
and Adobe AIR. Away3D runs on current web browser
A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
s utilizing the Adobe Flash Player
Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is a discontinuedExcept in China, where it continues to be used, as well as Harman for enterprise users. computer program for viewing multimedia ...
, and uses Stage3D for GPU-accelerated rendering.
The engine can render 3D models and perform various other 3D computations. It supports hierarchical object transformation with features such as position, rotation and scaling, rendering of bitmap textures. Real-time lighting and illumination is supported using Phong shading, Gouraud shading, point and directional lighting, cascading shadows, normal and specular mapping, global illumination and fog effects. It also supports stereoscopic rendering, 3D sound, extrusion tools, particle animation and skeletal animation. Post-processing effects may be used to enhance the quality of the graphics, and Away3D supports bloom, blur, depth of field and motion blur.[Away3D Features](_blank)
Away3D.com
Away3D 4 and onwards fully supports GPU-accelerated graphics using the Stage3D API introduced in Flash Player 11, freeing up the CPU for other computational tasks. Since GPUs are capable of rendering many more textured triangles per second, it allows for much more detail and quality, and up to 100,000 triangles per frame instead of the typical 1,000 ceiling with CPU-based Flash rendering.
Away Physics is a physics engine based on the Bullet
A bullet is a kinetic projectile, a component of firearm ammunition that is shot from a gun barrel. They are made of a variety of materials, such as copper, lead, steel, polymer, rubber and even wax; and are made in various shapes and constru ...
physics library, for collision detection, soft and rigid body dynamics. The engine is built jointly by the Away3D team and the JiglibFlash team, and is tightly integrated with the Away3D render pipeline.
AwayJS
AwayJS is an open-source JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
3D graphics rendering engine for HTML5
HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
web browser
A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
s, and is a port of the Adobe Flash-based Away3D. The Away3D codebase was ported to Microsoft TypeScript
TypeScript (abbreviated as TS) is a high-level programming language that adds static typing with optional type annotations to JavaScript. It is designed for developing large applications and transpiles to JavaScript. It is developed by Micr ...
, a strongly-typed version of JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
that compiles to JavaScript files for compatibility with modern web standards. AwayJS runs on current web browser
A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
s and uses WebGL for GPU-accelerated rendering.
The engine can render 3D models and perform various other 3D computations. It supports hierarchical object transformation with features such as position, rotation and scaling, rendering of bitmap textures, and real-time lighting using Phong shading or Gouraud shading. It also supports shadow mapping, particle animation and skeletal animation.
AwayJS can render 2D and 3D graphical content using WebGL for GPU-accelerated rendering. It enables developers to use the existing Away Builder toolkit for editing, refining, compressing and texture baking 3D models and animations. AwayJS also supports the compressed AWD binary format, enabling smaller sizes for 3D models than ASCII
ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
-based formats such as OBJ.
The AwayJS API is consistent with the Flash version of Away3D, enabling existing developers to migrate from Flash to HTML5 seamlessly. To preserve backward-compatibility with Away3D, AwayJS enables developers to write GPU shaders in the Adobe Graphics Assembly Language (AGAL), or the standard OpenGL Shading Language (GLSL).
History
Away3D was started in 2007 by Alexander Zadorozhny and Rob Bateman as a fork of Papervision3D.
Away3D saw active community involvement since its introduction in 2007, and superseded Papervision3D after it was updated to support GPU-accelerated rendering using Stage3D. Three guide books have been published on 3D content development with Away3D.[Away3d 3.6 Cookbook](_blank)
Amazon.com
The author states that the engine began as a spare-time project, and was created for fun. After large ad agencies and game publishers started it, they had to "evolve to keep pace". In an interview he further states:
In 2009, the Away3D community released Away3D Lite, a lighter version of the engine for Flash advertisements and other size-constrained content.[Away3D Lite Version 1.0](_blank)
Away3D.com[Away3D Lite v1.0: fastest and smallest 3d engine in Flash](_blank)
, Rob Bateman, 11 Sep 2009, Away3D.com Away3D Lite was the fastest and smallest full-featured 3D engine built for Flash. It weighed in at 25 KB and performed 4 times faster than the full Away3D engine. No future versions were released.
In 2011, a Flash book noted in the section on "3D with Flash" that "Away3D and Alternativa3D are currently the preferred solution for performance and features because they have a more active development community".
In 2013, Adobe chose Away3D as the sole 3D engine included within the Adobe Gaming SDK. Since then, Adobe has funded further development in Away3D and Away Builder,
Adobe AIR and Adobe Flash Player Team Blog, Adobe and has updated the Adobe Gaming SDK with new releases of Away3D.
Adobe AIR and Adobe Flash Player Team Blog, Adobe
In 2016, Away3D 1.2 was ported to the Haxe
Haxe is a high-level cross-platform programming language and compiler that can produce applications and source code for many different computing platforms from one code-base. It is free and open-source software, released under an MIT License. ...
multiplatform language, enabling it to be cross-compiled to JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
and other languages that support 3D graphics. This also enables Away3D to run on OpenFL, a software framework with an API that is very similar to Adobe Flash Player
Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is a discontinuedExcept in China, where it continues to be used, as well as Harman for enterprise users. computer program for viewing multimedia ...
API.away3d 1.2.0
Ported to OpenFL 2.x/Haxe, Haxe
Haxe is a high-level cross-platform programming language and compiler that can produce applications and source code for many different computing platforms from one code-base. It is free and open-source software, released under an MIT License. ...
lib
References
Further reading
*
*
*
External links
*
*
{{Video game engines
3D scenegraph APIs
Free 3D graphics software
Free game engines
Software using the Apache license