Luke, This is a fantastic idea! More comments inline.
> 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. The sympy.physics module is very active right now and I think having pydy in there as well would be a great match. > 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: I would put it in sympy.physics.classical. This is to match sympy.physics.quantum. > -- 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. Definitely. > 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. It should definitely happen and I am more than willing to help do code review and discuss things with you or the students. Great idea though. Cheers, Brian > 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. > > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgran...@calpoly.edu and elliso...@gmail.com -- 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.