Metadata-Version: 2.4
Name: dymion
Version: 0.6.0
Summary: A professional physics library for kinematics and dynamics. Remake of Cinetica.
Author-email: Elabsurdo984 <matiassfernandez00@gmail.com>
License: MIT
Project-URL: Homepage, https://dymion.readthedocs.io/en/latest/
Project-URL: Repository, https://github.com/Elabsurdo984/dymion.git
Project-URL: Bug Tracker, https://github.com/Elabsurdo984/dymion/issues
Keywords: physics,kinematics,dynamics,vector,simulation,engine
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: numpy>=1.24.0
Requires-Dist: pint>=0.22
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: sphinx>=7.0; extra == "dev"
Requires-Dist: sphinx-rtd-theme>=1.2; extra == "dev"
Requires-Dist: myst-parser>=2.0; extra == "dev"
Requires-Dist: sphinx-intl>=2.0; extra == "dev"
Dynamic: license-file

# 🪐 Dymion

**Dymion** is a modern, high-performance Python library designed for professional physics simulations, focusing on Kinematics and Dynamics. 

Built with a hybrid approach, it offers both a clean **Object-Oriented API** for complex simulations and a **Functional API** for quick mathematical calculations.

---

## 🚀 Key Features

- **Vector-Centric:** Built-in 2D/3D Vector engine with native math operator support.
- **Kinematics Engine:** Easily simulate linear motion (MRU, MRUA) using the `Particle` class.
- **Dynamics Core:** Implementation of Newton's Laws with the `Body` class, supporting mass and multiple force accumulation.
- **Professional Standards:** Fully type-hinted, follows the `src` layout, and is ready for integration with scientific stacks like NumPy.
- **Scalable Architecture:** Designed to be easily extended with Circular Motion, Work, and Energy modules.

---

## 📦 Installation

To install **Dymion** in development mode, run:

```bash
git clone https://github.com/Elabsurdo984/dymion.git
cd dymion
pip install -e .
```

---

## 💡 Quick Start

### 1. Simple Kinematics (The Functional Way)
If you just need a quick calculation without managing state:

```python
from dymion import Vector, calculate_position

initial_pos = Vector(0, 0, 0)
initial_vel = Vector(0, 20, 0)
gravity = Vector(0, -9.81, 0)

# Calculate position after 2 seconds
final_pos = calculate_position(initial_pos, initial_vel, time=2.0, acceleration=gravity)
print(f"Position at 2s: {final_pos}")
```

### 2. Full Physics Simulation (The OOP Way)
For complex scenarios involving masses and forces:

```python
from dymion import Vector, Body

# Create a 10kg body at rest
crate = Body(mass=10.0, position=Vector(0, 0, 0))

# Apply multiple forces
crate.apply_force(Vector(50, 0, 0))   # A push
crate.apply_force(Vector(0, -98.1, 0)) # Gravity (10kg * 9.81)

# Step the simulation
crate.update(dt=0.1)
print(f"Crate Velocity: {crate.velocity}")
```

---

## 🛠 Project Structure

```text
dymion/
├── src/
│   └── dymion/
│       ├── core/          # Base Vector engine
│       ├── kinematics/    # Motion study (linear, circular)
│       └── dynamics/      # Forces, Mass, and Newton's Laws
├── tests/                 # Unit tests (Pytest)
└── pyproject.toml         # Modern build configuration
```

---

## ⚖ License

This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.

---

**Developed with ❤️ for the physics community.**
