Lumos is a dual-component project designed to accelerate the search for life in the universe. This repository contains the AI Analysis Pipeline used to detect potential biosignatures in noisy exoplanet data. The Educational Game Interface is in a separate repository.
- About The Project
- Key Results & Highlights
- Built With
- Methodology: The AI Pipeline
- Getting Started
- Usage
- License
Modern instruments like the James Webb Space Telescope (JWST) can analyze the atmospheres of distant exoplanets. However, the signals (spectra) are incredibly faint and often buried in instrumental and stellar noise. This results in a very low Signal-to-Noise Ratio (SNR).
Traditional analysis methods require hundreds of hours of telescope time to confirm a signal for a single planet, making the search for life a slow, expensive, and impractical process.
(A visual comparison of a clean, theoretical signal vs. a realistic, noisy signal our AI is trained to analyze)
Lumos addresses this challenge with a two-part system:
- (This Repo) AI Analysis Pipeline: An end-to-end machine learning workflow that automatically processes, cleans, and classifies noisy exoplanet spectra to identify promising candidates for further study.
- Educational Game Interface: An interactive 3D application developed in Unity that visualizes the AI's findings, allowing anyone to explore the TRAPPIST-1 system and understand the results in an engaging way.
Our AI pipeline demonstrated high accuracy and efficiency in identifying potential biosignatures (e.g., CH₄, H₂O, O₃):
- ⭐ 98.8% Variance Explained: Our Denoising Autoencoder (built with TensorFlow/Keras) successfully reconstructed clean spectra from noisy inputs, achieving an R² score of 0.988.
- 🎯 Up to 97% F1-Score: The final XGBoost classifier achieved a 96% Recall and 97% F1-Score in identifying biosignatures, minimizing the chance of missing a potentially habitable world.
- 🚀 3.5x Faster Training: By leveraging GPU acceleration, our XGBoost model trained approximately 3.5 times faster than the baseline Random Forest model, proving its efficiency for larger datasets.
This project was brought to life using a combination of powerful technologies for data science and game development.
AI & Data Science (This Repository):
- Python 3.11
- TensorFlow / Keras (for Denoising Autoencoder)
- Scikit-learn (for Random Forest & evaluation)
- XGBoost (for the high-performance classifier)
- Pandas
- NumPy
- Jupyter Notebooks (for development and experimentation)
- Matplotlib / Seaborn (for visualization)
Game & Visualization (bunrots/Lumos):
The core of this repository is a multi-stage AI workflow inspired by the latest academic research.
- Synthetic Data Generation: We created a large dataset of over 700,000 synthetic exoplanet spectra (based on TRAPPIST-1e), incorporating various atmospheric compositions, stellar contamination, and noise levels (SNR 1-10).
- Denoising with Autoencoder: A deep learning autoencoder was trained to "clean" the noisy spectra, isolating the underlying atmospheric signal from the noise.
- Model Training: The cleaned spectra were used as input to train two separate classifiers for comparison: a standard Random Forest and a GPU-accelerated XGBoost model.
- Evaluation & Export: We evaluated the models using F1-Score, Precision, and Recall. The final classification results were exported as a JSON file (planetdata.json) to be consumed by the Unity game.
To get a local copy up and running, follow these simple steps.
You will need the following software installed on your machine:
- Python 3.11 or later
- Pip (Python package installer)
- Git
-
Clone this (the AI) repository:
git clone https://github.com/chikobara/Lumoscd Lumos -
Set up a virtual environment (Python 3.11 is recommended):
python \-m venv venvsource venv/bin/activate \# On Windows: venv\\Scripts\\activate -
Install Python dependencies:
pip install \-r requirements.txt
The AI pipeline is organized into a series of Jupyter Notebooks that should be run in sequence. Open this directory in a code editor that supports notebooks, such as VS Code or Jupyter Lab.
notebooks/01_Data_Exploration.ipynb(Optional) Notebooks for initial data exploration.notebooks/02_(...).ipynbData Generation: Run this notebook first to generate the full noisy and clean datasets.- Note: This is computationally intensive and may take a long time.
notebooks/03_(...).ipynb: Run the appropriate notebook (e.g., 03_AE_CH4.ipynb) to train the Denoising Autoencoder for a specific biosignature. This will save a .keras model file.notebooks/04_(...).ipynb: Run the corresponding notebook (e.g., 04_CH4_RF.ipynb) to load the trained autoencoder, clean the data, and then train and evaluate the Random Forest and XGBoost classifiers.