I just came back from the FITC Amsterdam and because at the whole conference, Molehill was all over the place, I felt like I have to post the progress of my Molehill accelerated 2D engine. Here is another test with 1600 animated sprites using spritesheets. It runs with 40fps on my machine in Safari, Firefox is a lot slower and it feels a bit jerky. Maybe it’s an issue of the incubator build, maybe an issue in my engine… I’ll find out.

(Note: The demo is broken with the latest Flashplayer 11 Release due to API changes)
Check out the demos showing all effects and features on Github.
I’ll push the engine open source in an alpha version next week (I hope…). These are the features that are already implemented:
- Flash-displaylist-like hierarchy for 2D elements (It will feel very familar)
- 2D sprites with spritesheets for animation, tinting, blendmodes, pivot points
- Scenes & scene management
- 2D camera
- SpriteClouds for fast sprite rendering (batch drawing)
- Configurable particlesystem that runs entirely on the GPU
- Full mouseevent support for sprites
- Utils (Color mixing, random number generation, …)
- Extendible rendering pipeline to build your own effects and extensions using PixelBender 3D.
Planned features are:
- Pixel precise mouse events. At the moment it’s only a bounding box check.
- Faster batching of SpriteClouds.
- More particlesystem options
- ATF texture support
- Distortion effects
- Box2D integration
- …
And if anyone likes to contribute, just drop me an email…
You can follow any responses to this entry through the RSS 2.0 You can leave a response, or trackback.




On my machine (c2d, integrated graphics) Firefox & Opera starts at 30 FPS and drop at 12-15 after few seconds.
Wowww!! That’s cool . On my machine got 12-14 fps with firefox, 5 Year ago labtop.
stable at 21-24 fps on my corei5 laptop using chrome
40 fps on my safari, Macbook pro.
It’s great, Lars, i like it!! About the color mix part, does it support as colorTransform or with a separated util?
It’s just a tinting at the moment. No full color transform, but that can be added as well. The colors are mixed in a shader. I’ll expose the API soooon ;)
Nice ! Can’t wait for the API.
Imac 3 Ghz / 4go RAM :
10 fps on chrome
40 fps on safari.
Very cool~
Looking forward to it :-))
A cool and steady 60fps on Win7/IE 8/Radeon 6800
The difference between openGL and DirectX 11? Hope not!
Man, this is pretty interesting can’t wait for the lib, i’ll try it for sure!.
Pingback: Episode 4 – Flash Special (plus WebGL and Unity3D) | The Creative Coding Podcast
really smooth, weel done !
I can help you out with this project. shoot me an email.
very cool,i want to have a try. gaolun123@hotmail.com thanks
Pingback: Molehill 3D / 2D and Flaemo – First attempt | Flaemo
I would like to know how this compares to the Starling-Framework?
@Harry: Then give it a try and start to compare ;)
@Harry I wrote a couple of tests to compare performance animating thousands sprites using Starling and ND2D. ND2D seems to come on top due to its implementation of Sprite2DCloud and Sprite2DBatch
Pingback: Starling = Stage3D / Molehill for Flash Player 11 made easy. | Pierre Chamberlain
Is there a way to scale sprites in such a way where theres no anti-aliasing? Starling has texture smoothing so you could just say TextureSmoothing.NONE.
When I scale by using scaleX or the camera I get very blurry sprites.
At the moment, there is no such feature. Textures will always be smoothed, but I’ll add it to the wishlist ;)
Thanks Lars. I am having fun playing around with ND2D so far. I have found a temporary work around by just enlarging the textures with bitmapData.draw before I bring them into a Texture2D. It works just fine.
If I have a tile based game is it better to use a 2D Vector of Sprite2D? or is it possible/faster to use one of those cloud classes?
Whats the best way to utilize a sprite sheet? So i have all my tiles side by side in a png file. For now I am just setting the sprite2D.spritesheet to create animations of a single frame and then play the animation associated with that tile on the sheet. Is there a better solution? Ideally I would just like to draw that portion of the texture onto the screen. It seems like this is unnecessarily abstracting what I am trying to do because I must create a spritesheet for every single tile.
@Bryce: Try to use a single cloud or a batch for all your tiles and put them into a single SpriteSheet or TextureAtlas. This way, you save a lot of texture memory and ND2D is able to speed up the rendering.
who can tell me how to get the really framerate while i set the project frameRate at 60fps?
Pingback: Photon Storm » Blog Archive » Infinivaders by Sosker (Stage3D game)
Pingback: Rakuten Blog » Blog Archive » 支持stage3D的框架你选哪个?
Pingback: Stage3D / AGAL from scratch. Part I – The Basics | Norbz's Dev Blog
I’ve tried compiling demos for iPad using Air3.2.
Results:
PC: 10000 sprites at 60FPS
iPAD: ~90 sprites at 40FPS…
Pingback: New Flash Things
In World2D mouse handlers, need to offset the stage mouse position by the bounds.x and bounds.y otherwise you won’t get accurate interactions.
Works fine without for fullscreen worlds only, fails if world has offset in stage.
Pingback: 48h programando videojuegos « Piterlab's Devblog
Pingback: 从头开始学 AGAL. 第一部分 – 基础 – LivingStone
Pingback: Flash Stage3D-Molehill game engine roundup - TapKings