Away3D

Last updated

Original author(s) Rob Bateman, Alexander Zadorozhny, Fabrice Closier, Peter Kapelyan, Greg Caldwell, Andreas Engstrom, Stephen White, David Lenaerts, Richard Olsson, Cauê Waneck [1]
Developer(s) Away Foundation
Initial release2007;17 years ago (2007) [2] [3]
Final release
4.1.6 / 24 January 2014;10 years ago (2014-01-24) [4]
Repository
Written in ActionScript 3, TypeScript
Operating system Web, Windows, iOS, Android, BlackBerry
Type Game engine
License Apache License 2.0
Website away3d.com

Away3D is an open-source platform for developing interactive 3D graphics for video games and applications, in Adobe Flash or HTML5. The platform consists of a 3D world editor (Away Builder), [5] [6] a 3D graphics engine (Away3D or AwayJS), a 3D physics engine (Away Physics) [7] and a compressed 3D model file format (AWD). [8] [9] [10]

Contents

Development is managed by the Away Foundation, a UK-based non-profit focused on building and maintaining free and open-source software resources for high-performance mobile games and applications. [10] [11] The foundation is supported by corporate sponsorship (Adobe, [12] JetBrains [13] among others) and individual donors. [11]

Platform

Away Builder

Away Builder is an open-source integrated development environment for importing, refining, preparing and exporting 3D models and animations. [5] It can import 3D models from various 3D applications such as Autodesk 3ds Max, and can bake lighting into texture maps. [5] The primary purpose of Away Builder is exporting 3D model packages for the Away3D engine. [5] It supports the compressed AWD binary format, enabling smaller sizes for 3D models than ASCII-based formats such as OBJ.

The Away Extension's plugin enables exporting 2D and 3D content from Adobe Animate into Away3D or AwayJS. [14]

Away3D

Away3D is an open-source ActionScript 3 engine for developing interactive 3D graphics within Adobe Flash Player and Adobe AIR. Away3D runs on current web browsers utilizing the Adobe Flash Player, and uses Stage3D for GPU-accelerated rendering.[ citation needed ]

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. [15] [16] 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. [11] [16] It also supports stereoscopic rendering, 3D sound, extrusion tools, particle animation and skeletal animation. [16] Post-processing effects may be used to enhance the quality of the graphics, and Away3D supports bloom, blur, depth of field and motion blur. [16]

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. [17] 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. [18]

Away Physics is a physics engine based on the Bullet physics library, for collision detection, soft and rigid body dynamics. [7] The engine is built jointly by the Away3D team and the JiglibFlash team, and is tightly integrated with the Away3D render pipeline. [7]

AwayJS

AwayJS is an open-source JavaScript 3D graphics rendering engine for HTML5 web browsers, and is a port of the Adobe Flash-based Away3D. [19] [20] The Away3D codebase was ported to Microsoft TypeScript, a strongly-typed version of JavaScript that compiles to JavaScript files for compatibility with modern web standards. [21] [22] AwayJS runs on current web browsers and uses WebGL for GPU-accelerated rendering. [19]

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. [19] It also supports shadow mapping, particle animation and skeletal animation. [19]

AwayJS can render 2D and 3D graphical content using WebGL for GPU-accelerated rendering. [23] It enables developers to use the existing Away Builder toolkit for editing, refining, compressing and texture baking 3D models and animations. [24] AwayJS also supports the compressed AWD binary format, enabling smaller sizes for 3D models than ASCII-based formats such as OBJ. [25]

The AwayJS API is consistent with the Flash version of Away3D, enabling existing developers to migrate from Flash to HTML5 seamlessly. [19] 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). [19]

History

Away3D was started in 2007 by Alexander Zadorozhny and Rob Bateman [2] as a fork of Papervision3D. [3]

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. [26] [27] [28]

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:

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.

Robert Bateman, Founder, Interview with Robert Bateman, founder of Away3d, by JetBrains [10]

In 2009, the Away3D community released Away3D Lite, a lighter version of the engine for Flash advertisements and other size-constrained content. [29] [30] 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. [30] No future versions were released. [29]

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". [3]

In 2013, Adobe chose Away3D as the sole 3D engine included within the Adobe Gaming SDK. [31] [32] Since then, Adobe has funded further development in Away3D and Away Builder, [33] and has updated the Adobe Gaming SDK with new releases of Away3D. [34]

In 2016, Away3D 1.2 was ported to the Haxe multiplatform language, enabling it to be cross-compiled to JavaScript and other languages that support 3D graphics. [35] This also enables Away3D to run on OpenFL, a software framework with an API that is very similar to Adobe Flash Player API. [36]

