What kinds of multibody dynamics problems can PyDy help with?

Updated

PyDy is built for multibody dynamics problems where you need to go from a system description to symbolic equations of motion, then into numerical simulation, analysis, and visualization. According to the PyDy project site, it is both a workflow using Python scientific tools and a set of software packages that automate and enhance that workflow. The core is the SymPy mechanics package, which generates symbolic equations of motion for complex multibody systems; PyDy extends that output to the numerical domain.

Where PyDy fits in a multibody dynamics workflow

The site describes a two-stage structure:

  1. Symbolic equation generation — SymPy's mechanics package produces symbolic equations of motion for complex multibody systems.
  2. Numerical work — PyDy extends the SymPy output for simulation, analyses, and visualization.

This means PyDy is relevant when you want the equations themselves, not only a black-box numerical result. If your problem requires inspecting, manipulating, or reusing the equations of motion, the symbolic stage is the part that distinguishes PyDy from a purely numerical simulator.

Problem types the site points to

The PyDy site lists example material that indicates the intended scope:

  • Beginner's Tutorial — an entry point for learning the workflow.
  • A Chaotic Pendulum Example — a system whose behavior is sensitive to initial conditions.
  • A Double Pendulum Example — a classic coupled multibody system.

These examples suggest PyDy is aimed at rigid multibody systems of the kind where coupled, nonlinear equations arise and where simulation and visualization help you understand behavior. The double pendulum and chaotic pendulum are representative rather than exhaustive; the underlying SymPy mechanics package is described as generating equations for "complex multibody systems" generally.

What PyDy builds on

PyDy is not a standalone numerical stack. The site states it builds on the scientific Python ecosystem, including NumPy, SciPy, IPython, matplotlib, Cython, and Theano. Practically, that means:

  • Numerical integration and array work draw on NumPy and SciPy.
  • Interactive and plotting workflows draw on IPython and matplotlib.
  • Performance-oriented and symbolic-numeric acceleration paths involve Cython and Theano.

If your environment already uses these tools, PyDy is intended to fit into it rather than replace it.

When PyDy is a reasonable choice

PyDy is a reasonable fit when:

  • Your system is a multibody system with coupled bodies and constraints.
  • You want symbolic equations of motion you can inspect or transform.
  • You need to move from those equations into simulation, analysis, and visualization.
  • You are working in Python and can use the scientific Python stack.

It is less clearly aimed at problems that are purely numerical with no symbolic stage, or at systems outside the multibody dynamics framing the site describes.

Getting started

The site provides Download options (latest version and development version) and Documentation, including the Beginner's Tutorial and the pendulum examples. The most recent release noted on the site is PyDy 0.3.1 (06 Jan, 2016), following PyDy 0.3.0 (18 Jun, 2015). The site also documents Google Summer of Code participation and a project history.

To judge whether PyDy fits your problem, the double pendulum and chaotic pendulum examples are the most direct way to see the workflow end to end before applying it to your own system.