v1.3.0 โ€” Now with 12 Code Generators

Physics Simulation
Made Simple

A domain-specific language for classical mechanics. Write physics in natural notation, simulate in real-time, export to C++, CUDA, Rust, and more.

12 Code Generators
73+ Test Coverage
10x Numba Speedup
GPU CUDA Support

Interactive Playground

Write physics equations and watch them come to life

๐Ÿ“ simulation.mdsl
๐ŸŽš๏ธ Parameters
๐ŸŽฌ Visualization
Click Run to start simulation
Time 0.00 s
Energy 0.00 J
FPS 60
Energy Error 0.00%
๐Ÿ“Š Phase Portrait

Example Gallery

Click any example to load it into the playground

Simple Pendulum

Classic harmonic motion

Beginner

Double Pendulum

Chaotic dynamics

Intermediate

Spring Oscillator

Damped harmonic motion

Beginner

Orbital Mechanics

Kepler orbits

Advanced

Rigid Body

Quaternion dynamics

Advanced

Fluid (SPH)

Dam break simulation

Advanced

Powerful Features

Everything you need for computational mechanics

๐Ÿ“

Symbolic Derivation

Automatic Euler-Lagrange and Hamilton's equations from your Lagrangian or Hamiltonian.

โšก

GPU Acceleration

Generate CUDA kernels for massive parallelism. 50x speedup on particle simulations.

๐Ÿ”„

12 Backends

Export to C++, Python, Rust, Julia, MATLAB, Fortran, JavaScript, CUDA, OpenMP, WASM, and Arduino.

๐Ÿ’ง

Fluid Dynamics

SPH implementation with viscosity, pressure, surface tension, and boundary conditions.

๐ŸŽฏ

Quaternion Mechanics

Singularity-free rigid body dynamics for spacecraft, robotics, and games.

๐Ÿ“Š

Visualization

Phase portraits, Poincarรฉ sections, energy plots, and 3D animations.

Export Anywhere

Generate production-ready code for any platform

// Generated C++ code for simple pendulum
#include <cmath>
#include <vector>

const double g = 9.81;
const double l = 1.0;

void compute_derivatives(const double* y, double* dydt, double t) {
    double theta = y[0];
    double theta_dot = y[1];
    
    dydt[0] = theta_dot;
    dydt[1] = -g/l * sin(theta);
}

void rk4_step(double* y, double t, double dt) {
    // ... RK4 integration
}

Ready to simulate physics?

Install MechanicsDSL and start building simulations in minutes.

pip install mechanicsdsl-core