Welcome to the Emma Content Development Kit (CDK).
Emma (Extensible Multi Media Architecture) is an open-source, modular, extensible, dynamic framework for declarative authoring and display of 2D and 3D interactive multimedia. It is targeted at a range of internet and embedded platforms.
Emma presents authored, high-performance interactive graphics experiences, leveraging the power of hardware-accelerated graphics using Ogre (http://ogre3d.org) as its rendering engine. Through Ogre, Emma supports advanced rendering capabilities such as skeletal animation (skin and bones), shadowing, particle systems (e.g. smoke, fire), shaders (Cg), high dynamic range rendering (HDR), multi-pass rendering, and volumetric textures.
The Emma runtime dynamically extends its functionality on the fly, loading functional extensions for debugging, authoring, physics simulation, format conversion, etc. The flexibility of this framework derives from a nimble Lua (http://lua.org) interpreter embedded within the core of Emma's runtime engine.
Emma enables declarative authoring of complex interactive scenes, using a powerful set of pre-defined multimedia objects (Nodes). Emma's tightly integrated scripting capability encourages quick and easy creation of new behavioral relationships. Authors can create new media components for reuse, applying the declarative markup, scripting functions, or any combination of the two. Programmers can create new media components natively, by using C++ or other languages with the Emma SDK, by scripting new processing capabilities into the Lua interpreter, or applying a combination of these two approaches.
Emma is specifically designed to be extended to a wide range of media presentation and content authoring tasks easily, and is built upon strong open-source components such as Ogre, Lua, SDL, Curl, and WxWidgets.
An extensible suite of scene markup files and content assets can be imported into the Emma runtime engine, and exported by Emma's authoring components.
Emma enables high-level integration between traditionally distinct scripting, 2D, 3D, image, sound, and video content assets, providing a fluid methodology for declaring both content and behavior in the scripting context. Compiled Lua files are read by the Emma runtime, enabling Emma to exploit Lua's incremental garbage-collection mechanism for dynamic scene management and binary compression for compact internet downloads.
Emma currently runs as a Mozilla plugin, as an ActiveX control, and as standalone applications. As an internet runtime, Emma also supports internet-specific features not traditionally found in game engines, including multiple file bases for distributed content and support for multiple Emma instances running within the same application.
To learn about using Emma, choose from the following: