White Hole. has received the following awards and nominations. Way to go!
Source Code (MIT License): https://gitlab.com/Tatjam/spaceapps2019_2
Executable Download (Windows): https://gitlab.com/Tatjam/spaceapps2019_2/blob/mas...
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!
Note: Controls would become more intuitive in the final product, including gamepad support, and potentially virtual reality
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.