# \[ANN\] Epicycle.jl Initial Release - Space Mission Design and Trajectory Optimization

**URL:** <https://discourse.julialang.org/t/ann-epicycle-jl-initial-release-space-mission-design-and-trajectory-optimization/135024>\
**Category:** Package Announcements\
**Tags:** space, aerospace\
**Created:** [January 13, 2026, 1:19pm UTC](https://discourse.julialang.org/t/ann-epicycle-jl-initial-release-space-mission-design-and-trajectory-optimization/135024 "2026-01-13T13:19:13Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![stevenhughes](https://avatars.discourse-cdn.com/v4/letter/s/4da419/32.png) [@stevenhughes](https://discourse.julialang.org/u/stevenhughes)\
**Post date:** [January 13, 2026, 1:19pm UTC](https://discourse.julialang.org/t/ann-epicycle-jl-initial-release-space-mission-design-and-trajectory-optimization/135024/1 "2026-01-13T13:19:13Z")

</div>

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.

 ![GEOTransfer](https://global.discourse-cdn.com/julialang/original/3X/a/a/aa9e764052e663eb4d0e1ba24245d43bf17b83af.jpeg)

_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](https://genastro.github.io/Epicycle/Epicycle/dev/)

- **Installation** : [Getting Started · Epicycle.jl](https://genastro.github.io/Epicycle/Epicycle/dev/getting_started/#Installing-Julia)

- **End-to-End Examples** : [End-to-End Examples · Epicycle.jl](https://genastro.github.io/Epicycle/Epicycle/dev/complete_examples/)

- **Component Examples** : [Component Cheat Sheets · Epicycle.jl](https://genastro.github.io/Epicycle/Epicycle/dev/unit_examples/)

- **Repository** : [GitHub - GenAstro/Epicycle: An application for space systems with a nod to the giants who came before us and to how far we’ve come.](https://github.com/GenAstro/Epicycle)

- **Repository** : [GitHub - GenAstro/Epicycle: An application for space systems with a nod to the giants who came before us and to how far we’ve come.](https://github.com/GenAstro/Epicycle)

**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.

---

<div class="post-metadata">

**Author:** ![mihalybaci](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mihalybaci/32/13528_2.png) [@mihalybaci](https://discourse.julialang.org/u/mihalybaci)\
**Post date:** [January 13, 2026, 2:06pm UTC](https://discourse.julialang.org/t/ann-epicycle-jl-initial-release-space-mission-design-and-trajectory-optimization/135024/2 "2026-01-13T14:06:14Z")

</div>

This is neat! I’ll check it out! Do you know how this package compares to SatelliteToolbox.jl?

---

<div class="post-metadata">

**Author:** ![stevenhughes](https://avatars.discourse-cdn.com/v4/letter/s/4da419/32.png) [@stevenhughes](https://discourse.julialang.org/u/stevenhughes)\
**Post date:** [January 14, 2026, 1:49am UTC](https://discourse.julialang.org/t/ann-epicycle-jl-initial-release-space-mission-design-and-trajectory-optimization/135024/3 "2026-01-14T01:49:02Z")

</div>

Good question! I missed that in my package comparison material. I just added that to the docs here:

[Home · Epicycle.jl](https://genastro.github.io/Epicycle/Epicycle/dev/#Epicycle-vs-Satellite-Toolbox)

---

<div class="post-metadata">

**Author:** ![anon22248738](https://avatars.discourse-cdn.com/v4/letter/a/f05b48/32.png) [@anon22248738](https://discourse.julialang.org/u/anon22248738)\
**Post date:** [February 14, 2026, 12:58am UTC](https://discourse.julialang.org/t/ann-epicycle-jl-initial-release-space-mission-design-and-trajectory-optimization/135024/4 "2026-02-14T00:58:15Z")

</div>

Hey Steven, this is really cool! I’ve been working on similar things [HAMMERHEAD Space · GitHub](https://github.com/HAMMERHEAD-Space) and help maintain SatelliteToolbox. If you have any interest in collaborating/trying to merge efforts, let me know. I’d be super interested in chatting to see if we can find common ground and boost both of our efforts!
