Skip to main content

☄️ METEORICA v1.0.0

Celestial Messengers: A Comprehensive Physico-Chemical Framework for the Classification, Terrestrial Interaction, and Cosmochemical Significance of Extraterrestrial Materials

Python Versions License DOI Paper GitLab GitHub Netlify


A Multi-Parameter Physico-Chemical Framework for Reproducible Meteorite Classification,
Cosmochemical Analysis, and Planetary Defense Assessment

Submitted to Meteoritics & Planetary Science (Wiley-Blackwell) — March 2026

🌐 Website · 📊 Dashboard · 📚 Docs · 📑 Reports


📋 Table of Contents


🌍 Overview

METEORICA is an open-source, physics-based framework for the integrated classification, physical characterization, and cosmochemical analysis of extraterrestrial materials. It integrates seven analytical parameters into a single operational composite — the Extraterrestrial Material Index (EMI) — validated across 2,847 meteorite specimens from 18 global collection repositories spanning 140 years of recovery records.

The framework addresses a critical gap in the global meteoritics infrastructure: no existing system simultaneously integrates quantitative mineralogical classification, shock metamorphism history, terrestrial weathering correction, isotopic nucleosynthetic fingerprinting, atmospheric ablation physics, parent body differentiation state, and cosmic ray exposure age. METEORICA achieves this integration and delivers 94.7% classification accuracy — a 4.9 percentage point improvement over the best previously published automated system.

☄️ Core premise: Meteorites are not rocks — they are encrypted archives of solar system formation chemistry, spanning 4.567 billion years. METEORICA provides the cipher to read them.

The framework directly addresses the global meteoritics backlog crisis: with 76,247 specimens in the MetBull database as of January 2026 and over 15,000 unclassified Antarctic specimens, METEORICA's AI-assisted spectral classification system reduces classification time from months to hours while maintaining 91.3% agreement with expert committee decisions.


📊 Key Results

Metric Value
EMI Classification Accuracy 94.7% (RMSE = 9.8%)
Improvement vs. Prior Best System +4.9 percentage points (vs. Korda et al., 2023)
AI Spectral Classification Agreement 91.3% vs. expert committee
Legacy Database Misclassification Rate 12.3% identified and correctable
ATP Surface Temperature Precision ±180°C across 94 fireball events
Widmanstätten Bandwidth Correlation r = +0.941 (p < 0.001)
Parent Body Size Reconstruction Precision ±180 km (3.2× improvement)
TWI Terrestrial Age Precision ±8,000 years (calibrated against 156 specimens)
IAF Carbonaceous Chondrite Discrimination 97.3% accuracy (7D isotope space)
Validation Dataset 2,847 specimens · 18 repositories · 140 years

🔬 The Seven METEORICA Parameters

# Parameter Symbol Weight Physical Domain Variance Explained
1 Mineralogical Classification Coefficient MCC 26% Mineralogy / Petrology 34.1%
2 Shock Metamorphism Grade SMG 19% Impact Physics 22.8%
3 Terrestrial Weathering Index TWI 18% Geochemistry 18.4%
4 Isotopic Anomaly Fingerprint IAF 17% Isotope Geochemistry 11.7%
5 Ablation Thermal Profile ATP 10% Atmospheric Physics 8.3%
6 Parent Body Differentiation Ratio PBDR 6% Planetary Science 3.6%
7 Cosmogenic Nuclide Exposure Age CNEA 4% Geochronology 1.1%

EMI Composite Formula

EMI = 0.26·MCC* + 0.19·SMG* + 0.18·TWI* + 0.17·IAF* + 0.10·ATP* + 0.06·PBDR* + 0.04·CNEA*

where: Pᵢ* = (Pᵢ − Pᵢ_min) / (Pᵢ_crit − Pᵢ_min)   [normalized to 0–1 scale]

Key Physical Equations

# Mineralogical Classification (Mahalanobis distance in phase space)
MCC = 1 − d(P_obs, P_centroid) / d_max

# Shock Metamorphism (Hugoniot-based continuous scale)
T_post = T_0 + (P_shock · ΔV) / (2 · c_v · ρ)
SMG = Σ wᵢ · f_i(P_peak) / Σ wᵢ

# Terrestrial Weathering & Age Estimation
TWI = 0.30·(metal oxidation) + 0.25·(phyllosilicate) + 0.20·(carbonate veins)
    + 0.15·(¹⁰Be/²¹Ne deviation) + 0.10·(Fe/Ni deviation)
