Get started
Introduction
LightCurve computes the apparent magnitude of a satellite, a space station or a rocket body, and shows what drives it.

LightCurve simulates how bright an object in orbit looks to an optical sensor. It renders the object on the GPU from the observer’s point of view, integrates the light reflected by every surface, and turns it into an apparent V magnitude, a signal-to-noise ratio and light curves. It also reads real measurements, compares them with the simulation and fits the model to them.
It runs in the browser, as a single HTML file that works offline.
What you can do with it
Section titled “What you can do with it”Set the date, the observer (ground site or satellite), the geometry, the object, its materials and attitude, and the sensor.
Analyse light curvesPhase curve, 24-hour curve, rotation, flashes, Monte-Carlo uncertainty.
Work with measurementsLoad CSV or CCSDS TDM observations, search the rotation period, classify the attitude state, fit the model.
AutomateBatch runs, synthetic labelled datasets and a JavaScript API, from the command line.
Analyse a historyMonths of tracks of many objects: behaviour, rotation trend, glints, anomalies, comparison (Operations plan).
Who it is for
Section titled “Who it is for”| You are | LightCurve helps you |
|---|---|
| A space surveillance operator | Characterise objects from their light curves, size a sensor network, plan observations |
| A satellite operator or manufacturer | Predict the brightness of a design, check a constellation against the astronomy recommendations, diagnose an anomaly |
| An active debris removal or servicing team | Estimate the rotation of a target before rendezvous |
| A researcher or an educator | Understand how phase, glints and attitude shape a light curve |
How it works, in one paragraph
Section titled “How it works, in one paragraph”The satellite model is rendered orthographically from the observer into a floating-point image. Each pixel holds the light reflected toward the observer by a Lambert + GGX microfacet BRDF (or a measured BRDF table), with self-shadowing from a Sun-side depth map and earthshine. Summing the pixels gives the reflected intensity, hence the magnitude. On a Lambertian sphere the result is within 0.002 mag of the analytic formula up to 120° of phase (0.005 mag at 150°). See Photometric model.
LightCurve models brightness, not detection pipelines: the object is assumed tracked by the telescope (no trail), and the sky background is uniform. See Limitations.