[![PyPI - Version](https://img.shields.io/pypi/v/astrodynx)](https://pypi.org/project/astrodynx/)
[![GitHub License](https://img.shields.io/github/license/adxorg/astrodynx)](https://github.com/adxorg/astrodynx/blob/main/LICENSE)
[![Github CI](https://github.com/adxorg/astrodynx/actions/workflows/ci.yml/badge.svg)](https://github.com/adxorg/astrodynx/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/adxorg/astrodynx/graph/badge.svg?token=azxgWzPIIU)](https://codecov.io/gh/adxorg/astrodynx)
[![Docs](https://app.readthedocs.org/projects/astrodynx/badge/?version=latest)](https://app.readthedocs.org/projects/astrodynx/builds/)

# Welcome to AstroDynX! 🚀

AstroDynX is a modern astrodynamics library powered by JAX, designed for high-performance scientific computing, automatic differentiation, and GPU/TPU acceleration.

## Features
- JAX support: automatic differentiation, vectorization, JIT compilation
- Modern Python code style and type checking
- Continuous integration and automated testing
- Easy to extend and contribute

> [!WARNING]
> This project is still experimental, APIs could change between releases without notice.

## Installation
You can install AstroDynX from PyPI using pip:
```bash
pip install astrodynx
```
> [!NOTE]
> AstroDynX is written in pure Python build with JAX, so it is compatible with any platform that supports JAX, including CPU, GPU, and TPU. By default, it installs the CPU version. If you want to use AstroDynX on GPU/TPU, follow the [**instructions**](https://jax.readthedocs.io/en/latest/installation.html) to install the appropriate JAX backend for your hardware.

## Documentation
The documentation is available at [Read the Docs](https://astrodynx.readthedocs.io/)

## Contributing

We welcome contributions from the community! Please see our comprehensive contribution guides:

- **[CONTRIBUTING.md](CONTRIBUTING.md)** - Complete guide for contributors
- **[DEVELOPER_GUIDE.md](DEVELOPER_GUIDE.md)** - Detailed development guidelines
- **[NEWCOMER_GUIDE.md](NEWCOMER_GUIDE.md)** - Perfect starting point for new contributors

Whether you're fixing bugs, adding features, improving documentation, or helping with testing, your contributions are valued!
