============= Release Notes ============= 0.9.4 (April 26, 2026) ====================== - Remove contribrocks from the README, it is to difficult to satisfy both PyPi and Sphinx (latex). 0.9.3 (April 26, 2026) ====================== - Fixed issue with Sphinx LaTeX build (skip svg files). 0.9.2 (April 26, 2026) ====================== - Added ``System.evaluate_ode()`` which evaluates the system's differential equations at the set initial condition and initial time. [PR `#566`_] - Cython generated ODE functions require C contiguous arrays as inputs. Added an option to coerce Fortran contiguous arrays into C contiguous (at a performance penalty). System() will do the coercion if user supplied ODE solver routines are applied but can be overridden. [PR `#563`_] - Theano code generation is deprecated. - Drop support for Python 3.9. [PR `#560`_] - Add support for Python 3.14. [PR `#560`_] - Bump minimum supported dependencies to those available in Ubuntu 24.04 LTS. [PR `#560`_] - Fixed a bug where the lambdify ODE generator would fail if there were derivatives in the specifieds when cse was enabled for SymPy 1.12 and SymPy 1.13. [PR `#560`_] - Use Baumgarte's stabilization technique in the Carvallo-Whipple bicycle model example. [PR `#559`_] - Use Cramer's rule linear solver in the Carvallo-Whipple bicycle model example. [PR `#565`_] - Added option to swap argument order in the ODEFunctionGenerators to support both SciPy's odeint() and solve_ivp(). [PR `#546`_] - Solve the linear system using only dynamical differential equation mass matrix in System(). [PR `#532`_] - Added a SymjitODEFunctionGenerator, depends on symjit >= 2.5.0 (optional). [PR `#530`_] - The symbolic linear system solver option is now public and supports selecting optional symbolic linear system solvers. [PR `#525`_] - Removed more tests and code paths for unsupported SymPy < 1.9. [PRs `#522`_, `#524`_, `#527`_] - Moved viz API to a sublevel in the docs instead of top level. .. _#522: https://github.com/pydy/pydy/pull/522 .. _#524: https://github.com/pydy/pydy/pull/524 .. _#525: https://github.com/pydy/pydy/pull/525 .. _#527: https://github.com/pydy/pydy/pull/527 .. _#530: https://github.com/pydy/pydy/pull/530 .. _#532: https://github.com/pydy/pydy/pull/532 .. _#546: https://github.com/pydy/pydy/pull/546 .. _#559: https://github.com/pydy/pydy/pull/559 .. _#560: https://github.com/pydy/pydy/pull/560 .. _#563: https://github.com/pydy/pydy/pull/563 .. _#565: https://github.com/pydy/pydy/pull/565 .. _#566: https://github.com/pydy/pydy/pull/566 0.8.0 (August 28, 2025) ======================= - Support NumPy 2.0. [PR `#502`_] - Migrate from nose to pytest. [PR `#503`_] - Bump minimum dependency versions to match those in Ubuntu 22.04 LTS and drop support for Python 3.8. [PR `#504`_] - Update benchmark script to run without optional dependencies. [PR `#505`_] - Fixed bug where incorrect specified arguments were being selected if using functions for specifieds. [PR `#510`_] - Support math symbols in C compilation on Windows. [PR `#511`_] - Add support for Python 3.13. [PR `#512`_] - Add dependency on packaging package for version parsing and comparison (in place of deprecated pkg_resources). [PR `#514`_] - Make argument checking optional the MatrixGenerator due to low performance on large expressions. [PR `#515`_] .. _#502: https://github.com/pydy/pydy/pull/502 .. _#503: https://github.com/pydy/pydy/pull/503 .. _#504: https://github.com/pydy/pydy/pull/504 .. _#505: https://github.com/pydy/pydy/pull/505 .. _#510: https://github.com/pydy/pydy/pull/510 .. _#511: https://github.com/pydy/pydy/pull/511 .. _#512: https://github.com/pydy/pydy/pull/512 .. _#514: https://github.com/pydy/pydy/pull/514 .. _#515: https://github.com/pydy/pydy/pull/515 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. .. _#464: https://github.com/pydy/pydy/pull/464 .. _#467: https://github.com/pydy/pydy/pull/467 .. _#481: https://github.com/pydy/pydy/pull/481 .. _#484: https://github.com/pydy/pydy/pull/484 .. _#486: https://github.com/pydy/pydy/pull/486 .. _#488: https://github.com/pydy/pydy/pull/488 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`_] .. _#459: https://github.com/pydy/pydy/pull/459 .. _#453: https://github.com/pydy/pydy/pull/453 .. _#447: https://github.com/pydy/pydy/pull/447 .. _#442: https://github.com/pydy/pydy/pull/442 .. _#440: https://github.com/pydy/pydy/pull/440 .. _#432: https://github.com/pydy/pydy/pull/432 .. _#429: https://github.com/pydy/pydy/pull/429 .. _#424: https://github.com/pydy/pydy/pull/424 .. _#423: https://github.com/pydy/pydy/pull/423 .. _#421: https://github.com/pydy/pydy/pull/421 .. _#419: https://github.com/pydy/pydy/pull/419 .. _#418: https://github.com/pydy/pydy/pull/418 .. _#417: https://github.com/pydy/pydy/pull/417 .. _#416: https://github.com/pydy/pydy/pull/416 .. _#415: https://github.com/pydy/pydy/pull/415 .. _#411: https://github.com/pydy/pydy/pull/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`_] .. _#408: https://github.com/pydy/pydy/pull/408 .. _#406: https://github.com/pydy/pydy/pull/406 .. _#405: https://github.com/pydy/pydy/pull/405 .. _#402: https://github.com/pydy/pydy/pull/402 .. _#397: https://github.com/pydy/pydy/pull/397 .. _#391: https://github.com/pydy/pydy/pull/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`_] .. _#381: https://github.com/pydy/pydy/pull/381 .. _#375: https://github.com/pydy/pydy/pull/375 .. _#372: https://github.com/pydy/pydy/pull/372 .. _#368: https://github.com/pydy/pydy/pull/368 .. _#357: https://github.com/pydy/pydy/pull/357 .. _#356: https://github.com/pydy/pydy/pull/356 .. _#351: https://github.com/pydy/pydy/pull/351 .. _#340: https://github.com/pydy/pydy/pull/340 .. _#333: https://github.com/pydy/pydy/pull/333 .. _#332: https://github.com/pydy/pydy/pull/332 .. _#330: https://github.com/pydy/pydy/pull/330 .. _#322: https://github.com/pydy/pydy/pull/322 .. _#323: https://github.com/pydy/pydy/pull/323 .. _#301: https://github.com/pydy/pydy/pull/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`_] .. _#262: https://github.com/pydy/pydy/pull/262 .. _#264: https://github.com/pydy/pydy/pull/264 .. _#266: https://github.com/pydy/pydy/pull/266 .. _#267: https://github.com/pydy/pydy/pull/267 .. _#272: https://github.com/pydy/pydy/pull/272 .. _#276: https://github.com/pydy/pydy/pull/276 .. _#277: https://github.com/pydy/pydy/pull/277 .. _#279: https://github.com/pydy/pydy/pull/279 .. _#284: https://github.com/pydy/pydy/pull/284 .. _#292: https://github.com/pydy/pydy/pull/292 .. _#295: https://github.com/pydy/pydy/pull/295 .. _#305: https://github.com/pydy/pydy/pull/305 .. _#306: https://github.com/pydy/pydy/pull/306 .. _#309: https://github.com/pydy/pydy/pull/309 .. _#311: https://github.com/pydy/pydy/pull/311 .. _#312: https://github.com/pydy/pydy/pull/312 .. _#313: https://github.com/pydy/pydy/pull/313 .. _#315: https://github.com/pydy/pydy/pull/315 .. _#318: https://github.com/pydy/pydy/pull/318 .. _#319: https://github.com/pydy/pydy/pull/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`_] .. _#241: https://github.com/pydy/pydy/pull/241 .. _#237: https://github.com/pydy/pydy/pull/237 .. _#229: https://github.com/pydy/pydy/pull/229 .. _#233: https://github.com/pydy/pydy/pull/233 .. _#219: https://github.com/pydy/pydy/pull/219 .. _#172: https://github.com/pydy/pydy/pull/172 .. _#113: https://github.com/pydy/pydy/pull/113 .. _#82: https://github.com/pydy/pydy/pull/82 .. _#81: https://github.com/pydy/pydy/pull/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`_] .. _#231: https://github.com/pydy/pydy/pull/231 .. _#166: https://github.com/pydy/pydy/pull/166 .. _#141: https://github.com/pydy/pydy/pull/141 .. _#146: https://github.com/pydy/pydy/pull/146 .. _#148: https://github.com/pydy/pydy/pull/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.