This is a solar system in WebGL, made for a university assignment. It scored 89%.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

CS32310 - Advanced Computer Graphics assignment

The assignment, worth 50% of the module, requires visualising a 3D animated solar system in WebGL.



cd assignment

python -m SimpleHTTPServer

Then go to http://localhost:8000/source/ to see the solar system, or http://localhost:8000/api-docs/ to see the documentation.


The program adds a webgl_solarsystem__loaded class to the body to tell you when all the assets have finished loading. You can hook into this and add your own loading gifs, etc.

The loading gif I use in the example is taken from the BBC's iframe scaffold.


I use Grunt to make sure my JavaScript is linted and to generate my documentation. To replicate this on your machine:

  • download and install Node.js, and then Grunt
  • cd into this directory
  • Install the node modules (npm install)
  • You can now run grunt to run the automated processes.


Orbit distances taken from:

Orbit periods and rotation periods taken from:

Planet sizes taken from:

Planet axes taken from:

Jupiter's Galilean moons info taken from:

Saturn's rings info taken from:

Planet texture maps were taken from:

Lots of code taken from/inspired by various lessons at:

Phong shading very much taken from: