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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

brahe-1.1.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: brahe-1.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 97f4192809782f11bd8892d2eafa1aeb9317e751a9b8bc4e1daed17c043bc00a
MD5 efb3919e75b716cd22e3430610c7114d
BLAKE2b-256 98fd79e0b739137f7cf50162d4b34504533c2d2faf6a4197205ef51f7c71700d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.1-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.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d6a77ed2460dd24e98305f2e895ee50e2fd49e3d3249f10614845571a3e5740b
MD5 15bca0243df32c249b0e7f74902adc79
BLAKE2b-256 753d4038f420f31e048097e84964c8bffe69ad5af8fdbb9c15825351f2e73f4f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.1-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 47814a3cb881776f6b0eb21c48f6f2627f227a30f39b6ac30c6b6743c94fff82
MD5 ceac3b7258a384b464ed99ccda20159a
BLAKE2b-256 4e6edb2b925622557ef6d8812ea2b79237f9bb4da3be26e553675735c4c31f67

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0178a0f22c527b3c9c1588505dee3966d84d4f8861f78fb8d98aaa88f3734cff
MD5 e2c82b9655730f7c510fcd86ff114bd2
BLAKE2b-256 ae63e1dfe1f5d3fa336bc0a0a5d13fcc8d317d622573535073370374aff0e470

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.1-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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6b497b2cccc8c1b32a856957d4278e1af3a08e43d08d970fe04a6b3b3ce890f2
MD5 9042a50c765bb547ea36adc9fc8afad1
BLAKE2b-256 c7a9aac183115152325612a30b58acbab058c111f675abea3918e7b5b5f58ae0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.1-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a6d88828e04b624b372fdf42fa0f3c58c298ea06c242f5a294e7ef8aa7982a01
MD5 c7aba63103f8145f1861da0e34416997
BLAKE2b-256 05226de6b656227d2ec66b49cf17643030283f87f2eaa6dcf42c3eeafb56a9b5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d06e8065e49ff4db77b9d9b3c2dd5f4b224affbc6b442f35d3540a329a1789d8
MD5 a81147296e5a9508f7ce287c21aa19a9
BLAKE2b-256 7ae66c64328287cfa11a479755623ea6521418d0bc55424cf2892b6d002e4f94

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.1-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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 daf1ac68d9535fdc5d5c1db096f5e32928d666bb29629a8c81ad390b6e8a1a18
MD5 84317a57fc4d7b42502048ca7b1763c9
BLAKE2b-256 1818a3b108f50f87c9f3fac2f7d11531d3d4204c2ca06780f177ad65c5c03f2f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9e76692399dcef19a342cfa1d60ac304f55bc93403bfec1534f400251a12210e
MD5 9ad50a7d3750b6e0c19b64d865db95b5
BLAKE2b-256 722ca39c0f2a791704860702de9d6907abf9c21a144b7386ac6fb5f82681f9bc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb9a497eac251bc21ee8db416dd0557d8c45131eb6dc9db9b3733c89ed2e63a8
MD5 d06d58973e059c91d98ec88ff9e1b5ed
BLAKE2b-256 9b453eed34d2742b6ffea855ac63403543c4451375f98e12ceb4bf439cefe6bb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.1-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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a078a6f16dfa9bb0d3a6b2fe4570045f3c8c06085821e1eb3c6dd91fd5cf6dd6
MD5 6d94be964b1ed52ee25f67dfe58a03b1
BLAKE2b-256 8827156722101c234fbbe0d3c78e2d87d2522067eb73606a71a7db930e55ef43

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 aeb7404f6b0f764abde8b23b9d604a9ae933d3c08c77623944356901ec4b4fe6
MD5 76b21ec3e7f154f16b42c40fe24fcb77
BLAKE2b-256 7b99cd339dbd716ae219a951f9813d8bd4eee1903265e8dc8337f29e0ec663d4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fac41c6c274b07d51362db3019be4ed6be441d3885fce682acccbee46c452218
MD5 ea1eab48af5820a04c795c8326c3d8ea
BLAKE2b-256 72956937d4f4759fb82f9ec8af153036839ca6b63d6a797822e76194b47914ad

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: brahe-1.1.1-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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6b5c8b6ba6f1c830d7d3b1a0c633b5214d0adaf384eda7dd805d14eaf52c8b61
MD5 99cddb0df59e012d3681602c0eeed344
BLAKE2b-256 32fdc1d777b7944ef47f343c2d15afd54370573c8b340399be94072564c07318

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.1-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6e6161ecb4fa38254d686e043bf29d9879133b16addf498e630c86ab03a12571
MD5 0a2ee1e0f4d8a260811251e9d1624859
BLAKE2b-256 42464417cbdcbb85ad64d7e35bdbfac44a1b47483dd1fe5adfd7cc670a00916e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for brahe-1.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08339e069a1e9235909d5d413c51dbb9a7c302e409095526120b53f527a5dd99
MD5 d917dc4e881bda80bf61ae71a0b42a15
BLAKE2b-256 0d6851642b2a684ac2278173d13d90122c8723c741c8527c0c975769208b76f4

See more details on using hashes here.

Provenance

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