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

Uploaded CPython 3.14Windows x86-64

brahe-1.1.3-cp314-cp314-manylinux_2_34_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

brahe-1.1.3-cp314-cp314-macosx_11_0_arm64.whl (9.7 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

brahe-1.1.3-cp313-cp313-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.13Windows x86-64

brahe-1.1.3-cp313-cp313-manylinux_2_34_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

brahe-1.1.3-cp313-cp313-macosx_11_0_arm64.whl (9.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

brahe-1.1.3-cp312-cp312-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.12Windows x86-64

brahe-1.1.3-cp312-cp312-manylinux_2_34_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

brahe-1.1.3-cp312-cp312-macosx_11_0_arm64.whl (9.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

brahe-1.1.3-cp311-cp311-win_amd64.whl (9.8 MB view details)

Uploaded CPython 3.11Windows x86-64

brahe-1.1.3-cp311-cp311-manylinux_2_34_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

brahe-1.1.3-cp311-cp311-macosx_11_0_arm64.whl (9.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

brahe-1.1.3-cp310-cp310-manylinux_2_34_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

brahe-1.1.3-cp310-cp310-macosx_11_0_arm64.whl (9.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: brahe-1.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 fc13fe75e53ba7fbc50e9f12effe548f58906713eb835773bd06dade69921aa3
MD5 2310d72153cabebceed061085e8ecfb6
BLAKE2b-256 3be0cfb3936a6ed5ff45c74d57aa4b4586601914d3bd99363385fdc96d2f5bd7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.3-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.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 108909682d62c034f5c643140b8b814573337e67a015c538cf78938505fbf247
MD5 1c5bb769d3e83f586307c3f57b333383
BLAKE2b-256 f4612d9d03b11fe64b66f9cf5993b72f3931805ff50c66506be922fdd07c9067

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.3-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4582e74a4c6e85b6616914305ef86656731d11620d429525ffc3b3fd8723feaa
MD5 299f316880f059b09411e7528455e2b5
BLAKE2b-256 e43f303aac5167bd1afac1937276535b3c8616f0b171f86874c8918f9640af1e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4f19d65a95e2be69c718775cc3df2c3a1ce1e7acc5b3c0aae978e3710b375ab
MD5 8abcec12e20bf4ac56df0b24d4e2d13a
BLAKE2b-256 3b84863db238883271bd60ec7a36524b805325ff866f9a45a21ab22f859af556

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 9.7 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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c63133eaf3c0a17449052ff7384c5a6f2ffc072930ebbf31e1814aed3197c4e2
MD5 364a355cbf10ce684485f4616d27431b
BLAKE2b-256 44c2ed60b1a5a5cfe5bc11aa3f69ba7ee43d649b3a346d3f36c0b07a38ed0624

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.3-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 aec8c4373a7e1ac5d15f74a675de9a17ba64b872693877454c7c86470421c044
MD5 2d730e8b6400ad36e4d975410b980210
BLAKE2b-256 fde23f3031b05596549ec80e4a297583d54c9eea1ffbe0a044b874d34834178f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e95977733fb6b505e6847f8ece66e5d9e401ad65fdef92a3358bd30ce982043b
MD5 5d900a1b0b7820ea1cd371deca454b8a
BLAKE2b-256 c231d81d8df115ccf276fb683c6787abc5d1d31ccec016818c5c39ca177150f5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 9.7 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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1d56d85c15effbcaa5b8cfdf7cd76e0c0e59742e6032d055621bd99e6bc9a9d4
MD5 070fa7beb3da6dc9c645805e4525be33
BLAKE2b-256 427ba9caf393c083a2eab972f219a0808e72e08d7106359e4f6b6267640b040d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.3-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 832eaf3bb3d42ec3b22b355c30ebb0d9f2b2abb9c34bc1580710718bdf493528
MD5 140ca5e50f4b0cbf557c6db29272451a
BLAKE2b-256 ef7a562e42e0d238df430967d71af51255f705ea7a5df135f281b7c0393defae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a0075b05049ae4c0c6481dc19c1acac41adf0ae1340e2f4656e6269de9f64fb
MD5 fdc575f4b60e23518229a8f57d26e9ba
BLAKE2b-256 6421e52081172ee513648d5b0a4ef7e63426d84b76e669c395e67c9e2ecc74d7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 9.8 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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c552234345e3b3464cd7dac0f8d4704c0c27e15335505dacdfba427b51492d83
MD5 87e15513e54c7f938b4da4c5b8ee691e
BLAKE2b-256 afd28e71c890429434d603bd861ead8d8991ef75d67216ed21f39f7ed61649bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.3-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fac9e2430c72168a0d5f299814304f89b391ad3297c057140e9c34d1dc0d0b0f
MD5 ab949b1bb17898da4f8e11d900d370b5
BLAKE2b-256 3a843c1130465622c1982ce3d6ec6e0e8a67beac476bf4ebe1a52f284c37ec9c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 203de84afcba2e7c0965f04bebb2d46f7d13b51507a29616ba3633864845b4d3
MD5 8fd02d2964fe118f845fcc24fbb14083
BLAKE2b-256 e9d8c04e591a116d9a1c590839e05f449391830df2e46ee16ce1be0ba9b19f7a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.3-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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c37b7fae9123669d01e10e0bd7db3204d7c11c884e66f832445eba0e2d42c2ce
MD5 5dcb01967f7e64a2814a7735abe488df
BLAKE2b-256 b028da58d01c80d5ff641f25310ee16ff041f0062eedca2d99c99b97b8375bc2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.3-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 358de7aa22dee5c66bd135ee387410b0232465a7f67d27a8bed17b92ed4cdbde
MD5 b47d585d824665b8d549aeb07abd6b2a
BLAKE2b-256 9536483b490c3a53347d4a2445057587ca34510107acf77d8f99d520002fbb3e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55cbae83fd8e14711be0211c2bd106e0de62727fea8460b9b7cfe6ffe76570b8
MD5 9a95c5b0925265dc1e9e136946279761
BLAKE2b-256 aed3c5ef3f87df73c16f59320e2c318a0f17c8857d0c3fd5cec9cc7ed7aff5d4

See more details on using hashes here.

Provenance

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