The videos at the very end of this article show the engine used for Earthsim 1 and 2. The engine was advanced for its time, but it has been more than 10 years and things have moved on.
The limiting factor is no longer the ability to render things well, modern GPU’s have that down. The limit is set by the amount of data required to feed the GPU and how detailed that data is. So the technology challenges come from creating and running a rich and detailed simulation engine and feeding that simulation data to the GPU to keep it busy.
(building a multi user distributed version is even more challenging and is our stretch goal)
Load balancing resources such as memory and compute power between the CPU and GPU is the name of the game.
New Earthsim Engine
In the videos above you can see the terrain simulation in action. The lava flow example shows the multiple sediment layers running, you can see layers of earth and gravel moving and sliding down hills and moving differently underwater.
The new engine splits the simulation load between the GPU and the CPU. The atmosphere fluid simulation runs on the GPU. The landscape sand, earth and water simulations run making heavy use of a multi core CPU. This gets the most out of the extra memory available on the CPU side to build and simulate a multi layer sediment model of the terrain. At the same time it leaves the power and memory of the GPU available for a volumetric simulation of the atmosphere.
To improve on Earthsim 2 we require high performance Ocean and Atmospheric simulations that all combine to feed the Biosphere simulation with data.
Terrain sim + Water sim + Atmosphere sim -> Biosphere sim
The Biosphere simulator manages all the life-forms on the surface of a planet, and what by-products those life-forms create to export back to the landscape, such as ‘Biomass’ that then rots to create more soil to compete the life cycle.
Today on early prototypes of the new engine we can achieve over one million individually simulated life forms on an average modern multi-core CPU. Move to a high end CPU (16 + cores) and you are in the realm of 10 million individual simulated organisms.
Running a local planet simulator is one of the most compute intensive, power hungry tasks around. Yet modern PC’s have incredible processing power.
Our long term vision is to enable you to realistically terraform planets, albeit in gamified form. Imagine loading up and terraforming Mars, Venus or any recently discovered exoplanet.
Beyond video encoding, and CG ray tracing there are not so many applications that stress modern multi-core cpu hardware, and even fewer that can do it in a real time interactive application. Also the most power hungry modern games are in general more GPU intensive than CPU core intensive. With this in mind, we hope to include a benchmark aimed at high end PC’s in the Earthsim engine and keep improving that benchmark with subsequent releases. The goal is to let users have simulation visualizer that shows what top end CPU’s can do to showcase the power of the latest hardware.
The 2011 Earthsim 2 planet engine
The videos below show what we achieved with the Earthsim 2 engine from 2011. We expect to go far beyond this with the new engine in the coming years.
At the end of 2011 we had the planet engine able to resolve an earth like planet down to below 1cm of detail. The videos below show some of the work we did on the way to hitting the 1cm resolution milestone.