Skip to main content

SymMePlot

PyPI Tests

SymMePlot is a visualization tool designed for mechanical systems created using the mechanics module in SymPy, sympy.physics.mechanics.

The sympy.physics.mechanics module allows users to define mechanical systems symbolically to derive their analytic equations of motion. During this process, users can construct various objects such as reference frames, points, bodies, and more.

SymMePlot enhances this process by providing a way to visualize these constructed objects. It integrates with visualization backends like Matplotlib, and creates visual representations based on the parametrization of the symbols involved in the system.

SymMePlot is available on both PyPI and Conda-Forge. To install the latest release including Matplotlib from PyPI, run:

pip install symmeplot matplotlib

Usage

Most of your programs are expected to follow this structure:

  1. Creation of the system in sympy using the objects from sympy.physics.mechanics.
  2. Initiate a Scene with the inertial frame and absolute origin.
  3. Add your frames, vectors and points to the plotter instance.
  4. Lambdify and evaluate the system.
  5. Plot the system.

Below is a basic example of how this looks in practise:

import numpy as np
from symmeplot.matplotlib import Scene3D
from sympy.physics.mechanics import Point, ReferenceFrame, dynamicsymbols

# Create the system in sympy
N = ReferenceFrame("N")
A = ReferenceFrame("A")
q = dynamicsymbols("q")
A.orient_axis(N, N.z, q)
N0 = Point("N_0")
v = 0.2 * N.x + 0.2 * N.y + 0.7 * N.z
A0 = N0.locatenew("A_0", v)
# Create the instance of the scene specifying the inertial frame and origin
scene = Scene3D(N, N0, scale=0.5)
# Add the objects to the system
scene.add_vector(v)
scene.add_frame(A, A0, ls="--")
scene.add_point(A0, color="g")
# Evaluate the system.
scene.lambdify_system(q)
scene.evaluate_system(0.5)
# Plot the system
scene.plot()

# You can also animate this system.
ani = scene.animate(lambda q: (q,), frames=np.linspace(0, 2 * np.pi, 60))
ani.save("animation.gif", fps=30)

Metadata

Release files for symmeplot 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for symmeplot 0.2.2
File Size Uploaded
symmeplot-0.2.2.tar.gz 364.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for symmeplot 0.2.2
File Interpreter ABI Platform
symmeplot-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 400.3 kB

Release files / symmeplot-0.2.2.tar.gz

Download URL symmeplot-0.2.2.tar.gz
Size 364.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b6bf722492b4840f8573c77da1c6e1bf1e72405218d2d0cdd0b1d3d7b8105625
BLAKE2b-256 checksum
How to use checksums
42842c67f085278f8213da10d4cb2f51f9435f614ff590eb1bdcd027134fb2ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / symmeplot-0.2.2-py3-none-any.whl

Download URL symmeplot-0.2.2-py3-none-any.whl
Size 36.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
649a517ff8ee539b3a1e4a4f3be47233f48c63176b58f84a6007869b44fcabd7
BLAKE2b-256 checksum
How to use checksums
340b8c3632abc7abe7aed89568a400737340102ab910f6ad645dbfa7857f1897
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

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