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.