Project Selene 🌕

💡 The Problem Project Selene Solves

Lunar exploration is an exciting frontier, but it comes with its own set of challenges. One critical aspect is analyzing the terrain of the Moon to identify safer landing zones or to help navigate exploration missions.

Project Selene tackles this problem head-on by accepting high-resolution lunar images captured by Chandrayaan-2's OHRC (Orbital High Resolution Camera), processing these images to extract pixel brightness, and ultimately generating 3D Lunar Maps. These maps can be invaluable for:

  • Space Programs: Offering enhanced visualization for spotting safe landing sites or guiding rovers through challenging terrains.
  • EdTech: Providing an academic tool for students and space enthusiasts to better understand the Moon's surface in a fun, interactive way.

Project Selene opens up possibilities for safer, more informed lunar exploration, while also serving as an educational resource.

For now, this project was an incredible journey, as we delved into multiple technologies including Flask, Jinja, Three.js, NumPy, Pillow (PIL), and more. And honestly, this is just the start! 🚀


⁉️ Challenges We Ran Into

Oh, you want a list? (cries softly). There were plenty of hiccups on this journey, but each one taught us something new. Here are some notable challenges:

  • Incorrect Filepaths: This one was a little frustrating, but now it's all fixed by using relative paths that are much more functional!

  • Three.js's Canvas Border: Spent a good bit of time trying to figure out why an unnecessary border appeared on the canvas element. Silver lining though—I learned about the CSS outline property to resolve that.

But the biggest challenge by far was optimizing real-time processing:

Challenge:

Generating image enhancements and 3D objects on the fly, ensuring users didn't have to wait too long.

Solution:

We set up a Flask server that dynamically handled the processing of images. By utilizing NumPy arrays instead of Python lists (which are much more efficient in terms of memory and speed), we drastically reduced the computation time, ensuring users get almost real-time results when visualizing lunar terrain!

🔮 Future Prospects

We're working on enhancing the 3D modeling with more accurate crater representations:

  • Detect craters in input images
  • Replace detected craters with 3D models created by crater.py
  • Improve overall terrain accuracy

Check out crater.py, crater.obj, and crater.png in the repository for more details on our crater modeling approach.

Share this project:

Updates