Related Research Articles

<span class="mw-page-title-main">Adobe Flash</span> Discontinued multimedia platform used to add animation and interactivity to websites

Adobe Flash is a discontinued multimedia software platform used for production of animations, rich internet applications, desktop applications, mobile apps, mobile games, and embedded web browser video players.

<span class="mw-page-title-main">ActionScript</span> Object-oriented programming language created for the Flash multimedia platform

ActionScript is an object-oriented programming language originally developed by Macromedia Inc.. It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript, though it originally arose as a sibling, both being influenced by HyperTalk. ActionScript code is usually converted to byte-code format by a compiler.

SWF is a defunct Adobe Flash file format that was used for multimedia, vector graphics and ActionScript.

<span class="mw-page-title-main">Adobe Shockwave</span> Multimedia platform

Adobe Shockwave is a discontinued multimedia platform for building interactive multimedia applications and video games. Developers originate content using Adobe Director and publish it on the Internet. Such content could be viewed in a web browser on any computer with the Shockwave Player plug-in installed. MacroMind originated the technology; Macromedia acquired MacroMind and developed it further, releasing Shockwave Player in 1995. Adobe then acquired Shockwave with Macromedia in 2005. Shockwave supports raster graphics, basic vector graphics, 3D graphics, audio, and an embedded scripting language called Lingo.

A shading language is a graphics programming language adapted to programming shader effects. Shading languages usually consist of special data types like "vector", "matrix", "color" and "normal".

Adobe Flash Player is discontinued computer software for viewing multimedia content, executing rich Internet applications, and streaming audio and video content created on the Adobe Flash platform. It can run from a web browser as a browser plug-in or independently on supported devices. Originally created by FutureWave under the name FutureSplash Player, it was renamed to Macromedia Flash Player after Macromedia acquired FutureWave in 1996. It was then developed and distributed by Adobe as Flash Player after Adobe acquired Macromedia in 2005. It is currently developed and distributed by Zhongcheng for users in China, and by Harman International for enterprise users outside of China, in collaboration with Adobe.

<span class="mw-page-title-main">Adobe AIR</span> Cross-platform runtime system for building rich web applications

Adobe AIR is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile applications, programmed using Adobe Animate, ActionScript, and optionally Apache Flex. It was originally released in 2008. The runtime supports installable applications on Windows, macOS, and mobile operating systems, including Android, iOS, and BlackBerry Tablet OS.

<span class="mw-page-title-main">3D computer graphics</span> Graphics that use a three-dimensional representation of geometric data

3D computer graphics, sometimes called CGI, 3-D-CGI or three-dimensional computer graphics, are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering digital images, usually 2D images but sometimes 3D images. The resulting images may be stored for viewing later or displayed in real time.

Web3D, also called 3D Web, is a group of technologies to display and navigate websites using 3D computer graphics.

<span class="mw-page-title-main">Computer graphics</span> Graphics created using computers

Computer graphics deals with generating images and art with the aid of computers. Computer graphics is a core technology in digital photography, film, video games, digital art, cell phone and computer displays, and many specialized applications. A great deal of specialized hardware and software has been developed, with the displays of most devices being driven by computer graphics hardware. It is a vast and recently developed area of computer science. The phrase was coined in 1960 by computer graphics researchers Verne Hudson and William Fetter of Boeing. It is often abbreviated as CG, or typically in the context of film as computer generated imagery (CGI). The non-artistic aspects of computer graphics are the subject of computer science research.

<span class="mw-page-title-main">WebGL</span> JavaScript bindings for OpenGL in web browsers

WebGL is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated usage of physics, image processing, and effects in the HTML canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

<span class="mw-page-title-main">Three.js</span> JavaScript library for 3D graphics

Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics in a web browser using WebGL. The source code is hosted in a repository on GitHub.

<span class="mw-page-title-main">Starling Framework</span> Open-source game framework

Starling is an open source game framework used to create 2D games that run both on mobile and desktop platforms. It recreates the traditional Flash display list architecture on top of accelerated graphics hardware. Several commercial games have been built with Starling, including Angry Birds Friends and Incredipede.

<span class="mw-page-title-main">Flare3D</span>

Flare3D is a framework for developing interactive three-dimensional (3D) graphics within Adobe Flash Player, Adobe Substance and Adobe AIR, written in ActionScript 3. Flare3D includes a 3D object editor and a 3D graphics engine for rendering 3D graphics. Flare3D runs on current web browsers utilizing the Adobe Flash Player, and uses Stage3D for GPU-accelerated rendering. Flare3D has not been under active development since late 2014.

