🪐 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
Particleclass. - Dynamics Core: Implementation of Newton's Laws with the
Bodyclass, supporting mass and multiple force accumulation. - Professional Standards: Fully type-hinted, follows the
srclayout, 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:
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:
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:
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
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 file for details.
Developed with ❤️ for the physics community.
Metadata
Release files for dymion 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dymion-0.7.0.tar.gz | 16.2 kB | Without provenance | Details for dymion-0.7.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dymion-0.7.0-py3-none-any.whl | Python 3 | none | any | Details for dymion-0.7.0-py3-none-any.whl |
Total release size: 31.6 kB
Release files / dymion-0.7.0.tar.gz
| Download URL | dymion-0.7.0.tar.gz |
|---|---|
| Size | 16.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
52e0c6ae892c58de194862ab004d152819939add03640923ba5c27318972a592
|
|
BLAKE2b-256 checksum How to use checksums |
e3e39961550fab3deabe293bd1ca6a2928be79be129366278c90b21b22d08dad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / dymion-0.7.0-py3-none-any.whl
| Download URL | dymion-0.7.0-py3-none-any.whl |
|---|---|
| Size | 15.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1bce8d8ec25bf1b742fdf14cd080d4a653ba7db9b87503bd5cd862eb8fc2a7c3
|
|
BLAKE2b-256 checksum How to use checksums |
3e5f3f7e572e917ed95f28438361f3fb3c586a7032643476bf9f97d575a11aee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Security for dymion 0.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.