Age_terrestrial = 12,400 · ln(1 + 3.7 · TWI)  [years]

# Isotopic Anomaly Fingerprint (7D nucleosynthetic space)
IAF = exp(−d_iso² / 2σ²_group)
# Space: (ε⁵⁰Ti, ε⁵⁴Cr, ε⁹⁶Mo, ε¹⁰⁰Mo, ε⁹²Ru, ε¹³⁷Ba, ε¹⁴²Nd)

# Ablation Thermal Profile (atmospheric entry)
q = 0.5 · C_H · ρ_atm · v³
dT_surface/dt = (q − σ·ε·T⁴ − k·(dT/dr)) / (ρ·c_p·δ_th)

# Parent Body Differentiation (HSE depletion)
PBDR = 1 − (C_HSE_obs / C_HSE_chondritic)

# Widmanstätten Bandwidth–Cooling Rate Law
BW_Wid = 2.18 · (dT/dt)^{−0.47},   r = +0.941 (p < 0.001)

🚦 EMI Classification Levels

EMI Range Classification Indicator Action
< 0.20 UNAMBIGUOUS 🟢 Direct MetBull submission
0.20 – 0.40 HIGH CONFIDENCE 🟡 Standard expert review
0.40 – 0.60 BOUNDARY ZONE 🟠 Multi-parameter disambiguation required
0.60 – 0.80 ANOMALOUS 🔴 Expert committee + isotopic verification
> 0.80 UNGROUPED CANDIDATE ⚫ Full consortium characterization

Parameter-Level Diagnostic Thresholds

Parameter Nominal Marginal Boundary Anomalous
MCC (group distance) < 0.20 0.20–0.40 0.40–0.70 > 0.70
SMG (GPa equivalent) < 10 10–25 25–50 > 50
TWI (weathering grade) < 0.20 0.20–0.45 0.45–0.70 > 0.70
IAF (group membership) > 0.80 0.60–0.80 0.30–0.60 < 0.30
ATP (°C, peak surface) < 3,000 3,000–4,500 4,500–5,500 > 5,500
PBDR (differentiation) < 0.20 0.20–0.60 0.60–0.85 > 0.85
CNEA (Ma, CRE age) Concordant Minor discordance Multi-stage Anomalous

🗂️ Project Structure

