Epicycle is an integrated application for spacecraft trajectory design, optimization, and analysis. Leveraging Julia’s combination of high performance and intuitive syntax, this initial release delivers a modular ecosystem spanning 10 specialized packages—enabling rapid iteration from preliminary mission design through multi-event trajectory optimization.
GEO transfer optimization with plane change—8-event sequence with spacecraft CAD model
Core Capabilities
-
Rich time and state representations and conversions
-
Trajectory propagation with event detection and stopping conditions
-
Graph-based mission structure for maneuver planning and optimization (modeled after NASA’s Copernicus)
-
Multi-body dynamics with SPICE ephemeris integration
-
Interactive 3D visualization with spacecraft CAD models
Architecture
Epicycle consists of 10 packages that work together or independently. Utility packages (e.g., AstroEpochs, AstroStates, AstroUniverse) are standalone and may be useful for broader astronomical applications beyond mission design.
Status
This initial release establishes a thoroughly tested and documented foundation. Astrodynamics algorithms are validated against NASA GMAT R2022a and Astropy.Time, with 95% code coverage across all packages. Cross-platform support for Windows, macOS, and Linux with Julia 1.10+.
Get Started
-
Documentation: Home · Epicycle.jl
-
Installation: Getting Started · Epicycle.jl
-
End-to-End Examples: End-to-End Examples · Epicycle.jl
-
Component Examples: Component Cheat Sheets · Epicycle.jl
Acknowledgements
Epicycle builds on Julia’s scientific computing ecosystem, including SciML’s OrdinaryDiffEq.jl, SPICE.jl from JuliaAstro, SNOW.jl from BYU FLOW Lab, TEMPO.jl from Julia Space Mission Design, Makie.jl for visualization, and IPOPT for nonlinear optimization.
