Universo is a cross-platform "graphic engine" that provides HTML5 Canvas compatible API in JavaScript.

Key Features:

To be straight forward, just imagine a window frame that only contains one canvas element of the modern browser. Which supports all JavaScript APIs (Not only drawing, also keyboard/mouse events) inside a canvas element, but can not render neither any other DOM element nor CSS style.

Although Universo supports canvas API in JavaScript, it is NOT built upon any existing browser core (such as WebKit, Gecko, etc.). It is completely implemented from the scratch.

Universo is NOT a "game engine" at this stage, but it can be used as the graphic backend of a game engine or UI engine.


Universo is about to be the native accelerator for HTML5 Canvas based app on every platform.

  • Wrap with HTML5 Canvas based app as a single application package.
  • Provide better performance and extra features than canvas element in the platform's WebView control.
  • Behave like a native app.


Why building Universo?

  • Once I wanted to write a cross-platform app, but failed to find a "good enough" platform independent framework. So I started making one for myself.
  • It just like I want a race car, then I start from making its wheels manually…

Why using JavaScript and be Canvas API compatible?

  • HTML5 Canvas API is a "good enough" design (well, not the best, but a good start point), by simply following the standard spec, then I don't have to design my own set of APIs from the scratch.
  • There are already a lot of development resources around HTML5 Canvas (libraries and source code) existing on Web, and of course, in JavaScript.

How Universo evolves?

  • Before JavaScript, the first version of Universo executable is built up on C and Lua, in April 2011, I dropped the whole codebase and started over from C++ and JavaScript.
  • I investigated Google DART in Sep 2011, and decided to stay on JavaScript because DART is still far from mature.
  • The major part of code is done in just 1 month (spare time)
  • It is single threaded. I schedule the CPU time for VM and the app's main logic manually.

Playable Demos (Pre-Alpha quality):

NOTE: the quality of these prototypes are not good enough, optimization is on the way. :)

Birds simulation, you can use mouse to disperse those birds.


  • DONE
    • Mac/Windows 2D Canvas API prototype
  • WIP
    • A buggy WebGL API implementation…
    • Hardware acceleration.
    • iOS porting
  • TODO
    • Windows Runtime porting
    • Android porting
    • Application OTA loading and running

Press Reports & Presentations:

Live Videos:

About Creator:

  • My name is Yuan (Vincent) CHEN and I'm a 360 degrees developer, my experience is not limited to a cetain branch of programming. If you want to know more about my expertise, this is my Linkedin profile.
  • Email: artyyouth[AT]


Version History:

  • 2012/8/18 v0.1 release:


    • Small bug fixes and performance tuning.

    Known issues:

    • CPU consumption is too high due to bad scheduling algorithm (70%~80% on one CPU core).

  • 2012/3/24 Pre-Alpha release:


    • Make playable demos for both Windows and Mac.

    Known issues:

    • Memory consumption is a little bit high (120MB, could be fixed by reducing the GC threshold).
    • CPU consumption is too high due to bad scheduling algorithm (70%~80% on one CPU core).