Release Notes

0.7.1 (March 4, 2023)

  • Reduced sdist size by moving the MANIFEST.in prune command last.

0.7.0 (March 4, 2023)

  • Support Python 3.10 and 3.11. [PR #488]

  • Fixed the Carvallo-Whipple bicycle model to match Basu-Mandal benchmark numbers. [PR #486]

  • Added Box geometry to the javascript GUI [PR #484]

  • Updated the three link conical pendulum example to use new kanes_equations() syntax. [PR #481]

  • Added example of a 3D multilink pendulum with colliding bobs. [PR #467]

  • LambdifyODEFunctionGenerator now accepts a cse=True/False kwarg and if SymPy >=1.9 is installed, then the underlying generated code by lambdify will be simplified. It is True by default. [PR #464]

  • Visualization supports durations that don’t start at 0.

0.6.0 (February 4, 2022)

  • Dropped support for Python 2.7 and 3.6. [PR #459]

  • Moved chaos pendulum example to Sphinx docs.

  • Added Astrobee example [PR #453]

  • Added the ability to pass optional arguments to the ODE solver in System. [PR #447]

  • Cylinders, Spheres, and Circles loaded via PyThreeJS will appear more round. [PR #440]

  • Added a Carvallo-Whipple bicycle example to the documentation [PR #442]

  • Oldest supported dependencies for Python 3 are aligned with Ubuntu 20.04 LTS. For Python 2, the oldest necessary dependencies are used if the ones for Ubuntu 20.04 LTS are too new. [PR #432]

  • Dropped support for Python 3.5 [PR #429]

  • Improved the README and documentation integration. [PR #424]

  • Moved some examples to Sphinx [PRs #421, #423]

  • jupyter-sphinx enabled for examples in the documentation [PR #419]

  • Added an example with no constraints that uses display_jupyter() for animation. [PR #418]

  • Added an example that has both configuration and motion constraints. [PR #417]

  • display_jupyter() method added to Scene that utilizes pythreejs for animating a system. [PR #416]

  • Remove support for required dependencies prior to those in Ubuntu 18.04 LTS. [PR #415]

  • Recommend installing from Conda Forge [PR #411]

0.5.0 (January 9, 2019)

  • SymPy introduced a backward incompatibility to differentiation Matrices in SymPy 1.2, which remained in SymPy 1.3, see: https://github.com/sympy/sympy/issues/14958. This breaks PyDy’s System class, see: https://github.com/pydy/pydy/issues/395. A fix is introduced to handle all support versions of SymPy. [PR #408]

  • Added a new example for anthropomorphic arm. [PR #406]

  • Fixed errors in the differential drive example. [PR #405]

  • Added a new example for a scara arm. [PR #402]

  • Fixed errors due to backwards incompatible changes with various dependencies. [PR #397]

  • ODEFunctionGenerator now works with no constants symbols. [PR #391]

0.4.0 (May 30, 2017)

  • Bumped minimum Jupyter notebook to 4.0 and restricted to < 5.0. [PR #381]

  • Removed several deprecated functions. [PR #375]

  • Bumped minimum required hard dependencies to Ubuntu 16.04 LTS package versions. [PR #372]

  • Implemented ThreeJS Tube Geometry. [PR #368]

  • Improved circle rendering. [PR #357]

  • kwargs can be passed from System.generate_ode_function to the matrix generator. [PR #356]

  • Lagrangian simple pendulum example added. [PR #351]

  • Derivatives can now be used as specifies in System. [PR #340]

  • The initial conditions can now be adjusted in the notebook GUI. [PR #333]

  • The width of the viz canvas is now properly bounded in the notebook. [PR #332]

  • Planes now render both sides in the visualization GUI. [PR #330]

  • Adds in more type checks for System.times. [PR #322]

  • Added an OctaveMatrixGenerator for basic Octave/Matlab printing. [PR #323]

  • Simplified the right hand side evaluation code in the ODEFunctionGenerator. Note that this change comes with some performance hits. [PR #301]

0.3.1 (January 6, 2016)

  • Removed the general deprecation warning from System. [PR #262]

  • Don’t assume user enters input in server shutdown. [PR #264]

  • Use vectorized operations to compute transformations. [PR #266]

  • Speedup theano generators. [PR #267]

  • Correct time is displayed on the animation slider. [PR #272]

  • Test optional dependencies only if installed. [PR #276]

  • Require benchmark to run in Travis. [PR #277]

  • Fix dependency minimum versions in setup.py [PR #279]

  • Make CSE optional in CMatrixGenerator. [PR #284]

  • Fix codegen line break. [PR #292]

  • Don’t assume Scene always has a System. [PR #295]

  • Python 3.5 support and testing against Python 3.5 on Travis. [PR #305]

  • Set minimum dependency versions to match Ubuntu Trusty 14.04 LTS. [PR #306]

  • Replace sympy.phyics.mechanics deprecated methods. [PR #309]

  • Updated installation details to work with IPython/Jupyter 4.0. [PR #311]

  • Avoid the IPython widget deprecation warning if possible. [PR #311]

  • Updated the mass-spring-damper example to IPy4 and added version_information. [PR #312]

  • The Cython backend now compiles on Windows. [PR #313]

  • CI testing is now run on appveyor with Windows VMs. [PR #315]

  • Added a verbose option to the Cython compilation. [PR #315]

  • Fixed the RHS autogeneration. [PR #318]

  • Improved the camera code through inheritance [PR #319]

0.3.0 (January 19, 2015)

User Facing

  • Introduced conda builds and binstar support. [PR #219]

  • Dropped support for IPython < 3.0. [PR #237]

  • Added support Python 3.3 and 3.4. [PR #229]

  • Bumped up the minimum dependencies for NumPy, SciPy, and Cython [PR #233].

  • Removed the partial implementation of the Mesh shape. [PR #172]

  • Overhauled the code generation package to make the generators more easily extensible and to improve simulation speed. [PR #113]

  • The visualizer has been overhauled as part of Tarun Gaba’s 2014 GSoC internship [PR #82]. Here are some of the changes:

    • The JavaScript is now handled by AJAX and requires a simple server.

    • The JavaScript has been overhauled and now uses prototype.js for object oriented design.

    • The visualizer can now be loaded in an IPython notebook via IPython’s widgets using Scene.display_ipython().

    • A slider was added to manually control the frame playback.

    • The visualization shapes’ attributes can be manipulated via the GUI.

    • The scene json file can be edited and downloaded from the GUI.

    • pydy.viz generates two JSONs now (instead of one in earlier versions). The JSON generated from earlier versions will not work in the new version.

    • Shapes can now have a material attribute.

    • Model constants can be modified and the simulations can be rerun all via the GUI.

    • Switched from socket based server to python’s core SimpleHTTPServer.

    • The server has a proper shutdown response [PR #241]

  • Added a new experimental System class and module to more seamlessly manage integrating the equations of motion. [PR #81]

Development

  • Switched to a conda based Travis testing setup. [PR #231]

  • When using older SymPy development versions with non-PEP440 compliant version identifiers, setuptools < 8 is required. [PR #166]

  • Development version numbers are now PEP 440 compliant. [PR #141]

  • Introduced pull request checklists and CONTRIBUTING file. [PR #146]

  • Introduced light code linting into Travis. [PR #148]

0.2.1 (June 19, 2014)

  • Unbundled unnecessary files from tar ball.

0.2.0 (June 19, 2014)

  • Merged pydy_viz, pydy_code_gen, and pydy_examples into the source tree.

  • Added a method to output “static” visualizations from a Scene object.

  • Dropped the matplotlib dependency and now only three.js colors are valid.

  • Added joint torques to the n_pendulum model.

  • Added basic examples for codegen and viz.

  • Graceful fail if theano or cython are not present.

  • Shapes can now use sympy symbols for geometric dimensions.