Skip to main content

MechanicsDSL Logo

mechanicsdsl-unity

Physically accurate simulation components for Unity and Unreal Engine, compiled from DSL notation.

Active Unity 3 Components MIT License Core Package


Overview

mechanicsdsl-unity provides Unity MonoBehaviour components generated from MechanicsDSL DSL specifications. All components bypass PhysX with Lagrangian equations of motion, include Noether-based energy monitoring, and expose parameters in the Unity Inspector for real-time tuning.


Components

Classical Mechanics

Component System Conserved Gizmos
PendulumComponent Simple pendulum Energy (Noether) Pivot, rod, bob
DoublePendulumComponent Double pendulum (chaotic) Energy (Noether) Full double pendulum
CoupledPendulumsComponent Coupled pendulums Energy (Noether) Both pendulums + spring

Utilities

Component Description
ConservationMonitor On-screen HUD for energy drift across any MechanicsDSL component
PhaseSpaceTrail Renders θ vs ω phase portrait as a LineRenderer trail
MechanicsDSLMath Generic RK4, symplectic Euler, angle wrap, bob position helpers

Editor

Script Description
PendulumComponentEditor Live state readout (θ, ω, t, E, |ΔE/E₀|) + Reset button
DoublePendulumComponentEditor Dual-angle live readout + Reset button

Repository Structure

mechanicsdsl-unity/
├── Runtime/
│   ├── Components/
│   │   ├── PendulumComponent.cs
│   │   ├── DoublePendulumComponent.cs
│   │   └── CoupledPendulumsComponent.cs
│   ├── Utilities/
│   │   ├── ConservationMonitor.cs
│   │   ├── PhaseSpaceTrail.cs
│   │   └── MechanicsDSLMath.cs
│   └── com.mechanicsdsl.unity.runtime.asmdef
├── Editor/
│   ├── PendulumComponentEditor.cs
│   ├── DoublePendulumComponentEditor.cs
│   └── com.mechanicsdsl.unity.editor.asmdef
├── Tests/Runtime/
│   ├── TestPendulumEOM.cs
│   ├── TestDoublePendulumEOM.cs
│   └── MechanicsDSL.Tests.Runtime.asmdef
├── Samples~/
│   ├── SimplePendulum/README.md
│   └── DoublePendulum/README.md
├── docs/
│   ├── getting_started.md
│   ├── components_reference.md
│   └── adding_systems.md
└── package.json                (UPM manifest)

Installation

Via UPM (Unity Package Manager):

  1. Open Window → Package Manager
  2. Click + → Add package from git URL
  3. Enter: https://github.com/MechanicsDSL/mechanicsdsl-unity.git

Quick Start

  1. Add MechanicsDSL → Classical → Pendulum to any GameObject
  2. Create a Sphere child and drag to Bob Transform
  3. Press Play — the sphere is driven by MechanicsDSL-generated Lagrangian equations

The Inspector shows live θ, ω, E, and |ΔE/E₀| during Play Mode. Click Reset to return to initial conditions without stopping.


Running Tests

Window → General → Test Runner → PlayMode → Run All

Tests cover energy conservation (5–10 s), reset/initial conditions, equilibrium stability, and bob Transform updates.


Generating New Components

pip install mechanicsdsl-core
mechanicsdsl generate my_system.msl --target unity --out Assets/Physics/

See docs/adding_systems.md for the full workflow.


Contributing

See CONTRIBUTING.md.

License

MIT License — see LICENSE.

Metadata

Release files for mechanicsdsl-unity 0.1.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 mechanicsdsl-unity 0.1.0
File Size Uploaded
mechanicsdsl_unity-0.1.0.tar.gz 19.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mechanicsdsl-unity 0.1.0
File Interpreter ABI Platform
mechanicsdsl_unity-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 25.2 kB

Release files / mechanicsdsl_unity-0.1.0.tar.gz

Download URL mechanicsdsl_unity-0.1.0.tar.gz
Size 19.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3bc099444b7d4154a5a211ca2674134aa758afece37612f7be485ba53dd9eec1
BLAKE2b-256 checksum
How to use checksums
e9f11b281ea18dc623e7881a8274887d76a67ea80936d1653ea988586eceaf98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 17, 2026.

Transparency log

Release files / mechanicsdsl_unity-0.1.0-py3-none-any.whl

Download URL mechanicsdsl_unity-0.1.0-py3-none-any.whl
Size 6.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
53628c390765bc3d026aebc64f83eb75b3c28341406dad78b0c7eebee123d476
BLAKE2b-256 checksum
How to use checksums
25277d34090a2304d80c1dfd5b61bef2250a7a7f0c7bdbe6d17494adca24f943
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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