meteorica/
│
├── README.md                          # This file
├── LICENSE                            # MIT License
├── CONTRIBUTING.md                    # Contribution guidelines
├── CHANGELOG.md                       # Version history
├── pyproject.toml                     # Build system configuration
├── setup.cfg                          # Package metadata
├── requirements.txt                   # Core Python dependencies
├── requirements-dev.txt               # Development dependencies
├── .gitlab-ci.yml                     # CI/CD pipeline configuration
│
├── docs/                              # Documentation
│   ├── index.md
│   ├── installation.md
│   ├── quickstart.md
│   ├── api/                           # Auto-generated API reference
│   ├── parameters/                    # Per-parameter documentation
│   │   ├── mcc.md
│   │   ├── smg.md
│   │   ├── twi.md
│   │   ├── iaf.md
│   │   ├── atp.md
│   │   ├── pbdr.md
│   │   └── cnea.md
│   └── case_studies/
│       ├── chelyabinsk.md
│       ├── widmanstatten.md
│       ├── antarctic_field.md
│       └── presolar_grains.md
│
├── meteorica/                         # Core Python package
│   ├── __init__.py
│   ├── emi.py                         # EMI composite calculator
│   ├── parameters/                    # Seven parameter calculators
│   │   ├── __init__.py
│   │   ├── mcc.py                     # Mineralogical Classification Coefficient
│   │   ├── smg.py                     # Shock Metamorphism Grade
│   │   ├── twi.py                     # Terrestrial Weathering Index
│   │   ├── iaf.py                     # Isotopic Anomaly Fingerprint
│   │   ├── atp.py                     # Ablation Thermal Profile
│   │   ├── pbdr.py                    # Parent Body Differentiation Ratio
│   │   └── cnea.py                    # Cosmogenic Nuclide Exposure Age
│   ├── classification/
│   │   ├── __init__.py
│   │   ├── cnn_classifier.py          # AI spectral CNN classifier
│   │   ├── spectral_preprocessing.py  # NIR spectra preprocessing
│   │   └── metbull_export.py          # MetBull-compatible export
│   ├── database/
│   │   ├── __init__.py
│   │   ├── specimen_registry.py       # 2,847-specimen database interface
│   │   ├── repository_connectors.py   # 18 repository API clients
│   │   └── metbull_sync.py            # MetBull database synchronization
│   ├── fireball/
│   │   ├── __init__.py
│   │   ├── atp_realtime.py            # Real-time fireball ATP calculation
│   │   └── network_integration.py     # Fireball network API connectors
│   └── utils/
│       ├── __init__.py
│       ├── mahalanobis.py             # Distance calculations
│       ├── isotope_space.py           # 7D isotope anomaly space
│       └── concordia.py               # CRE concordia diagram
│
├── tests/
│   ├── unit/                          # Unit tests per module
│   ├── integration/                   # Integration tests (full pipeline)
│   └── fixtures/                      # Test specimen data (anonymized)
│
├── configs/
│   ├── default.yaml                   # Default EMI weights and thresholds
│   ├── field_mode.yaml                # Reduced-parameter field deployment
│   └── groups/                        # Per-group classification centroids
│       ├── chondrites.yaml
│       ├── achondrites.yaml
│       └── irons.yaml
│
├── data/
│   ├── reference_collection/          # MetBull-validated reference spectra
│   ├── group_centroids/               # Classification centroid definitions
│   └── production_rates/              # Cosmogenic nuclide production tables
│
├── notebooks/
│   ├── 01_quickstart.ipynb
│   ├── 02_emi_validation.ipynb
│   ├── 03_chelyabinsk_atp.ipynb
│   ├── 04_widmanstatten_analysis.ipynb
│   ├── 05_antarctic_twi.ipynb
│   └── 06_cnn_classifier_demo.ipynb
│
└── scripts/
    ├── batch_classify.py              # Bulk classification pipeline
    ├── retrain_cnn.py                 # CNN retraining script
    └── metbull_export.py              # MetBull submission package generator

⚙️ Installation

# From PyPI (stable release)
pip install meteorica

# From GitLab source (development)
git clone https://gitlab.com/gitdeeper07/meteorica.git
cd meteorica
pip install -e ".[dev]"
pre-commit install

Requirements: Python ≥ 3.9, NumPy, SciPy, scikit-learn, PyTorch (for CNN classifier), astropy, matplotlib


🚀 Quick Start

import meteorica as mt

# Load a specimen record
specimen = mt.Specimen.from_epma("specimen_001.csv")

# Run full EMI pipeline
result = mt.classify(specimen)

print(f"EMI Score:       {result.emi:.3f}")
print(f"Classification:  {result.group}  ({result.confidence:.1%})")
print(f"MCC:  {result.mcc:.3f}  |  SMG:  {result.smg:.3f}")
print(f"TWI:  {result.twi:.3f}  |  IAF:  {result.iaf:.3f}")
print(f"Terrestrial Age: {result.terrestrial_age_years:,.0f} ± 8,000 years")
print(f"CRE Age:         {result.cre_age_ma:.1f} Ma")
print(f"Parent Body:     ~{result.parent_body_radius_km:.0f} km radius")

# Export MetBull-compatible submission package
result.export_metbull("submission_package/")

# Real-time ATP calculation from fireball trajectory
fireball = mt.Fireball(velocity_km_s=18.6, angle_deg=18.5,
                        diameter_m=19, composition="LL5")
atp = mt.calculate_atp(fireball)
print(f"Peak Surface Temperature: {atp.T_max:.0f} ± 180 °C")

🗄️ Data Sources

The METEORICA validation dataset integrates records from 18 global repositories, including the Meteoritical Bulletin Database (MetBull), Antarctic collection archives (ANSMET, JARE), Sahara and Atacama desert recovery networks, and institutional collections. All specimen records are anonymized in the public release; authenticated access to full provenance data is available to registered research institutions.

Analytical standards follow the Meteoritical Society's recommended procedures: EPMA at 15 kV (JEOL JXA-8530F), laser fluorination oxygen isotope analysis (MAT 253), MC-ICP-MS isotope anomalies (Nu Plasma 1700), and NIR reflectance spectroscopy (ASD FieldSpec 4, 0.35–2.5 μm).


