Hello,
  I did a Sympy GSoC project in 2009 on a package called PyDy [0].
PyDy depends intimately on SymPy, but currently the two projects are
maintained separately.  The basic functionality of PyDy is to provide
a set of classes which ease kinematic and dynamic analysis of
mechanical systems that obey the laws of Newtonian Mechanics.  PyDy
relies on the core symbolic functionality of SymPy in a way similar to
the Geometric Algebra module (sympy/GA.py).  By the end of my GSoC
summer, PyDy was very functional and I had created 12 examples of use
for deriving equations of motion for both trivial (pendulum) and non-
trivial (rolling coin, rolling torus, bicycle--almost) mechanical
systems.  Sadly, the project has seen very little activity since my
GSoC project.

There are two students in my lab who are interested in helping develop
and improve PyDy.  One of the ideas we have been discussing is how the
core functionality of PyDy really depends on Sympy and we think it
would make more sense to have PyDy as a module of Sympy, probably in
sympy/physics or maybe in sympy/pydy (or some other place?).  This
way, it would be more like a library that can be imported along with
Sympy if you want to formulate study symbolic equations of motion.  A
few advantages of this approach are:
-- Code updates to sympy wouldn't break pydy functionality since the
core testing would be done together
-- PyDy would be available to anybody who installs sympy.  This could
be really helpful for both projects because there are many physics,
math, and engineering students (both grad and undergrad) who need to
do some basic 3D vector symbolic vector analysis, and keeping pydy
within sympy would make this much easier than it currently is.
-- We could maintain a separate source tree for detailed examples of
use, which depend on many other tools besides Sympy, and don't make
sense to have distributed with sympy.
-- Developers of PyDy would be more connected to Sympy and vice-versa,
which would be a win for both groups.

What do people think of this idea?  A fair bit of work needs to be
done to make the pydy code compliant with they sympy project --
doctests and docstrings need to be improved, but most of the testing
of PyDy's functionality is already implemented.

Back to the topic of GSoC, there are many other aspects of PyDy that
need work besides the possibility of integrating it into sympy.  Here
are a few items:
-- Class hierarchy needs to be re-evaluated/re-designed to include
some notion of the "system" (all bodies, particles, applied forces/
torques, generalized coordinates, degrees of freedom, etc.).
Currently all of this is embedded in the Point and ReferenceFrame
classes and is a bit hackish.
-- Handling of closed kinematic loops (four-bar linkage) needs to be
improved
-- Templates for outputting boilerplate animation code to enable
immediate visualization after symbolic derivation.
-- Improvement of LaTeX printing for vector expressions.

We are working on a document outlining these things in more detail, we
have made it public here:
https://docs.google.com/document/d/1Egkw9VkXcIYOiXonKFGRU00gycoA7w4Oq4M085d0fAg/edit?hl=en

I would like to ensure that work on Pydy is beneficial for the Sympy
project.  Pydy is fairly heavy on the trigonometry and in the past I
ran into snags in various aspects of trigsimp.  Part of this was
probably avoidable for reasons I won't go into here, but part of it
was due to aspects of sympy that needed improvement.  I see this as
place of technical overlap where work on PyDy will help improve
Sympy.  Another place where PyDy can help SymPy is by bringing more
uses to Sympy -- every physics and engineering student has to take a
dynamics class in which aspects of PyDy could be very beneficial to
their studies and this in turn would expose more people to Sympy.  By
tying something this ubiquitous to Sympy, I think the user base would
both grow and be diversified.

The two students in my lab that are interested should be posting
introduction emails shortly, and they are working on familiarizing
themselves with the Sympy source tree and identifying an issue that
they can fix and submit a patch for.  They will be adding their
proposals to the wiki and notifying the mailing list as well.

Seeing as both of these students are in my lab, I would be willing to
mentor them for the GSoC projects, should they be accepted.  We use
git and python extensively in our lab so some of the hurdles in the
development process should be lowered by the resources and experience
of the people in my lab.  This will help both students to hit the
ground running a lot more quickly.

Cheers,
~Luke

[0] -- pydy.org

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to sympy@googlegroups.com.
To unsubscribe from this group, send email to 
sympy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to