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.4.tar.gz (7.8 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.4-cp314-cp314-win_amd64.whl (9.8 MB view details)

Uploaded CPython 3.14Windows x86-64

brahe-1.1.4-cp314-cp314-manylinux_2_34_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

brahe-1.1.4-cp314-cp314-macosx_11_0_arm64.whl (9.8 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

brahe-1.1.4-cp313-cp313-win_amd64.whl (9.8 MB view details)

Uploaded CPython 3.13Windows x86-64

brahe-1.1.4-cp313-cp313-manylinux_2_34_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

brahe-1.1.4-cp313-cp313-macosx_11_0_arm64.whl (9.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

brahe-1.1.4-cp312-cp312-win_amd64.whl (9.8 MB view details)

Uploaded CPython 3.12Windows x86-64

brahe-1.1.4-cp312-cp312-manylinux_2_34_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

brahe-1.1.4-cp312-cp312-macosx_11_0_arm64.whl (9.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

brahe-1.1.4-cp311-cp311-win_amd64.whl (9.9 MB view details)

Uploaded CPython 3.11Windows x86-64

brahe-1.1.4-cp311-cp311-manylinux_2_34_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

brahe-1.1.4-cp311-cp311-macosx_11_0_arm64.whl (9.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

brahe-1.1.4-cp310-cp310-win_amd64.whl (9.9 MB view details)

Uploaded CPython 3.10Windows x86-64

brahe-1.1.4-cp310-cp310-manylinux_2_34_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

brahe-1.1.4-cp310-cp310-macosx_11_0_arm64.whl (9.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: brahe-1.1.4.tar.gz
  • Upload date:
  • Size: 7.8 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.4.tar.gz
Algorithm Hash digest
SHA256 85180eae4f33ba49c356d875fa00b98c4bcc8b21455c69fd6dcc9f1dc6a7dca7
MD5 9194c7c3b4a4289c0ea7b54b32bbde93
BLAKE2b-256 88a43b6cbc9f96dfc0949b6756c6a73fc07aa08cbf6814627e7e277011e1df51

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.4-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 9.8 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.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0dde8a1bb4c0b04feacbce6ac848bb5db10c40bfaa56e83b4ad65c5f7aee8555
MD5 7b5a5e661e8ae6548dd599b6d3e9a000
BLAKE2b-256 e71c82a103b574d86ffdd6e28aee78486619f5bf776be9e485e8d921c181a3e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.4-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 055471d3efbdea2c7c449985f4127f4852563f917f21a5aed353f608ee20a10f
MD5 5e638071b8714e7887956017b6260446
BLAKE2b-256 324b4f6cf3acc61fa5454ad102d1265fe1f715172dc8408204a55920888202d4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3d04810f4172629e3c0709ee784e65f1cf56e6f0e91fd9ae84cd4f532bb63a83
MD5 13f625ce9672917777234254941bd168
BLAKE2b-256 94e400768529dcf4ad07e87b7facd6144aad1e84e09bfa0b0ffb4ad3569092de

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 9.8 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.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 38338527946eaa2d463688dba74aac18f8aad2e351a08810381c1a5af02c3bde
MD5 a01efd9633d8332d6ea54054867302fb
BLAKE2b-256 4d2c4deab9663c9614dbc9c6b9bff073b5e195e503ccc8dbf62d6130d7189759

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.4-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4dde9f7b603319420ef4669d2c6b88d74609c8294ac2f90e8731d6872b3be94b
MD5 5a66eba64248707b545d9e3412fa6f87
BLAKE2b-256 3735c548f674f24ad68c5a3c86a8e95f1dd127c147185cb2306bfcf9acbb1e81

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6ed2475d8678df157b850ffeab09391b4315a17d3e2433ed7b6f0e4870c5b2f4
MD5 15d823869fbcce9ba3e2f1624e101130
BLAKE2b-256 751cd9af4dc1e6de622fbdd410dde400422d0d9ac6f5671b36b3acecac6206fe

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 9.8 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.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8923d238443fa567a6db7265cad162c0dad0112183386b25253016ae3e7561ff
MD5 5095d168d7068065910b008e7964b09e
BLAKE2b-256 f7279970e12ab5be0c1b3dafefd9864c6a708c6ca61f667f42b0ecc490251879

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.4-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a564d301e43f366eda21f1ca45ddf98d7c6c0018ccadb0c44588a751eeb5bc50
MD5 d9fd1aaf9f3376913a27e2ce635e0a72
BLAKE2b-256 8b5185cae7da7e078965ac50020f9920e38085caa5726a323a64589db0b615df

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5b0c9558c5e2f6fac007ddc8b50bccca4bca10f2b7d33f55559bf831417e0779
MD5 a6e16e0e209b94f5ffdd2f546461907d
BLAKE2b-256 ec0785adcca264a07b463bd1b654d7dd1e2353291373e37a0d68ab6d1606c63e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 9.9 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.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8b6377aa85153175fe964df3df6484d0940fc092671eed86333d712b9e701b03
MD5 e6cab24eccb0f95dce47aea31369eb29
BLAKE2b-256 ddef11cddf258f8ab768f60f3f50374e8c9c53a4a2efde486671c268ef524552

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.4-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3104e0d7c178f1a37a95ec46dcb14ff5428b1aad83a486d0a6c14a0983c8464e
MD5 ff60d334fdd526ff46d004f21b50599b
BLAKE2b-256 296a34fa6287632c129f9952397105590b34f15db4b41e89591e8ef81dca879e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7ec7255ac45999a9dfd9156746146722c3357a191647e7374cc30bb111d5aecb
MD5 47ea33d8d606c70739d8f5cdbc61c718
BLAKE2b-256 562f4b18f46ffa270a656dd5ac5698acfca0f07e05dc0c08b75bf5cac869822d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 9.9 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.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 633ef2b6f7bc9b36e372159c86641a88acd14eb0117e8c506ee118f4a0d27365
MD5 84e842464cc3cd2e8054191601041190
BLAKE2b-256 d4bb673008003c3aec5d4cfcb87f8c584eead4614587f7936bb057397caa5b91

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.4-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 05c84188b646c55805e44f7ca33f7caabb008a8c7647efc118d09a5c736e410c
MD5 5d6cc8c7f61af92995af140fe9dd4697
BLAKE2b-256 588fe92614050b58ce86e094817a79ccfcafb0be0aa4bbfb44f8b943b8f3ce41

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21d970490b6b130d5f47dc19b922bbc76125eef953c9f89349e28e6d0f151fae
MD5 c939193821a994c8e18a63a574a8fd56
BLAKE2b-256 056600ad352813229846e08d6fd6c2d32ecf8173cdf6a16593ddbda6fd17caf0

See more details on using hashes here.

Provenance

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