Main Menu
Developer Info
Emma on SourceForge
Mailing List

Welcome to Emma3D
Written by Murat Aktihanoglu/Chris Marrin/Rob Myers/Rick Pasetto   
Wednesday, 16 November 2005

Emma is a free, open-source platform for creating and delivering real-time 3D rich media over the internet.

Emma (Extensible Multi Media Architecture) can run as a

  • Standalone application

  • Mozilla Plugin ( for example in Firefox )

  • ActiveX Control ( for example in Internet Explorer )

on MS Windows, Linux and MacOSX.

Emma utilizes

  • Lua for scripting

  • Ogre3D for real-time high-performance game-quality 3D rendering

  • AntiGrain for subpixel-perfect 2D rendering

  • wxLua and wxWidgets for cross-platform GUIs

With Emma, you can create 3D applications without editing and compiling executables. Emma accepts as input a very flexible declarative markup. The objects created through this markup can be edited directly by the very efficient Lua scripting engine, which is fast becoming the industry standard for real-time 3D graphics applications. Emma uses the high-performance Ogre3D engine for rendering which provides advanced rendering features. Among its many extensions, Emma also provides the content author a full set of GUI widgets through the wxLua wrapper around wxWidgets.

Last Updated ( Thursday, 09 February 2006 )
Emma 0.4 now available
Written by Murat Aktihanoglu/Chris Marrin/Rob Myers/Rick Pasetto   
Wednesday, 09 November 2005
Emma 0.4 is now available for download. Emma is available under the LGPL and now you can download the Emma source code from

Release Notes:

1 ) Fusion, Emma's Lua-C++ integration package, has been split out into its own module.

You can now get Fusion separately from Emma, and use it in your projects where you need efficient integration between C++ and Lua.

2 ) Text2D node is now implemented.

Emma can now display "screen-aligned text" using the AntiGrain Geometry library ( A much broader range of high-quality 2D rendering elements is scheduled to be implemented using this library.

A suite of input sensors have been implemented; these include:

3 ) ButtonSensor node provides keyboard and mouse button input from the user.

4 ) ValueSensor node provides valuator input (such as mouse position) from the user.

5 ) WindowSensor node provides an interface to the presentation window and its window system events.

6 ) VectorInterpolator node provides a powerful, efficient animation interpolator.

This can be used to import keyframed animation poses from modeling and animation tools, and interactively generate continuous inbetweens across these sampled poses.

7 ) Overloaded SFVec3f operators are now implemented:

The API for operator overloading has been improved to simplify its use. The operators +,-,*,/, unary minus and equals have been implemented for SFVec3f. For example, given that eye, center and up are SFVec3fs and stepSize is a float, the author can now write:

result = eye + (((eye - center):normalize()) * -stepSize)
You can also perform equality comparisons against tables like this:
f (result == {900,0,0}) then s = "Passed" else s = "FAILED" end
This approach can be applied to the other vector classes and where ever else it seems called for. See mainOperatorTest.ema to see the test in action...

8) WxGUI node has a greatly improved implementation.

A 'floating' field has been added to the WxGUI node. If this is true, the dialog floats as a modeless dialog. If this is false, the dialog is placed within the Emma window like an overlay and moves as part of the Emma window, whenever the Emma window moves.

WxWidgets node has been implemented to enable easy connection of GUI events and Emma objects.

9) Shape node now has a 'pickable' field.

This field supports a comprehensive interface for picking contained geometry and for adding content logic to the resultant picking events. See the CDK and sample content for examples of this new interface.

We are eagerly anticipating community involvement at large. We're looking forward to hearing from you on the Emma forums!
Last Updated ( Wednesday, 09 November 2005 )
Emma Presentation
Written by Rick Pasetto/Chris Marrin   
Wednesday, 26 October 2005
Chris Marrin gave an overview presentation on what Emma is and its current state. Click here to download it.
Last Updated ( Wednesday, 09 November 2005 )