{"id":20603533,"url":"https://github.com/galacticdynamics/galax","last_synced_at":"2025-06-17T22:38:31.519Z","repository":{"id":203184532,"uuid":"706347349","full_name":"GalacticDynamics/galax","owner":"GalacticDynamics","description":"Galactic and Gravitational Dynamics in Python (+ GPU and autodiff)","archived":false,"fork":false,"pushed_at":"2025-06-03T02:36:08.000Z","size":5874,"stargazers_count":39,"open_issues_count":58,"forks_count":8,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-03T16:22:00.387Z","etag":null,"topics":["astrodynamics","astronomy","astrophysics","auto-differentiation","dynamical-systems","dynamics","galaxy","gpu-acceleration","jax"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GalacticDynamics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-10-17T19:11:57.000Z","updated_at":"2025-06-03T02:36:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"c3a3a068-f9e4-47c2-b55c-97e922a8edf5","html_url":"https://github.com/GalacticDynamics/galax","commit_stats":null,"previous_names":["jnibauer/jaxstreams","galdynamix/galdynamix","galacticdynamics/galax"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/GalacticDynamics/galax","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GalacticDynamics%2Fgalax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GalacticDynamics%2Fgalax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GalacticDynamics%2Fgalax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GalacticDynamics%2Fgalax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GalacticDynamics","download_url":"https://codeload.github.com/GalacticDynamics/galax/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GalacticDynamics%2Fgalax/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260452734,"owners_count":23011540,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["astrodynamics","astronomy","astrophysics","auto-differentiation","dynamical-systems","dynamics","galaxy","gpu-acceleration","jax"],"created_at":"2024-11-16T09:17:42.347Z","updated_at":"2025-06-17T22:38:26.502Z","avatar_url":"https://github.com/GalacticDynamics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align='center'\u003e galax \u003c/h1\u003e\n\u003ch2 align=\"center\"\u003eGalactic and Gravitational Dynamics\u003c/h2\u003e\n\n## Installation\n\n[![PyPI platforms][pypi-platforms]][pypi-link]\n[![PyPI version][pypi-version]][pypi-link]\n\n\u003c!-- [![Conda-Forge][conda-badge]][conda-link] --\u003e\n\n```bash\npip install galax\n```\n\n## Documentation\n\n[![Documentation Status][rtd-badge]][rtd-link]\n\nComing soon. In the meantime, if you've used `gala`, then `galax` should be\nfamiliar!\n\n## Quick example\n\nLet's compute an orbit!\n\n```python\nimport jax.numpy as jnp\n\nimport unxt as u\nimport coordinax as cx\nimport galax.coordinates as gc\nimport galax.dynamics as gd\nimport galax.potential as gp\n\nw = gc.PhaseSpaceCoordinate(\n    q=u.Quantity([8, 0, 0], \"kpc\"),\n    p=u.Quantity([0, 220, 0], \"km/s\"),\n    t=u.Quantity(0, \"Myr\"),\n)\n\npot = gp.MilkyWayPotential()\n\norbit = gd.evaluate_orbit(pot, w, u.Quantity(jnp.linspace(0, 1, 100), \"Gyr\"))\nprint(orbit)\n# Orbit(\n#     q=\u003cCartesianPos3D (x[kpc], y[kpc], z[kpc])\n#         [[ 8.     0.     0.   ]\n#          ...\n#          [ 7.804 -0.106  0.   ]]\u003e,\n#     p=\u003cCartesianVel3D (x[kpc / Myr], y[kpc / Myr], z[kpc / Myr])\n#         [[ 0.     0.225  0.   ]\n#          ...\n#          [ 0.018  0.23   0.   ]]\u003e,\n#     t=Quantity['time'](Array([0., ..., 1000.], dtype=float64), unit='Myr')\n# )\n\norbit_sph = orbit.vconvert(cx.vecs.LonLatSphericalPos)\nprint(orbit_sph)\n# Orbit(\n#     q=\u003cLonLatSphericalPos (lon[rad], lat[deg], distance[kpc])\n#         [[0.000e+00 3.858e-16 8.000e+00]\n#          ...\n#          [6.270e+00 3.858e-16 7.805e+00]]\u003e,\n#     p=\u003cLonLatSphericalVelocity (lon[rad / Myr], lat[deg / Myr], distance[kpc / Myr])\n#         [[ 0.028  0.     0.   ]\n#          ...\n#          [ 0.03   0.     0.015]]\u003e,\n#     t=Quantity['time'](Array([0., ..., 1000.], dtype=float64), unit='Myr')\n# )\n```\n\n## Citation\n\n[![DOI][zenodo-badge]][zenodo-link]\n\nIf you found this library to be useful in academic work, then please cite.\n\n## Development\n\n[![Actions Status][actions-badge]][actions-link]\n\nWe welcome contributions!\n\nGalax uses [`uv`](https://docs.astral.sh/uv) for development dependency\nmanagement (make sure you have `uv` version \u003e=0.4.27 installed). For example, to\nrun the test suite, install the `test` group and run `pytest` with:\n\n```\nuv sync --group test\nuv run pytest src docs tests\n```\n\n### Contributors\n\nSee the\n[AUTHORS.rst](https://github.com/GalacticDynamics/galax/blob/main/AUTHORS.rst)\nfile for a complete list of contributors to the project.\n\nThe [`GalacticDynamics/galax`](https://github.com/GalacticDynamics/galax)\nmaintainers would like to thank\n[@Michael Anckaert](https://github.com/MichaelAnckaert) for transferring the\n`galax` project domain on [`PyPI`][pypi-link] for use by this package. Without\nhis generosity this package would have had a worse name.\n\n\u003c!-- SPHINX-START --\u003e\n\n\u003c!-- prettier-ignore-start --\u003e\n[actions-badge]:            https://github.com/GalacticDynamics/galax/workflows/CI/badge.svg\n[actions-link]:             https://github.com/GalacticDynamics/galax/actions\n[codecov-badge]:            https://codecov.io/gh/GalacticDynamics/galax/graph/badge.svg?token=PC553LZFFJ\n[codecov-link]:             https://codecov.io/gh/GalacticDynamics/galax\n[conda-badge]:              https://img.shields.io/conda/vn/conda-forge/galax\n[conda-link]:               https://github.com/conda-forge/galax-feedstock\n[github-discussions-badge]: https://img.shields.io/static/v1?label=Discussions\u0026message=Ask\u0026color=blue\u0026logo=github\n[github-discussions-link]:  https://github.com/GalacticDynamics/galax/discussions\n[pypi-link]:                https://pypi.org/project/galax/\n[pypi-platforms]:           https://img.shields.io/pypi/pyversions/galax\n[pypi-version]:             https://img.shields.io/pypi/v/galax\n[rtd-badge]:                https://readthedocs.org/projects/galax/badge/?version=latest\n[rtd-link]:                 https://galax.readthedocs.io/en/latest/?badge=latest\n[zenodo-badge]:             https://zenodo.org/badge/706347349.svg\n[zenodo-link]:              https://zenodo.org/doi/10.5281/zenodo.11553324\n\n\u003c!-- prettier-ignore-end --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalacticdynamics%2Fgalax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgalacticdynamics%2Fgalax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalacticdynamics%2Fgalax/lists"}