1. Overview
Even in the largest ground-based telescopes, distant asteroids are unresolved point sources smaller than a single pixel. The only direct observable is how that pixel's brightness $I(t)$ varies over time as the body rotates in sunlight—a 1D photometric time-series known as a lightcurve:
- When the asteroid's broad side faces the observer, its projected sunlit cross-section is maximized and the pixel brightens.
- When its narrow end faces the observer, its projected area is minimized and the pixel dims.
- Across multiple apparitions, as the asteroid and Earth move along their orbits, the spinning body is observed across varying solar phase and aspect angles.
AstroMorph solves two coupled inverse problems directly from archival telescope lightcurves (DAMIT and ALCDEF .txt files):
- 3D Shape Reconstruction (
Tab 1): Reconstructs the 3D polyhedral geometry of the rotating asteroid from its 1D brightness time-series. - Residual Companion Detection (
Tab 2): Subtracts the reconstructed 3D shape's rotational reflection from raw telescope photometry to isolate mutual-eclipse transits caused by orbiting companion moonlets.
┌──────────────────────────────────────────────────────────────────────────────┐
│ 1. Archival Telescope Photometry (Input) │
│ DAMIT & Minor Planet Center ALCDEF Multi-Night Lightcurves I(t) │
│ Unresolved 1-Pixel Brightness Time-Series + Ephemeris │
└──────────────────────────────────────┬───────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────────┐
│ 2. Stage I — Evolutionary 3D Shape Inversion (Tab 1) │
│ │
│ • Geodesic Icosphere (162 Vertices, 320 Facets, 24 Spherical Harmonics) │
│ • Vectorized Lommel-Seeliger + Lambert Disk-Integrated Radiative Transfer │
│ • Dual-Manifold Memetic Evolution (N = 56 Population + LM Local Polish) │
│ • Converges from Uniform Sphere (Gen 0) to 3D Polyhedron (86–92% Match) │
└──────────────────────────────────────┬───────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────────┐
│ 3. Stage II — Two-Stage 3D Shape Subtraction (Tab 2) │
│ │
│ Row 1: Observed Telescope Lightcurve I_obs(t) │
│ − Row 2: Reconstructed 3D Primary Reflection I_3D(t) │
│ ────────────────────────────────────────────────────────────────────── │
│ = Row 3: Residual Photometric Time-Series ΔI(t) = I_obs − I_3D │
│ │
│ • Single Monoliths (Eros, Kleopatra, Apophis) ──▶ Flat Baseline (< 2σ) │
│ • Eclipsing Binaries (Tama, Lundia, 1999 DJ4) ──▶ Mutual-Eclipse Dip │
└──────────────────────────────────────────────────────────────────────────────┘
2. System Architecture & Methodology
Stage 1: Evolutionary 3D Shape Reconstruction (Tab 1)
Because disk-integrated sunlight is reflected simultaneously by hundreds of tilted surface facets, a 1D lightcurve cannot be inverted analytically in closed form. AstroMorph solves the inverse problem using a Memetic Evolutionary Strategy that pairs population-based search with gradient-based local refinement:
- Geodesic Mesh Initialization (
Generation 0): Each candidate asteroid is initialized as a 162-vertex, 320-facet geodesic icosphere. Its genome encodes 24 low-frequency Spherical Harmonic coefficients ($\ell \le 4$) alongside 162 local vertex radial displacements, allowing the mesh to deform smoothly into triaxial ellipsoids, contact binaries, curved monoliths, or oblate rubble piles. - Population Evaluation (
N = 56 Candidates): In every generation, all 56 candidate meshes are illuminated and rotated under the exact solar and geocentric viewing vectors recorded in the archival telescope files. Disk-integrated brightness is computed across all visible facets and compared against the observed multi-night photometry.- The objective function enforces two physical constraints: Laplacian surface smoothness (preventing unphysical high-frequency spikes) and principal-axis rotational stability (requiring maximum moment of inertia about the spin axis so the body does not precess or tumble).
- Selection, Differential Crossover & Memetic Polish:
- The top 14 elites survive each generation and recombine via Differential Evolution crossover.
- To accelerate convergence, elite trajectories also execute a damped Levenberg-Marquardt step along the numerical Jacobian of the forward scattering model.
- Within ~30 generations, the population converges onto the asteroid's 3D geometry—achieving 86%–92% volumetric match against radar and spacecraft reference scans without accessing the 3D scan during optimization.
Stage 2: Two-Stage Subtraction for Companion Discovery (Tab 2)
Approximately 15% of near-Earth asteroids are binary systems hosting a smaller orbiting moonlet. Detecting these companions in optical photometry is difficult because the primary asteroid's irregular 3D shape induces 20%–60% rotational brightness variations that mask the 15%–25% attenuation dips produced when a companion transits or occults the primary.
AstroMorph separates the two signals on Tab 2:
- Row 1 (
Observed Lightcurve): The brightness time-series recorded at the telescope. - Row 2 (
3D Shape Reflection): The rotational brightness curve generated by the 3D primary shape reconstructed on Tab 1, aligned to the out-of-eclipse rotational baseline. - Row 3 (
Residual Difference): Point-by-point subtraction ($\text{Row 1} - \text{Row 2}$):- Single Monolithic Bodies (
433 Eros,216 Kleopatra,99942 Apophis): The primary rotation wave cancels out, leaving a flat baseline (1%–3%residual scatter). - Eclipsing Binary Systems (
1089 Tama,809 Lundia,1999 DJ4): The primary rotation wave cancels on the baseline, isolating a distinct mutual-eclipse dip (−15.7%to−26.3%). - Companion Sizing: Because the fractional flux drop during an occultation scales with the secondary-to-system cross-sectional area ratio, the eclipse depth directly yields the companion's diameter. On unvisited near-Earth asteroid
1999 DJ4, AstroMorph measures a−15.71%dip (8.7σ) and derives a170.5 mcompanion—matching the published value of170 ± 18 m(Pravec et al. 2006).
- Single Monolithic Bodies (
3. Ruling Out 3D Shape Artifacts
Three physical constraints distinguish a genuine orbiting companion from an unmodeled feature on a single rotating body:
- Rotational Periodicity:
Any unmodeled crater, ridge, or 3D shape error is fixed to the asteroid's surface and must repeat on every rotation cycle. On
1999 DJ4($P_{\text{rot}} = 2.514\text{ hr}$), the 8-hour telescope session spans more than three full rotations. A surface artifact would appear three times across the session; instead, the residual remains flat across the first two rotations (Hours 0–5) and attenuates only during the third rotation when the companion transits. - Hemispheric Cosine Integration: Disk-integrated photometry integrates reflected light over an entire visible hemisphere. Even a sharp topographic step remains in view across $180^\circ$ of rotation, producing a broad sinusoidal modulation rather than a localized boxcar drop on a flat baseline.
- Null-Control Benchmarks on Extreme Geometries:
On highly elongated, non-convex asteroids—
216 Kleopatra(2.7 : 1metallic dog-bone) and433 Eros(curved banana)—two-stage 3D subtraction yields a flat1%–3%residual (1.1σ–1.7σ) with zero false detections.
4. Archival Benchmark & Discovery Results
All targets in data/ load archival multi-night telescope photometry (.lc.txt from DAMIT and .alcdef.txt from the Minor Planet Center ALCDEF archive).
- Cataloged Benchmarks (Green Tabs 1–4): Evaluated against published
.objreference polyhedra. - Unvisited Predictions (Gold Tabs 5–6): Unvisited near-Earth objects (
ground_truth_mesh = null), evaluated by Pareto ensemble convergence.
| Asteroid | Category | Archival Telescope Dataset | 3D Match / Convergence | Lightcurve Fit | Residual Dip | Detection SNR | Derived Companion $D_2$ | Published Literature $D_2$ |
|---|---|---|---|---|---|---|---|---|
| 1089 Tama | Cataloged Benchmark | tama_1089_damit_lc.txt (92 nights, 6,412 pts) |
89.9% | 96.4% | −22.88% | 12.7σ | 6,173 m | ~6,500 m (Behrend et al. 2006) |
| 809 Lundia | Cataloged Benchmark | lundia_809_damit_lc.txt (9 campaigns, 3,077 pts) |
91.5% | 92.3% | −26.28% | 8.6σ | 4,665 m | ~6,100 m (Kryszczyńska et al. 2009) |
| 216 Kleopatra | Cataloged Benchmark | kleopatra_216_damit_lc.txt (55 nights, 2,638 pts) |
87.8% | 95.0% | −1.93% | 1.1σ (Flat) | None | Optical file pre-filtered by DAMIT |
| 433 Eros | Cataloged Benchmark | eros_433_damit_lc.txt (118 nights, 6,473 pts) |
86.2% | 86.4% | −3.04% | 1.7σ (Flat) | None | None (Single Monolith) |
| 99942 Apophis | Unvisited (Gold) | apophis_99942_damit_lc.txt (22 nights, 976 pts) |
94.6% | 93.8% | −1.14% | 0.6σ (Flat) | None | None (Single Body) |
| 1999 DJ4 | Unvisited (Gold) | dj4_85938_alcdef.txt (2004-03-21, 108 CCD pts) |
99.7% | 99.4% | −15.71% | 8.7σ | 170.5 m | 170 ± 18 m (Pravec et al. 2006) |
Note on
216 Kleopatra: Kleopatra possesses two small outer moons resolved via VLT adaptive optics, but their orbital plane rarely eclipses and DAMIT pre-filtered transits out ofkleopatra_216_damit_lc.txt. AstroMorph reports the flat1.1σoptical residual directly from the file.
5. Quickstart
chmod +x run.sh
./run.sh
Open http://127.0.0.1:8002 in your browser.
Run Automated Test Suite
.venv/bin/pytest -v
6. Infrastructure & Integrations
- Tiger Data Cloud (
backend/db.py): Persistsasteroid_catalog,lightcurve_observations,evolution_generations,prediction_ledger, andmoonlet_discoveriesinto TimescaleDB / PostgreSQL hypertables with automatic local SQLite fallback. - Snowflake Cortex REST API (
backend/ai_voice_clients.py): Livellama3.1-70binference analyzing 3D moment-of-inertia ratios, YORP thermal spin-up drift, and interactive astrophysics Q&A. - ElevenLabs Audio (
backend/ai_voice_clients.py): Studio-gradeeleven_multilingual_v2British science narration andscribe_v1speech-to-text microphone queries. - HRT Quantitative Forecasting Engine (
backend/quant_predictor.py): Evaluates out-of-sample lightcurve predictions across the top-12 Pareto shape ensemble using 90% credible intervals, Brier Score, Continuous Ranked Probability Score (CRPS), and a 10-bin Reliability Diagram. - NASA JPL Horizons DE441 Live Ephemeris (
backend/catalog.py): Queriesssd.jpl.nasa.gov/api/horizons.apifor live geocentric distance (AU), apparent magnitude, and light-time delay.