What is Gravity? Unlike an expert scientist, a lay person often only knows that it's related to Newton's falling apple. It's really hard for them to imagine what gravity looks like, and understand what it truly is. So we made a visual game to help children "see" and understand gravity, and learn about planets and their moons at the same time! By showing the gravitational phenomena and the explanations. We also make it possible for scientists to easily create new stages to teach new content.

This project is solving the We Love Data challenge.


What is Gravity?

Gravity is something that we can't see or touch, but we feel its effects every day.

To an expert scientist, Gravity is a force that is represented in figures in huge data sets of graphs and charts.

Unlike an expert scientist, a lay person would often only know that it's related to Newton's falling apple. It's really hard for them to imagine what gravity looks like, and understand what it truly is.

So we decided to make a visual game to change everything. To help people "see" and understand gravity. And out of that vision, came our 2 key goals.

Our first goal is to help children learn about the effects of gravity through a visual game.

What better way to top off gravity than with the awesome solar system and its revolving planets and moons?

Now, on top of learning about gravity, they'll get to learn about the planets and their corresponding moons at the same time too!

The game allows children to see what exactly happens and how planets and bodies interact with each other when gravity is put into the equation:

  • when a planet of the correct gravity is inserted into the space, the moons orbit normally and the solar system is back in balance. As a congratulatory message, the sun glows.
  • when a planet with too much gravity is inserted, the moons crash into the planet.
  • when a planet with too little gravity is inserted, the moons fly off into space because there's not enough pull.

On top of showing the gravitational phenomenon that happens as a result of the planet chosen, the game also provides the explanation behind the phenomenon.

Our second goal is to allow scientists to easily teach new content, by making it easy for them to create new stages for new planets and revolving bodies through simply submitting just a json file.

To submit your customized json file to create new stages, it is easily done via a URL-extension to our original URL (the method is mentioned below). In that json file, you simply need to provide the list of planet names, planet images, moon counts, and planet masses in the specified json format detailed below.


  • Presenter: Thomas Tan
  • Developers: Matthew Cheok & Chen Liang
  • Designer: Yanying Huang
  • Video Creator: Loretta Tioiela


Our demo is only the tip of the iceberg of what we have in mind. More then education to children, our vision is to provide a broad public educational game as a comprehensive 3D massively multiplayer game where the interface will integrate the different NASA projects as core of the user experience. In our world, a user's avatar would get to :

  • see a map of our universe as accurate as the last NASA's discovery through the API,,
  • have an overview of NASA satellites, spacecrafts exploring & probing our universe,
  • be able to observe the real-time data from the different satellites & jump from one to another
  • be able to interact with the interface to select different view such as :
  • electromagnetic field around earth,
  • weather data around mars, ...

We would be therefore interested in working with the other project of the challenge such as the different Arduino & we-love-data projects.

We believe that we can through our game emulate the interest in Physics & Space Sciences by:

  • creating an emotional engagement through gamification ,
  • offering a strong understanding of the beauty of the phenomena that surround us through illustration & interactions in the game,
  • channelling interactive education through a gameplay based on mining-challenges & territorial conquest,

URLs you can visit:

  • Source Code: https://github.com/cl-/AngryPlanets

  • The Game Intro Scene: https://www.dropbox.com/s/acpwp5hyfqth64l/game_intro_movie.m4v (It's somewhat big and will take a while to download, so we didn't really bundle it into the online version of the game.)

  • Online Game: http://angry-planets.appspot.com (Please note: If a lot of people play the game, we may run out of free server time and the url may not load. Please let us know if it happens, and we'll try to get it up and running again as soon as we can.)


Please read before playing the game!

  • NOTE #1: Please use Safari browser to play the game. The game will break on other browsers. Sorry about that, we're having our exams now so we don't have enough time to fix those issues, since it already runs perfectly on one browser at this time.

  • NOTE #2: It may take some time to load on the first time you play the game because the videos will take some time to download.
    So please try to have a good Internet connection for the best possible experience :)

  • NOTE #3: If you experience any lag issues on the Online Version after a few playthroughs, simply refresh the page to fix it.

  • Note #4: To play the Offline Local version of the game, simply open its "index.html" file.
    Do remember to use Safari browser.
    When you run the code offline, it doesn't work well with some versions of Chrome.

  • Further technical details can be found on the code page: https://github.com/cl-/AngryPlanets

Project Information

License: MIT License
Source Code/Project URL: https://github.com/cl-/AngryPlanets


Keynote Presentation Slides - https://github.com/cl-/AngryPlanets/blob/master/PRESENTATION_SLIDES.key
Game Intro Scene - https://www.dropbox.com/s/acpwp5hyfqth64l/game_intro_movie.m4v
Source Code on Github - https://github.com/cl-/AngryPlanets
Online Game (works with Safari Browser ONLY!) - http://angry-planets.appspot.com/
Create Your Customized Game (works with Safari Browser ONLY!) - http://angry-planets.appspot.com/?load=INSERT_YOUR_JSON_FULL_URL_PATH_HERE