---
title: "Simulated Space Environment | Truman DeWalch"
description: "High-fidelity space environment simulation framework"
url: "https://trumandewalch.dev/projects/simulated-space-environment"
route: "/projects/simulated-space-environment"
---

Simulation Framework

# Simulated Space Environment

High-fidelity orbital propagation toolkit with native Rust/C++ acceleration

**Type:** Research Infrastructure

**Languages:** Python / Rust / C++

**Status:** Active Development

Fidelity ladder: two-body Kepler screening versus perturbed dust, with a Python API plus native kernels.

## Summary

- High-fidelity propagation toolkit with Python API + Rust/C++ kernels.
- Multiple propagators and perturbation models for accuracy vs. speed.
- Native batch evaluation for large-scale event studies.

## Overview

**Satpy Tools** is a comprehensive orbital propagation and debris modeling toolkit that powers my dissertation research. It provides configurable high-fidelity simulation of the space environment, from simple two-body dynamics to full perturbation modeling with spherical harmonics, atmospheric drag, solar radiation pressure, and third-body effects.

The architecture prioritizes both accuracy and performance: Python provides the high-level API and orchestration, while performance-critical kernels are implemented in Rust (preferred) and C++ with automatic backend selection based on availability.

## Propagators

Multiple propagation backends support different fidelity/speed trade-offs:

### LightyearPropagator

High Fidelity

Full perturbation modeling with configurable spherical harmonics order, drag (JB2008, NRLMSISE-00), SRP, third-body, tides, and relativistic effects. Best for multi-day arcs requiring maximum accuracy.

### EquinoctialPropagator

Fast Analytical

Vectorized and batched mean-element propagation with Rust backend. Ideal for constellation sweeps and optimization where perturbations are modest. ~100-500 µs/call.

### SGP4Propagator

TLE-Based

Standard NORAD TLE propagation with TEME→GCRF conversion. Used for debris catalog handling and conjunction screening with space-track data.

### KeplerPropagator

Ultra-Fast

Pure analytical Keplerian propagation. Best for quick estimates and near-circular short arcs. ~50-100 µs/call.

## Perturbation Models

- **Gravitational:** Spherical harmonics (EGM96, EGM2008) with configurable degree/order, third-body (Sun, Moon)
- **Atmospheric Drag:** JB2008, NRLMSISE-00, and custom statistical models; space weather integration
- **Solar Radiation Pressure:** Cannonball and area-to-mass ratio models with eclipse handling
- **Additional:** Earth tides, relativistic corrections, Lorentz forces, Coulomb drag for charged particles

## Key Capabilities

🛰

### Orbital Objects

Satellites, Walker/Flower constellations, distributed objects (GMM), ground stations

📊

### Uncertainty Quantification

Gaussian mixture splitting for covariance propagation; distributed plume modeling

⚠️

### Conjunction Detection

SGP4 catalog propagation, geometry enrichment, collision probability computation

🔄

### State Conversions

ECI, ECEF, classical/equinoctial elements, TLE parsing, coordinate frame transforms

## Native Acceleration

Performance-critical code paths use compiled backends with automatic selection:

Crate/Module · Language · Purpose

`propagators\_rs` · Rust · Equinoctial/Kepler kernels

`perturbs\_rs` · Rust · Fused acceleration computation

`gravity\_rs` · Rust · Spherical harmonics evaluation

`v3\_evaluator\_rs` · Rust · Rust-backed batch event evaluation workflow

`lambert\_cpp\_ffi` · C++ (FFI) · Lambert problem solvers

Built with maturin for Python bindings. Thread-safe lazy initialization supports Python 3.14 free-threading builds.

## Tools & Technologies

Python 3.14 · Rust · C++ · maturin · pybind11 · NumPy · SciPy · Numba

[← Back to selected work](https://trumandewalch.dev/#projects)
