Project Details

Awards & Nominations

White Hole. has received the following awards and nominations. Way to go!

Global Nominee

The Challenge | Build a Planet

Your challenge is to create a game that will allow players to customize the characteristics of a star and design planets that could reasonably exist in that star system. Ensure that this game provides an educational experience for players!

Erebo - Planetary Sandbox

Explore and design a planetary system while learning about the physical laws involved in its creation. Add planets, changing their orbital parameters, surface type and radius. Then navigate around the system and enjoy the views!

White Hole.


Source Code (MIT License): https://gitlab.com/Tatjam/spaceapps2019_2

Executable Download (Windows): https://gitlab.com/Tatjam/spaceapps2019_2/blob/mas...

LEARN the controls below!



Our app allows the creation of a full-blown planetary system, starting from the star, given its type, by the addition of planets that are physically limited following real-life physics laws.
It simulates keplerian orbits, allowing any valid orbital parameters, including eccentric or tilted orbits.


We developed Erebo mostly to challenge ourselves rendering the many scales of a solar system, the world is many astronomical units in size while you can zoom into a planet to a very high level of detail. We also wanted to make something both fun and educational, game development is our passion, and so is space exploration, so we used data from NASA, and some other sources, to try make the experience as realistic as possible

The application will allow an student to learn the laws that govern the creation and shape of solar systems across the universe, he will learn about kepler orbits, star types and evolution, geology, chemistry, planetary evolution and many other topics involved in the shaping of a solar system. To do this the application only allows parameters which are physically possible, for example, a "terra" type planet won't be able to be placed outside of the habitable zone, where water can be liquid.

Our objective is to finish implementing all these features into a easy to use and realistic package. So far we have implemented most of the rendering and orbital physics, but we are lacking most physical limitations and a easy to use interface. While we have also implemented time, the final product would show the evolution of the solar system over billions of years, from the dust cloud collapse to the expansion and death of the central star. We would improve planetary generation, including techniques such as plate tectonics for appropiate planets, and climate simulation, potentially including the effects of life on it.


On the image below you can see a quick overview of the rocky planet types we have implemented so far, many more would come in the final release!



Controls:
  • WASD: Move camera
  • R/F: Go up and down
  • Q/E: Tilt camera
  • Right Click: Aim camera mode
  • Mouse wheel while holding right click: Change movement speed
  • Mouse wheel while NOT holding right click: Zoom in and out
  • F1: Show wiki
  • . / , : Change timewarp (Increase / Decrease)
  • Hold right click to aim the camera
  • Use the top menubar to show the navigation window and move around planets

Note: Controls would become more intuitive in the final product, including gamepad support, and potentially virtual reality



NASA Resources Used (Most Important):


Libraries used:

The program is written in C++17, using OpenGL and helper libraries (glm, glad and glfw). We have also used the fmt library for internal utils, tomlcpp for data serialization and lua ( + sol3) for surface generation scripts. ImGui is used for the protoype GUIs, but another GUI system would be used in the final product.

We used Visual Studio as our IDE and Visual Studio Code to edit the planet scripts.Blender was used for video editing and Audacity was used for audio editing.