Neural Network Exoplanet Detector

PlanetFinder

Enter photometric light curve data — flux and time — and the model will determine the number of planets in a star's orbit.

5 000+stars in dataset
<10 msprediction
01 · Analysis

Enter
light curve data

FluxTime
Light curve data

Each line: flux time

Planets detected
02 · Method

Transit photometry
+ LSTM

01

NASA Data

lightkurve downloads Kepler/TESS light curves. Normalization, NaN removal, noise filtering.

02

Preprocessing

Brightness and time normalization to the range [0, 1]. Saving prepared data to learn*.txt.

03

LSTM Training

Rust + tch-rs trains a recurrent network. Auto-saving the best model to model.ot by MSE.

04

Prediction

Light curve input → LSTM memory layers → Linear hidden→1 → number of planets. Under 10 ms.

Input
[brightness, time]
LSTM
memory layers
Linear
hidden → 1
Output
N planets
03 · Technologies

The stack
under the hood

Rust 1.70+

The primary language — maximum speed and memory safety without GC.

tch-rs / LibTorch

PyTorch C++ API — LSTM, tensor operations, automatic differentiation.

NASA lightkurve

Loading and processing Kepler/TESS data via a Python pipeline.

CUDA (optional)

GPU-accelerated training and inference up to ×10 on compatible cards.

Apache 2.0

Open source code, free commercial use.

LSTM — Long Short-Term Memory

Captures transit patterns spread across weeks and months. Robust to noise in real-world data.

04 · MVP

A working prototype
already ready

PlanetFinder — Terminal
$ cargo run --release predict
Compiling planetfinder v1.0.1
Finished [optimized] target(s)
 
    Model loaded: model.ot
>> Enter 'brightness time'. end = result
    0.998  131.2
    0.872  134.8   <- transit!
    0.999  136.6
    end
 
>> Predicted number of planets: 1
05 · Source code
Rust
LSTM
NASA
Apache 2.0
Open Source
by Ztry8 (AslanD)