CrossBridge is an open-source toolset developed by Adobe Systems, that cross-compiles C and C++ code to run in Adobe Flash Player or Adobe AIR. Projects compiled with CrossBridge run up to 10 times faster than ActionScript 3 projects. CrossBridge was also known as "Alchemy" and the "Flash Runtime C++ Compiler", or "FlasCC".

Papervision3D is an open-source, 3D graphics engine for rendering 3D content within Adobe Flash Player and Adobe AIR.

Stage3D is an Adobe Flash Player API for rendering interactive 3D graphics with GPU-acceleration, within Flash games and applications. Flash Player or AIR applications written in ActionScript 3 may use Stage3D to render 3D graphics, and such applications run natively on Windows, Mac OS X, Linux, Apple iOS and Google Android. Stage3D is similar in purpose and design to WebGL.

<span class="mw-page-title-main">OpenFL</span> Software framework for video games

OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games. OpenFL applications can be written in Haxe, JavaScript, or TypeScript, and may be published as standalone applications for several targets including iOS, Android, HTML5, Windows, macOS, Linux, WebAssembly, Flash, AIR, PlayStation 4, PlayStation 3, PlayStation Vita, Xbox One, Wii U, TiVo, Raspberry Pi, and Node.js.

References

  1. Away3D Team, at the Official Website
  2. 1 2 Away3D project page, Google code
  3. 1 2 3 Arnaud, Remi (2011). "3D in a Web Browser". In Eric Lengyel (ed.). Game Engine Gems 2. CRC Press. pp. 207–208. ISBN   978-1-56881-437-7.
  4. "Away3D 4.1.6 Release". Archived from the original on 25 November 2015. Retrieved 24 November 2015.
  5. 1 2 3 4 Away Builder, Away Tools
  6. Away Builder, GitHub repository
  7. 1 2 3 Away Physics, Away Foundation
  8. AWD Format Website
  9. AWD Format, Away Tools
  10. 1 2 3 Ganenkova, Elena (28 October 2013). "Interview with Robert Bateman, founder of Away3d, an open-source 3D engine for the Flash Platform". JetBrains.
  11. 1 2 3 Hu, Michael (17 July 2012). "Q&A With The Away Foundation's Rob Bateman". Adobe.
  12. Away3D & Adobe Archived 2016-03-08 at the Wayback Machine , 17 Jul 2012, by Rob Bateman, Away3D
  13. JetBrains partnership and interview Archived 2016-03-08 at the Wayback Machine , 28 Oct 2013, by Rob Bateman, Away3D
  14. Away Extensions, By The Away Foundation, Adobe Add-on Marketplace
  15. Away3D, FlashMagazine
  16. 1 2 3 4 Away3D Features, Away3D.com
  17. Stage3D vs WebGL Performance, Airtight Interactive
  18. Away3D 4.0 Alpha release - Broomstick Archived 2011-09-23 at the Wayback Machine , Away3D.com
  19. 1 2 3 4 5 6 "Away3D Typescript Website". Archived from the original on 17 September 2021. Retrieved 20 September 2014.
  20. AwayJS, GitHub
  21. Away3D makes its way to Typescript!, Adobe AIR and Adobe Flash Player Team Blog
  22. Away3D Typescript 4.1 Alpha, Away3D Blog
  23. Sperl, Daniel (5 February 2014). "Starling JS flocking to the Away Foundation". Gamua.
  24. Introducing AwayJS, Lanyrd, Rob Bateman, 20 May 2014
  25. Tutorial: Away3D TypeScript: Resource Complete Archived 2014-08-29 at the Wayback Machine , 7 July 2014, Grok Digital Designs
  26. Away3d 3.6 Cookbook, Amazon.com
  27. Away3D 3.6 Essentials (Community Experience Distilled), Amazon.com
  28. The Essential Guide to 3D in Flash, Amazon.com
  29. 1 2 Away3D Lite Version 1.0, Away3D.com
  30. 1 2 Away3D Lite v1.0: fastest and smallest 3d engine in Flash Archived 2016-03-08 at the Wayback Machine , Rob Bateman, 11 Sep 2009, Away3D.com
  31. Introducing Game Development Tools Archived 2014-08-10 at the Wayback Machine , ByteArray.org
  32. Gaming SDK, Adobe Systems
  33. 2013: Full Speed Ahead for Adobe Gaming!, Adobe AIR and Adobe Flash Player Team Blog, Adobe
  34. Adobe Gaming SDK Updated, Adobe AIR and Adobe Flash Player Team Blog, Adobe
  35. Away Foundation roadmap 2014, Away3D Foundation
  36. away3d 1.2.0, Ported to OpenFL 2.x/Haxe, Haxelib

Further reading