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.1.0.tar.gz (7.7 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.1.0-cp314-cp314-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.14Windows x86-64

brahe-1.1.0-cp314-cp314-manylinux_2_34_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

brahe-1.1.0-cp314-cp314-macosx_11_0_arm64.whl (9.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

brahe-1.1.0-cp313-cp313-win_amd64.whl (9.6 MB view details)

Uploaded CPython 3.13Windows x86-64

brahe-1.1.0-cp313-cp313-manylinux_2_34_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

brahe-1.1.0-cp313-cp313-macosx_11_0_arm64.whl (9.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

brahe-1.1.0-cp312-cp312-win_amd64.whl (9.6 MB view details)

Uploaded CPython 3.12Windows x86-64

brahe-1.1.0-cp312-cp312-manylinux_2_34_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

brahe-1.1.0-cp312-cp312-macosx_11_0_arm64.whl (9.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

brahe-1.1.0-cp311-cp311-win_amd64.whl (9.6 MB view details)

Uploaded CPython 3.11Windows x86-64

brahe-1.1.0-cp311-cp311-manylinux_2_34_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

brahe-1.1.0-cp311-cp311-macosx_11_0_arm64.whl (9.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

brahe-1.1.0-cp310-cp310-win_amd64.whl (9.6 MB view details)

Uploaded CPython 3.10Windows x86-64

brahe-1.1.0-cp310-cp310-manylinux_2_34_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

brahe-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (9.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for brahe-1.1.0.tar.gz
Algorithm Hash digest
SHA256 d913fe79e1cc2f3e82d3a880c8ea9de4f66fcd855c5bfe36e1cce24566c89765
MD5 d71cc3ad6cc9078b372ecc8a91d1ac40
BLAKE2b-256 1933f34ea7b26ff01ef4f772d05af4658b4037cb2d60509e410b809158c1bfa8

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: brahe-1.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 9.7 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.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e4aa428529003cb291f6c49bbffead8663e230ea1de14d4c6e74097ee5668b1c
MD5 f7e8d8d9f08cc643cde14f81e6939fde
BLAKE2b-256 e9bdf3fd83c3714825beff9b7edcd60ed34c59b04bd4d0eae002819af88e7282

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for brahe-1.1.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1ac0df7f010e232f4281642fb3ee8d2cd0292cddafcc8c8fc3ceaf377d603f8e
MD5 9922631403575c6cb120246f6288266f
BLAKE2b-256 1d2a7c208f56c46035c2bfbf37f5e93d464fe9d2ff1ca58de0c4bb0c721a7c3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for brahe-1.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 15fb365ef10f34c389d9f20921846ba9b834124e4f039e8a74bedd90baff8cab
MD5 c83c403f701f39066a4037d6dad8d2cd
BLAKE2b-256 5b7ada70fff8f5a953d9a9ad109c9c82a30ded96ea0014795be51972ef031c1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: brahe-1.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 9.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.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 debecf9b7e4be6b8e6f5347b4ad18e7f008539cd95d4a39bc3111a9ca5fdf27e
MD5 9e62af639f99b337476c87e73ffb4c9f
BLAKE2b-256 fd81470fcb7b4da33e5d0a91aa737feff628281ef94a964a91aa123b7f9a7558

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for brahe-1.1.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ab373419ca06de3562caf5417809ec4c00a535ad4bb892c86c7b3d75a7d22c29
MD5 e63a03f72655844707b0e7ea3d5fc2e7
BLAKE2b-256 2fd340ee968ac7404a597fa60e324333e5e7466a2e45160931752bddb85858c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for brahe-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d93b38fa4b1f65caadb58f16addfb71ccf7e76b17b16be4037c97a1355446f2f
MD5 0d954dcbf2c94d753b318d91fb51d7c7
BLAKE2b-256 dfca50b945dc809201899ea71569daea8ec72905cc45e999883ee89cc5ef1ac9

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: brahe-1.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 9.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.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 53afdf46c2fdf28f36fdd906b82e9903c98a5dab2db906165f72578ed6a0f0b2
MD5 e58b552068de5ae185b78254bd36ac95
BLAKE2b-256 d10e1feef68daea23298f89a85eab28b37baf540d87d07e0ab0cc8f6483ab0e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for brahe-1.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0cf781d1db8ef7fac12f02f8f2a5950a3d4c1a72870f08fd29099302ad9c95e4
MD5 d4117812bae03aad1fc9c4c55688d0d5
BLAKE2b-256 344d928359aaa91a31d02203028b1397f136f84c5ae9db10c4799866a4c9eb22

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for brahe-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 31aae1ed7113e5c942c26fea027c14b4cfad4251786e0ba5b9cc5254e424e051
MD5 63fb91e9c79da80e8ea4c68336c90485
BLAKE2b-256 eff89d27a0a06887c8fd23aeafde99327253487c5eba26c74a622e9ea2aa954b

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: brahe-1.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 9.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.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ae7aee5ecc583cb1cb5625fb3fd1401ecc5b41bd1aa1aadc7fc0d681dcb45a3e
MD5 c8010ae8365dceef63ae69108e1d7ea3
BLAKE2b-256 4790448c86b53638db5061acbe52c33966fa1519b49fec70753cd5f51c16dba8

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for brahe-1.1.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e12d4c3981bfee2bff02fa0e01f3ab7748f7886dee091792c26579593dfddf13
MD5 b40ae0fdb3f2abccac744e4b6dd19476
BLAKE2b-256 af4594afe3e404f57cdbdb920ae0fe0b5e3eda88158173f663d827a4bfd913bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for brahe-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 31d7a70f094181841d517b8fe0359b2ba57d1223e3a35902fb2ef33624536953
MD5 eeac2ff3ace2c7c83c5fe19bc9a75727
BLAKE2b-256 ded142fdb5ab4fdb5877967a8505f4ef6545bf2a62d22326861cf122e64753be

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: brahe-1.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 9.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.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 42d06d20602fd57609ec8a0c2e9e8c48d4ba7c062dfacd425a242676fb42b8d0
MD5 b8618d570bfe8914e578457973f00189
BLAKE2b-256 f0dd901125838cd6e6e9dfd13c006abe708b18d9701655359ac2f2450e33da88

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for brahe-1.1.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 97775e702ccde5c037024b83818eb5ffa671208024185e726c642e3c00777f55
MD5 57bfed50edfa00609c9892788f5c42be
BLAKE2b-256 e38260bd2f0d77fcaf8c39bc23a07f3bf35b22a3fc03ba12f5cf19c15dd8db24

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for brahe-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 88501adbe2a8f7d983aa1716a75bf9a895cff84704e4aeb78725f301af92b7e9
MD5 f4a065a30da584ca0b79300d0f312ffc
BLAKE2b-256 6db327097481d462b42dbaf35b99b4d3b2b3167530cce4e0b0409e5fbad0e497

See more details on using hashes here.

Provenance

The following attestation bundles were made for brahe-1.1.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