Skip to main content

🪐 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:

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)

Source distribution for dymion 0.7.0
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)

Table of built distributions (wheels) for dymion 0.7.0
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page