v2.0.0 โ€” Enterprise & Embedded Ready

Physics Simulation
Made Simple

A domain-specific language for computational physics. From pendulums to black holesโ€”write physics in natural notation, simulate in real-time, export to C++, CUDA, Rust, and 8 more platforms.

9 Physics Domains
11 Code Generators
19 Countries
70ร— GPU Speedup

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.

๐Ÿณ

Docker Ready

Production containers for CPU and GPU. Deploy to Kubernetes with docker-compose.

๐Ÿ”Œ

Embedded Support

Run on Raspberry Pi and ARM devices. Generate Arduino code for hardware projects.

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