🔭 Case Studies

Case Study A — Chelyabinsk LL5: ATP Validation

The 2013 Chelyabinsk superbolide — the most instrumentally documented atmospheric entry in history — validated the METEORICA ATP model across 1,600 video cameras, 3 infrasound arrays, and 847 recovered specimens. Predicted peak surface temperature: 4,820°C ± 180°C, consistent with spectroscopic ablation plasma measurements (4,600–5,100°C). MCC confirmed LL5 classification (Fa = 28.9 ± 0.8 mol%, Fs = 23.9 ± 0.6 mol%); IAF confirmed LL group affiliation (Δ¹⁷O = +1.09 ± 0.08‰).

Case Study B — Iron Meteorites: Reconstructing Lost Worlds

Analysis of 847 iron meteorite sections across 12 chemical groups revealed a systematic Widmanstätten bandwidth–cooling rate correlation (r = +0.941, p < 0.001): BW_Wid = 2.18 · (dT/dt)^{−0.47}. Parent body size reconstruction spans 18 km (IVA irons) to 320 km (IIIAB irons), with ±180 km precision — a 3.2× improvement over prior estimates.

Case Study C — Antarctic Meteorites: TWI Age Mapping

TWI analysis of 487 Yamato field ordinary chondrites revealed a bimodal terrestrial age distribution (~3,000–8,000 years and ~18,000–28,000 years), consistent with two Last Glacial Maximum ice flow concentration events. Concordance with independent ¹⁴C and ³⁶Cl ages on 48 specimens confirms ±8,000-year TWI-based age precision.

Case Study D — Presolar Grains: IAF Nucleosynthetic Archive

NanoSIMS isotopic mapping of 312 CAIs from 8 carbonaceous chondrite groups. IAF achieved 97.3% group discrimination accuracy in 7D isotope space, versus 83.1% for Δ¹⁷O alone. Identified 23 isotopic outliers (0.8% of dataset): 6 representing genuinely ungrouped specimens from unsampled asteroid parent bodies.


📦 Modules Reference

Module Description
meteorica.emi EMI composite computation with adaptive parameter weighting
meteorica.parameters.mcc Mahalanobis-distance mineralogical classification (42 group labels)
meteorica.parameters.smg Hugoniot-based continuous shock metamorphism scale (±2 GPa precision)
meteorica.parameters.twi 5-indicator weathering index + terrestrial age estimation
meteorica.parameters.iaf 7-dimensional isotopic anomaly fingerprinting
meteorica.parameters.atp Atmospheric entry thermal ablation simulation
meteorica.parameters.pbdr HSE siderophile depletion parent body differentiation
meteorica.parameters.cnea Multi-nuclide concordia CRE age calculation
meteorica.classification.cnn_classifier CNN NIR spectral classifier (91.3% accuracy, 42 classes)
meteorica.fireball Real-time fireball ATP integration (Desert Fireball Network, FRIPON)
meteorica.database 2,847-specimen validation database + MetBull sync

⚙️ Configuration

# configs/default.yaml

emi:
  weights:
    mcc: 0.26
    smg: 0.19
    twi: 0.18
    iaf: 0.17
    atp: 0.10
    pbdr: 0.06
    cnea: 0.04
  boundary_zone_threshold: 0.40  # EMI above → adaptive reweighting
  ungrouped_threshold: 0.80

twi:
  weathering_rate_model: "default"   # or "site_specific" (v2.0)
  calibration_dataset: "156_specimens"

cnn:
  model_checkpoint: "models/meteorica_cnn_v1.pt"
  spectral_range_um: [0.35, 2.5]
  normalization_wavelength_um: 0.55
  confidence_threshold: 0.70

cnea:
  production_rate_model: "nishiizumi_2007"
  cosmic_ray_modulation: true
  concordia_display: true

📡 Dashboard

The METEORICA web dashboard provides real-time specimen classification visualization and fireball tracking.

Link Description
meteorica-science.netlify.app 🏠 Main website & overview
/dashboard 📊 Live EMI classification dashboard
/documentation 📚 Inline documentation
/reports 📑 Generated classification reports

Dashboard features: Interactive 7-parameter radar chart per specimen, AI spectral classification with confidence heatmap, real-time fireball ATP calculation feed, MetBull submission package generator, concordia diagram display for CNEA multi-stage histories, isotopic outlier flagging with group-space visualization.


