Skip to main content

Brahe is a modern satellite dynamics library for research and engineering applications designed to be easy-to-learn, high-performance, and quick-to-deploy. The north-star of the development is enabling users to solve meaningful problems and answer questions quickly, easily, and correctly.

Project description

Brahe

Brahe - Practical Astrodynamics

Docs Tests Crate PyPi License arXiv


Documentation: https://duncaneddy.github.io/brahe/latest

Rust Library Reference: https://docs.rs/crate/brahe/latest

Source Code: https://github.com/duncaneddy/brahe


Brahe

Brahe is a modern satellite dynamics library for research and engineering applications. It is designed to be quick-to-deploy, composable, extensible, and easy-to-learn. The north-star of the development is enabling users to solve meaningful problems quickly and correctly.

Brahe is permissively licensed under an MIT License to enable people to use and build on the work without worrying about licensing restrictions. We want people to be able to stop reinventing the astrodynamics "wheel" because commercial licenses are expensive and open-source options are hard to use.

We try to prioritize making the software library easy to understand and extend. Many astrodynamics libraries are written in a way that makes them hard to read, understand, or modify. Brahe is written in a modern style with an emphasis on code clarity and modularity to make it easier to understand how algorithms are implemented and to make it easier to extend the library to support new use-cases. This approach has the added benefit of making it easier to verify and validate the correctness of the implementation.

If you do find this useful, please consider starring the repository on GitHub to help increase its visibility. If you're using Brahe for school, research, a commercial endeavour, or flying a mission. I'd love to know about it.

We hope you find Brahe useful for your work!

Going Further

If you want to learn more about how to use the package the documentation is structured in the following way:

  • Learn: Provides short-form documentation of major concepts of the package.
  • Examples: Provides longer-form examples of how-to examples of how to accomplish common tasks.
  • Python API Reference: Provides detailed reference documentation of the Python API.
  • Rust API Reference: Provides detailed reference documentation of the Rust API.

Quick Start

Python

To install the latest release of brahe for Python, simply run:

pip install brahe

You can then import the package in your Python code with:

import brahe as bh

And do something fun like calculate the orbital-period of a satellite in low Earth orbit:

import brahe as bh

# Define the semi-major axis of a low Earth orbit (in meters)
a = bh.constants.R_EARTH + 400e3  # 400 km altitude

# Calculate the orbital period
T = bh.orbital_period(a)

print(f"Orbital Period: {T / 60:.2f} minutes")
# Outputs:
# Orbital Period: 92.56 minutes

or find the when the ISS will next pass overhead:

import brahe as bh

bh.initialize_eop()

# Download ISS TLE and create a propagator
client = bh.celestrak.CelestrakClient()
iss = client.get_sgp_propagator(catnr=25544, step_size=60.0)

# Propagate for 24 hours
epoch_start = iss.epoch
epoch_end = epoch_start + 24 * 3600.0
iss.propagate_to(epoch_end)

# Compute upcoming passes over San Francisco
passes = bh.location_accesses(
    bh.PointLocation(-122.4194, 37.7749, 0.0),  # San Francisco
    iss,
    epoch_start,
    epoch_end,
    bh.ElevationConstraint(min_elevation_deg=10.0),
)
print(f"Number of passes in next 24 hours: {len(passes)}")
# Example Output: Number of passes in next 24 hours: 5

If you want to see more examples of how to use brahe, you can find even more with full source code in the Examples section of the documentation.

Citing Brahe

If you use Brahe in your work, please cite the following paper:

