Habitable Exoplanets

Habitable Exoplanets is a project built for the NASA Space App Challenge 2024 hackathon. The mission of this project is have a 3D virtual tour of all discovered exoplanets in our known universe.

Project Details

  • GitHub Repo Link: https://github.com/ManojaD2004/nasa-space-app-2024-final-submission
  • Frontend Tech Stack: ReactJS, NextJS, TailwindCSS, ThreeJS, and React 3 Fiber.
  • Backend Tech Stack: ExpressJS, NodeJS, and Python.
  • Achievements/Awards: This project has secured a Global Finalist's place (ie, Top 40 internationally) in the 2024 NASA Space Apps Challenge Global Level. [Team Official Link]
  • Contribution: Contributed as a Frontend 3D Graphics Developer.
  • Project Photos

    Project Description

    As a ThreeJS Developer, I needed to convert the Astronomical Units of Habitable Exoplanets to ThreeJS 3D world units. This process required plenty of math formulas and a lot of coding that had less documentation/tutorials on the web.

    Each exoplanet had its own radius and its own solar star, with its unique rotational speed that needed to be visible in the 3D world. It was challenging, but the results were worth it. I used tools like react-three Leva to get a pop-up menu, react-three Drei to get orbit/mouse controls, and all the remaining animation was hand-coded with no libraries' help (because there wasn't one). I also used Unreal Bloom post-processing to get the final finishing touches.

    After doing all these things, the difficult part was optimization , because rendering 100+ planets with each different animation in a 3D world would make the Computer laggy and slow . I optimized the project by rendering exoplanets that were in focus/sight, and the remaining planets were not rendered until clicked or focused. This reduces overall memory consumption and boosts performance in a huge way.