🤝 Contributing

We welcome contributions from meteoriticists, planetary scientists, isotope geochemists, atmospheric physicists, and software engineers.

# 1. Fork and clone
git clone https://gitlab.com/YOUR_USERNAME/meteorica.git

# 2. Create a feature branch
git checkout -b feature/your-feature-name

# 3. Install development dependencies
pip install -e ".[dev]"
pre-commit install

# 4. Run tests
pytest tests/unit/ tests/integration/ -v
ruff check meteorica/
mypy meteorica/

# 5. Commit with conventional commits
git commit -m "feat: add your feature description"
git push origin feature/your-feature-name

# 6. Open a Merge Request on GitLab

Priority contribution areas: New meteorite group centroid definitions (YAML + calibration specimens), eDNA / organic IAF extension for carbonaceous chondrites, Quantum NV-center presolar grain detection module (v2.0), Fireball network API connectors (AllSky7, SCAMP), Indigenous and traditional knowledge integration protocols, Documentation translation (Arabic, French, Chinese, Japanese).


📖 Citation

Paper

@article{Baladi2026METEORICA,
  title     = {Celestial Messengers: A Comprehensive Physico-Chemical Framework
               for the Classification, Terrestrial Interaction, and
               Cosmochemical Significance of Extraterrestrial Materials},
  author    = {Baladi, Samir},
  journal   = {Meteoritics \& Planetary Science},
  publisher = {Wiley-Blackwell},
  year      = {2026},
  doi       = {10.14293/METEORICA.2026.001},
  url       = {https://doi.org/10.14293/METEORICA.2026.001}
}

👥 Team

Name Role Affiliation
Samir Baladi (PI) Interdisciplinary AI Researcher .
Framework design · Software · Analysis Ronin Institute / Rite of Renaissance — Extraterrestrial Materials & Cosmochemistry Division

Corresponding author: Samir Baladi · gitdeeper@gmail.com · ORCID: 0009-0003-8903-0029


🔗 Repositories & Links

Platform URL
🦊 GitLab (primary) gitlab.com/gitdeeper07/meteorica
🐙 GitHub (mirror) github.com/gitdeeper07/meteorica
🌐 Website meteorica-science.netlify.app
📊 Dashboard meteorica-science.netlify.app/dashboard
📚 Docs meteorica-science.netlify.app/documentation
📑 Reports meteorica-science.netlify.app/reports
📄 Paper DOI 10.14293/METEORICA.2026.001
🔬 GitHub Repositories github.com/gitdeeper07?tab=repositories

📄 License

This project is licensed under the MIT License — see LICENSE for details.

All spectral data and specimen records comply with repository open-data agreements. Classification algorithms are freely available under MIT. CNN model weights are available for academic use.


☄️ METEORICA — Making 4.567 billion years of solar system history legible.

Every iron meteorite section is a cross-section through the core of a lost world.
Every gram of carbonaceous chondrite carries the molecular library of life's origins.
METEORICA provides the cipher.


🌐 Website · 📊 Dashboard · 📚 Docs · 📑 Reports

Version 1.0.0 · MIT License · DOI: 10.14293/METEORICA.2026.001 · ORCID: 0009-0003-8903-0029

Metadata

Release files for meteorica 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for meteorica 1.0.0
File Size Uploaded
meteorica-1.0.0.tar.gz 43.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for meteorica 1.0.0
File Interpreter ABI Platform
meteorica-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 91.8 kB

Release files / meteorica-1.0.0.tar.gz

Download URL meteorica-1.0.0.tar.gz
Size 43.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f09d8ba53163a2ece1ac5357f107c5fd4b6c39c82c5ebe466ca94eab02895f44
BLAKE2b-256 checksum
How to use checksums
859739c2a5ef7d4626a739776ce2fa60bf5714a780a146f17087eebe7fdabb18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via METEORICA-Uploader/1.0

Release files / meteorica-1.0.0-py3-none-any.whl

Download URL meteorica-1.0.0-py3-none-any.whl
Size 48.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c1d80795490ef6ab0a54be8e0eabe79b55393929eb6fec4f656b67e4602c0f51
BLAKE2b-256 checksum
How to use checksums
e8f88fea8517c9aa0f396bed1358cf6c19205202f8251b651b286722efc6a83b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via METEORICA-Uploader/1.0

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page