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.2.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.2-cp314-cp314-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.14Windows x86-64

brahe-1.1.2-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.2-cp314-cp314-macosx_11_0_arm64.whl (9.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

brahe-1.1.2-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.2-cp313-cp313-macosx_11_0_arm64.whl (9.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

brahe-1.1.2-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.2-cp312-cp312-macosx_11_0_arm64.whl (9.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

brahe-1.1.2-cp311-cp311-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.11Windows x86-64

brahe-1.1.2-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.2-cp311-cp311-macosx_11_0_arm64.whl (9.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

brahe-1.1.2-cp310-cp310-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.10Windows x86-64

brahe-1.1.2-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.2-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.2.tar.gz.

File metadata

  • Download URL: brahe-1.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 5df8fb31f4f8a6e542b6e9a63511138a86ae5c46cf7d5947bc57246f4ad60c6b
MD5 c70be9ce8d81990d2531befab364b02c
BLAKE2b-256 b5b65dde3d5cddb3ce08b0582ded9496991efe4cdc39add4d3ae10daf0f112f6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.2-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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7bf2ceb99d9f1af65fa54dab22490273f2a34ad3a34a8683bc509064c7aab11d
MD5 e85f1a5f3802de273102662b2c6377d6
BLAKE2b-256 01b33f337a06c879aef6ca8b334c97bcf13818bff3cfe0463bfdf2c3ad35e5c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.2-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fc8071cd407a2f44e2111a642412201c302726878603301bed5c3909cb71ecad
MD5 e6bdbd5a5f900bf45415a1a80d21ce27
BLAKE2b-256 6f2cfa2ae4fe196e2ac18e4f3065d6009958a08aa43a4669215df3f4ba98faaa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f01d5b5a739a6d0b7dbf6422be0bd5e534b042e463234c4772e99e1a754bdebf
MD5 80e2f8cf87f4a8df475423744a6763ab
BLAKE2b-256 9888a1d8be7e0d738c3c9e733ba4fc5165a9693465b67361d463e3690b951a1a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.2-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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 067b545ca5e00766cd92c0f88b3950188f6775a2811cf3002055d7b10ccd3d4e
MD5 d2a1d2c8973f72195daff46834e17b23
BLAKE2b-256 1ca0c711db4e7673937f05d47a32c6bcb027f5500e30f8e4781ef10f99479395

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 bb619979ee5202decc6ce367dd04003162a3a4b0723085a6166fa984891d763c
MD5 8ea1af6a05c3bf412846c783c26cfc2e
BLAKE2b-256 c11b4eca5ea4623009a980309a37bfe9e03a400975d39726f401e6bd5c353ef3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3bd4aad96e9edad29f64708b9fc4da05b98ac9319ecdfb591c4ab93b154578c1
MD5 fa7cfbe87dabdbb19353079ea9d09410
BLAKE2b-256 24520dea420ea116465bc56c107afc449e67d47a0391e50484690ed0c3c9447c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.2-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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a162a64088930cf8c7081ba833b1ca73238b9f3a5b221f8ed0e1cdffcf8c3d1d
MD5 a432916719511e10c72b38491b6edd9e
BLAKE2b-256 526d5dff8e1fb452255e50924cc519885cd2a0047536424bafae8295b1e7549c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 058b19eafdcfe35b25f5ec0919fe192f16dd8806b71d2ae1ef282c3f409ebfbd
MD5 83e0be5db773c6e014e7a26e1c656d94
BLAKE2b-256 1b6e61819db5ba16cdd2ce8a0ce0c0a9a99ee3911d9d5755c3be3597ef4d2f7e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 935628aa836f4259980467059dd5aaea24871795f126f6c89db640dc1d400e38
MD5 d78fb0c65d4d379ed38fe59038a917df
BLAKE2b-256 5be7b46d01de1099b51527134239dcf17ed8d092641b9801ebefeedf0a4eb79f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 9.7 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9f9c80f368ef407ebc6289aad590b5593f2d4995e205791f738838ee6834cb80
MD5 37ff92c56a0456871434b00741fb6c06
BLAKE2b-256 3225bce25684767b4a0cc5ce29e29b48b8f52a9b36cd3a66ef1043cea23b6d88

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.2-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ead3b4ca09438381f7fbb449e9e7da5f2dc1f704f1f416e1201f9594fba06bf5
MD5 71cd890e9196d4ba99de1943d119eca0
BLAKE2b-256 9b491278a8cc768c1727c97c78839a02aba166aa805740f7fe97f25a030877e2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 70e3383e84dc1fd7f88189a59faace9098c8194badc5543fc10f00a638523c79
MD5 7a971f6545f3d4154e30adb73e6619b7
BLAKE2b-256 b41d3021fe9ffd49b5b1086e04ccfb9db9722aad67a1e44bd2dd427727c7cf23

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 9.7 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cfb5ceab8a572f2227802d0ae44f785affe85b08f5b22f17b2f9fdfe5aba9629
MD5 d7d4534c9bc9e1045d463743b57af7ff
BLAKE2b-256 109ef0e3ab24594a71d839a6cc451febc8e8701bb39bcaa494af2b8006507ee3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.2-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ecd445d6d2d32f72ee6be8987c4cd2fb5a2986ac3c2afeb329371f992fb3c5e6
MD5 395a1bf7783f419baf0a738b2ce409ee
BLAKE2b-256 3e4ad13ac95ae6ab9bf42661849f2afc758b26ed90b9d4b31455fe9accdfaaed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4cb7befeb4c8ee34c8f7a748bffe7bda516876da58113157b23f923c704520c1
MD5 7843ad8ae6f45edb4384abdd9d4a9e64
BLAKE2b-256 9dc874a3752c4d60df06ae4e918fa10df24430d558e8697e4293abf4d2e473b1

See more details on using hashes here.

Provenance

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