Fork me on GitHub Ejecta

A Fast, Open Source JavaScript, Canvas & Audio Implementation for iOS & tvOS

e·jec·ta, noun – debris that is ejected during the formation of an impact crater

Ejecta is like a Browser without the Browser. It's specially crafted for Games and Animations. It has no DIVs, no Tables, no Forms – only Canvas and Audio elements. This focus makes it fast.

JavaScript code is executed directly by a JavaScript VM (JavaScriptCore), the HTML5 Canvas 2D and WebGL API is implemented in native code with OpenGL, Audio is implemented with OpenAL. Several other APIs (touch, accelerometer, localStorage, gamepad) behave like those in a real browser.

Many HTML5 Games run out of the box, or with minimal modifications – with better performance, better sound support, Game Center integration and more.

Perfect With Impact, Plays Nice With Others

While Ejecta works nicely with straight forward Canvas animations, it grew out of a project to make the Impact Game Engine work natively on the iPhone. Chances are your Impact games run without modification – apart from controls and screen size – on Ejecta.

Older Ejecta versions (then called iOSImpact) implemented a lot of hacks and shortcuts to make it work. Ejecta mimics the HTML5 APIs more closely and thus works with a variety of Canvas libraries, including ThreeJS.

App Store Compatible

Many games made with Ejecta found their way into the App Store without a problem. Have a look at X-Type, Biolab Disaster, Kitchen Fury, Steamclash,Blockits or at this thread.

Device Support

Ejecta runs on all iOS 8.0 or newer devices that support the armv7 or arm64 instruction set and run: the iPhone4S and newer as well as all iPads starting from the 2nd generation. It supports the retina resolution of all devices and screen sizes