Benchmarking HTML5 using PirateMark

Nowadays, it is not possible to reach the majority of users on the internet using Flash Player. Mobile devices that support Flash Player are dwindling, support for a standard Linux plugin has stopped and Windows 8 is going to only provide Flash Player support for a whitelisted subset of the internet.

NME and Flambe are both Haxe-based frameworks that can support both HTML5 and Flash Player, so you can provide the best experience to users, everywhere. Today, Flambe is also getting support for using NME as a backend, so that it will be possible to use either framework to also target Windows, Mac, Linux, iOS, BlackBerry, Android and webOS natively.

Iain Lobb created the “PirateMark” benchmark as an alternative to the BunnyMark benchmark you may be familiar with already. Unlike BunnyMark, PirateMark uses a smaller number of very large objects, with heavy amounts of rotation. It was originally created to benchmark HTML5 canvas performance, which we are using it for now.

Flambe is a “web first” framework, designed to maximize performance in the browser, while also supporting Flash and now NME for native platforms. NME is designed to mirror the Flash API and supports a broad variety of platforms. Depending upon your needs, Flambe and NME are both suitable for HTML5 games.

The source code is available at It should work properly with the public release of NME, but in order to test with Flambe you will need development builds of NME and Flambe. Integrated compatibility between NME and Flambe should be coming in the next release of both frameworks.

  • Guest


  • cristianduro

    NME Forever. 🙂

  • Daniel Constantinescu

    Hello. The html5 example doesn’t work:
    ReferenceError: requestAnimationFrame is not defined…ionFrame || (webkitRequestAnimationFrame || (mozRequestAnimationFrame || (oReque…

  • Bruno Garcia

    For what it’s worth, the most recent version of Flambe’s piratemark can be found at and

  • Kee Real

    Is it possible to use SWF files for html5 target like for android target? Seems that you are working on it, aren’t you?
    And, could you explain what is “swfdev” flag?

  • I created a new SWF library, which uses a port of as3swf for better shape rendering, and also has initial support for HTML5.

    The problem is that something in the library is breaking compatibility with Neko 1.8.2, which means that the NME command-line tools are not able to run unless you are using a bleeding edge version of Neko, which I don’t prefer to force on users. It’s the cause of a minor bug, which could be solved, but is very difficult to track down since the as3swf code is intertwined and very large.

    I added a “swfdev” flag to the newer library so I could maintain compatibility with current SWF library while still being able to develop the new one. I wish I could find what is the cause of the Neko problem :/