All the following stuff is under this completely open license.

These sources consist four different parts:
EvoTinyEngine
Evo3d
EvoTween
SoG Demo

None of these are documented so I have created this little pdf to clarify the concept of demoengine used in this demo.

These libraries are rather easy to use. Here’s the HelloWorld of EvoTinyEngine:

assets = new Assets(720, 405);

engine = new TinyEngine(assets);

engine.addModifier(new ModifierPixels(assets, "pixel"), 0, 64);
engine.addModifier(new ModifierMandel(assets, "mandel"), 64, 256);
engine.addModifier(new ModifierBloom(assets, "bloom"), 256, 512);
       
addChild(engine);
               
engine.play();

You should have all the examples you need about other libraries in the SoG Demo zip. Here are few example lines about syntax’s.

// EvoTween is a Command-pattern based tweener that uses the linked list method. This way you can run few thousands tween’s at ones. So convenient… :)
// Only minus at the moment is that it only supports public variables.

new EvoTween(this,  {value:1},  duration,  Expo.easeInOut,  delay, complete:Function,  param:*);

// After the tween is over it is disposed and the Garbage Collector takes care of the rest.

Evo3d is powerful because of following solutions:
– It use linked list.
– It only z-sort meshes not polygons.
– The z-sort is based on Insertion Sorting. Slightly modified from Michael Baczynski‘s code.
– It uses the graphics.drawGraphicsData(graphicsData:Vector.IGraphicsData) method.

// Here’s how to do Sphere. Following classes have much more parameters then here. This is only the sort way.

var camera:Camera = new Camera3D();
var renderer:RendererBitmapData = new RendererBitmapData(bitmapdata, null, 0x000000);
var engine3d:Engine3D = new Engine3D(renderer, camera);

var light:Light = engine3d.light;

var material:MaterialBitmap = new MaterialBitmap(frontTexture, backTexture);
var shading:ShadingPhong = new ShadingPhong(0xFFFFFF, 0, BlendMode.MULTIPLY)
var sphere:Sphere = new Sphere(material, 50, 16, 16, shading);

engine3d.addMesh(sphere);
engine3d.render();

I hope this will give you some ideas or help you some way. It would be awesome to see demo made with this stuff!
I’m going to develop these more, but won’t start an open svn since I do not want this stuff to become a burden for me. It could feel like a job and I all ready have one. I think I’ll post some more libraries after next demo. Don’t report any bugs if you find them.

I have few new ideas about approaches to get that 3d much faster, but now I need a break.