@article{eddy2026brahe,
      title={{Brahe: A Modern Astrodynamics Library for Research and Engineering Applications}}, 
      author={Duncan Eddy and Mykel J. Kochenderfer},
      year={2026},
      eprint={2601.06452},
      archivePrefix={arXiv},
      primaryClass={astro-ph.IM},
      url={https://arxiv.org/abs/2601.06452}, 
}

License

The project is licensed under the MIT License - see the LICENSE file for details.

We want to make it easy for people to use and build on the work without worrying about licensing restrictions!

Contributing

If you find a bug, have a feature request, want to contribute, please open an issue or a pull request on the GitHub repository. Contributions are welcome and encouraged! If you see something missing, but don't know how to start contributing, please open an issue and we can discuss it. We are building software to help everyone on this planet explore the universe. We encourage you to bring your unique perspective to help make us stronger. We appreciate contributions from everyone, no prior space experience is needed to participate.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brahe-1.2.0.tar.gz (8.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

brahe-1.2.0-cp314-cp314-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.14Windows x86-64

brahe-1.2.0-cp314-cp314-manylinux_2_34_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

brahe-1.2.0-cp314-cp314-macosx_11_0_arm64.whl (10.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

brahe-1.2.0-cp313-cp313-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.13Windows x86-64

brahe-1.2.0-cp313-cp313-manylinux_2_34_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

brahe-1.2.0-cp313-cp313-macosx_11_0_arm64.whl (10.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

brahe-1.2.0-cp312-cp312-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.12Windows x86-64

brahe-1.2.0-cp312-cp312-manylinux_2_34_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

brahe-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (10.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

brahe-1.2.0-cp311-cp311-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.11Windows x86-64

brahe-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

brahe-1.2.0-cp311-cp311-macosx_11_0_arm64.whl (10.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

brahe-1.2.0-cp310-cp310-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.10Windows x86-64

brahe-1.2.0-cp310-cp310-manylinux_2_34_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

brahe-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (10.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file brahe-1.2.0.tar.gz.

File metadata

  • Download URL: brahe-1.2.0.tar.gz
  • Upload date:
  • Size: 8.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for brahe-1.2.0.tar.gz
Algorithm Hash digest
SHA256 9fb69e95a151c94c08246488567004feff379ce54ae14a2507ef3d6faf75e3cc
MD5 3348231c27980e6e71550f8949f0a3fb
BLAKE2b-256 1c9d0eb4085cbf9891d262ae1c41677c7f53171e36b5326d773d0a1ed762e176

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0.tar.gz:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: brahe-1.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 10.6 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for brahe-1.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 73c2c618e6caa1fbe67a5f1a50f7e4e47abb980feedf72e8ebfcbfd787188edc
MD5 759badf38bfccf02d3144dc30c2f06dd
BLAKE2b-256 b17b23f13bb7bddb3f878beadc4317685caf827336ce678b61424d0e4f4ef614

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for brahe-1.2.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 925c6a8286a91989223d4b004f8c1e31b46d6f9deac85e0a881adeda5b3315a3
MD5 a43047b7cc9f46660ff07444c5387201
BLAKE2b-256 c493b2930c4dd6c8869b7ed3a42db12309e054542e445fd88eb7b92ad2b6bb0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp314-cp314-manylinux_2_34_x86_64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for brahe-1.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e4e05a5e307a64ac55291e8dc098e3709fe2ca5677ef99e91ceb545541da02d
MD5 ed883064fca445a787c84e7f61b79aa8
BLAKE2b-256 8b0940376931d45a584a84e5aa048aca7d23023a51607cb67f3de5eb87de1b3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: brahe-1.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 10.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for brahe-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2568343e34d1d44fe86564cf164466964deae69c622e0d52fdd3b6f3a1f9e759
MD5 e58cb5a454870ca6a6b767637fd46135
BLAKE2b-256 1b4487cdc7be03789cbea3c8c5c65d100292ea5536ae62251114fa8775c6d7c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for brahe-1.2.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fc14482f25847982e621f539ec07e9f8e75c55270ab4c2df8b328105537341fc
MD5 684076507f7eacb0d7512e601d7cbb0d
BLAKE2b-256 5a68b37ff986eb8b7cc9ad504f1d8e2419c542f33c1b7c4f5c0a0d2781e555de

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for brahe-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 42cb7fc92a57b8cc51dec646ed76da7fe94b0ce83e6bf115b342e87481a30197
MD5 44cd7ce82b1dc6118bb2c4e46f4027c3
BLAKE2b-256 0bb07046a20ea15a6b45513225cf362d50ffdb530875c9609c35f135becb17d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: brahe-1.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 10.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for brahe-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d59a7641b0751abb7e9544e8984d14fa7ff9a8494a6293bbff6a92c3eb7237a2
MD5 ad89d3ef2c0ccf8d6f4cf305156181b3
BLAKE2b-256 442674f03221266d72d8d7ae61e41b2bf7c79f99d7030e9bc2fe406cf2e317af

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for brahe-1.2.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8bf83e317617cba0929972d5fb05f0e3d26a969ca5d804a80893d090f6bf6163
MD5 0657cadc924b6b513e8b45ae3843bc82
BLAKE2b-256 d3de814ff411998f6fd962710f5ee62db19fcaa1e8a5b3000bb2289baae17845

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for brahe-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1056ad465381c244470d48fe3bc9d20baeea66e2ca6fa1b1e92e69f9f88a1c8f
MD5 5d0a98ab9d7a10ddbbfe49627c94c8e0
BLAKE2b-256 29e5d284391f7e64f992fa50ade748c1bc5f595b243e31977e2127a9b4dc89fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: brahe-1.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 10.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for brahe-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 347da5210a2f52279951b5b0ad35254bc9a34e6df818da50a5ac652bccf3d508
MD5 b030a49441621f21d45a38f09ba12f94
BLAKE2b-256 8ec747b7f59a670de31d80b75d078d9f1bb2aa1c33f00cf9db37b0046c21b3f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for brahe-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e2e536b8fb384ca3eb2a4cfe4f7b7b359d6828b039a0d9912b6748437060fe87
MD5 a537b7db5df56537c9e682a261628186
BLAKE2b-256 1263c269440818d40be8e9d4b7dc2a2d9882218fa7e3012c08f3429990ded860

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for brahe-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71692fcd18bfd7949067489e49f9d6a899666ee01c743ca486a2cf0b2b8ccd03
MD5 dff9bc757715a63c5a0c930dd0982bd3
BLAKE2b-256 6b8d18d578cf126ea16bd468d32ef50de69dc5ce85f7c95364e0beb16bf0b023

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: brahe-1.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 10.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for brahe-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 dcb6814464573c875664bf30539a69ac381df85338a6399f8bfbf1c6c606b3c2
MD5 548faacac8dbd4ec3e0a769b0c52df35
BLAKE2b-256 ba277f7cf2460d8633870c179fe3c8a132507546beaffd4491b5eecc37a5f672

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for brahe-1.2.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f22aba82567a75b608b23ed1bd8f1e4905fb80c1702856c8cd18e51c3b41460f
MD5 27c8a9daa188e96e7d4fc060d97da649
BLAKE2b-256 b5bdd151c9e4aeabe1f18ff542e33993a43ebea48874a3fcbd99f2c0e855f71b

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp310-cp310-manylinux_2_34_x86_64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brahe-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for brahe-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 137e88bfc7ac859fccf37eb1b4021c6da82c434df829486225d610d59dc3dc89
MD5 9832ab3f718fb8b6c2362ad7a0a8acc7
BLAKE2b-256 40c7fb4082b9c680a7308466c5e8958940655b25d1e3b9119f657e1b2e55633a

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.2.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on duncaneddy/brahe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page