Canvas not supported!

This is my fast and ugly proof-of-concept translation from C++ to JavaScript. You can find original C++ source code (and excellent article about galaxy simulation) on
If you want to contact me please use my twitter handle: @hipokamp. I plan to update the code so follow me if you are interested.

2015-08-20 - Update: Bit of cleanup, WebGL version use single vertex buffer now, experimental GLSL version (vertex shader based)

Some hints:

You can change canvas size (try different ratio, for example 800x400 with WebGL renderer for nice pseudo-3d effect).

Canvas renderer is just for testing/debugging - it is sloooooow (slideshow performance for 5K stars on my Mid2011 MacBook Air) and result isn't as nice as WebGL (but I am working on it...).

Time step size controls how much time will pass with each frame (note - it takes thousands of years to move a star in the space ;)). Make it bigger to see how colors change with age - quite nice effect.

Too much stars on too small canvas will not look nice :). Make the canvas bigger to get better effect.

Animation performance: my MacBook Air with WebGL renderer can handle 15K stars quite nice but above that performance drops to slideshow...