There are many games about destroying planets and the civilizations on them, examples include Planet Destroyer, Solar Smash, etc. Our team was inspired by such games and decided to reverse the process, showing players how difficult it is for civilizations to start. Our hope is for the players to recognize how rare and valuable civilizations are.

What it does

BioSphere is a 3D simulation where the player controls the rotation of a planet. The side of the planet in view of the camera will receive sunlight, raising the temperature of those surfaces. Once certain conditions have been met, plant life, animal life, and possibly even civilization will bloom into existence—their survival is up to the player!

What is Implemented thus far

The color of the spheres layered on top of the Earth currently represents the temperature for that coordinate area (blue for cool areas, red for hot areas). The temperature of an area is based on the amount of sunlight it receives (Based on its distance to you! The Sun!) and also the temperature of its neighbors (because heat exchange happens on Earth!) and you could rotate the earth with WASD keys!

How we built it

We worked off the project from ipenywise as a basis for our BioSphere. We implemented a customized shader for the surface of the Earth and added temperature simulation algorithms to work at this stage of development but we still need to implement further simulation algorithms for other resources to support life (See What's Next for BioSphere Below).

Challenges we ran into

Some members were not particularly familiar with three.js and react.js so we had to learn as we worked on the project. Optimizing a 3D rendering in javascript required heavy maths calculations. Working with a 3D coordinate system and refining the maths for temperature control also proved itself to be difficult.

Accomplishments that we're proud of

  • We're proud to get a working BioSphere complete with temperature display in a 24 hour period.
  • We're happy with how the temperature simulation algorithms turned out!

What we learned

We learned about react-three fiber and how to operate a shader. We learned that JavaScript is not the best language to work with a relatively large dataset and update in real-time, as it caused performance issues on less powerful machines.

What's next for BioSphere

  • We plan to pixelate the surface of the earth to represent different amounts of resources and surface temperature (blue pixels for the amount of water, green pixels for the number of trees, etc)
  • We plan to add additional resources to the sphere to allow for more advanced lifeforms to start on Earth (e.g. Water to allow for plant and animal life, metals to allow for civilization to form)

Built With

Share this project: