GSoC Idea discussion

252 views
Skip to first unread message

Sudeep Sidhu

unread,
Feb 7, 2021, 2:25:07 AM2/7/21
to sympy
Hi, 

While going through ideas , I found this idea , Classical Mechanics: Efficient Equation of Motion Generation with Python, very appealing . I wanted to know if this idea is outdated or is being considered for this year's GSoC .

Jason Moore

unread,
Feb 7, 2021, 8:24:42 AM2/7/21
to sympy
Sudeep,

The topics related to sympy.physics.vector/mechanics are still possibilities. I will have time to mentor this summer if someone wants to do projects in this realm.

We have not updated the ideas page yet for this year so those could be adjusted. Off the top of my head here are some things that I think are priorities:

- Finish and enhance the work of Sahil Shekhewat so that models can be built with body and joint specifications (unmerged GSOC work).
- Finish and enhance the work of James Milam (jbm950) that adds a FeatherstoneMethod. This is one way to increase the computational efficiency. One thing that is missing are nice implementations of spatial vectors and their operators.
- Finish and enhance the work of Nikhil Pappu. The Autolev parser needs to be battle tested on some examples and bugs worked out. We need the tests in the private gitlab repo to actually be run by SymPy. (merged, but not polished GSOC work).
- The Linearizer class was updated by James Crist, but I think it is effectively broken for more complex problems. This needs to be fixed and we need examples of it working for systems with holonomic and nonholonomic constraints.
- Improve symbolic computational speed. Hard examples need to be profiled and the Python implementations improved, work on the core differentiation algorithms to maximize speed, and ensure that optional dependencies on symengine function and help for hard problems.
- Develop a more comprehensive set of examples. I've started creating more and migrating threse to the PyDy documentation: https://pydy.readthedocs.io/en/latest/#examples. One barrier to user adoption is the lack of examples that are clearly written that cover all types of dynamic systems.
- I've recently discovered that for some problems the resulting symbolic equations are in a form that results in numerical error accumulation in the arithmetic. This is problematic and figuring out what this issue is and remedying it would be a nice improvement.
- All of these PRs are hanging: https://github.com/sympy/sympy/pulls?q=is%3Aopen+is%3Apr+label%3Aphysics.mechanics and it would be nice to resolve them and get them merged.
- If work can be done on PyDy, as has in the past, there are several things there too 1) support DAEs, 2) improve the visualizer in a number of ways, 3) migrate examples to jupyter-sphinx, etc.

At this point, I'm generally in disfavor of proposing any new features or extensions to the library over fixing and improving what we already have. As you can see, we have several GSoC projects that were not fully polished off or were not merged at all.

Jason

On Sun, Feb 7, 2021 at 8:25 AM Sudeep Sidhu <sudeepma...@gmail.com> wrote:
Hi, 

While going through ideas , I found this idea , Classical Mechanics: Efficient Equation of Motion Generation with Python, very appealing . I wanted to know if this idea is outdated or is being considered for this year's GSoC .

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/7f6f725c-a4a0-4c11-895b-a4eb1e83f837n%40googlegroups.com.

Psycho-Pirate

unread,
Feb 7, 2021, 1:01:12 PM2/7/21
to sympy

Hi,
I would like to know if the idea, Continuum Mechanics: Create a Rich 2D Beam Solving System, will be considered this time or not.
I would also like to know if it is better to 
  • implement more features in the existing beam module 
  • Or expand the continuum mechanics module to implement other structures like trusses and frames. 
Due to the short coding period it won't be possible to implement both of the above.

Mhd Ali

unread,
Feb 7, 2021, 3:47:39 PM2/7/21
to sy...@googlegroups.com
Hello, 
Does someone have to be really conversant with physics to handle a project like that?


Sudeep Sidhu

unread,
Feb 8, 2021, 3:08:52 AM2/8/21
to sympy
Jason,

I would like to work in this realm in this year's GSoC.

I went through Sahil Shekhewat's and James Milam's (jbm950) previous unmerged GSoC work and found out that(I may be wrong)  FeatherStoneMethod can't be added until we add fully working JointsMethod class and implement  spatial vectors.

I would like to implement Spatial Vectors in this year's GSoC and would like to discuss it further.

Sudeep Sidhu




On Sun, Feb 7, 2021 at 2:24 PM Jason Moore <moore...@gmail.com> wrote:
Sudeep,

The topics related to sympy.physics.vector/mechanics are still possibilities. I will have time to mentor this summer if someone wants to do projects in this realm.

We have not updated the ideas page yet for this year so those could be adjusted. Off the top of my head here are some things that I think are priorities:

- Finish and enhance the work of Sahil Shekhewat so that models can be built with body and joint specifications (unmerged GSOC work).
- Finish and enhance the work of James Milam (jbm950) that adds a FeatherstoneMethod. This is one way to increase the computational efficiency. One thing that is missing are nice implementations of spatial vectors and their operators.
- Finish and enhance the work of Nikhil Pappu. The Autolev parser needs to be battle tested on some examples and bugs worked out. We need the tests in the private gitlab repo to actually be run by SymPy. (merged, but not polished GSOC work).
- The Linearizer class was updated by James Crist, but I think it is effectively broken for more complex problems. This needs to be fixed and we need examples of it working for systems with holonomic and nonholonomic constraints.
- Improve symbolic computational speed. Hard examples need to be profiled and the Python implementations improved, work on the core differentiation algorithms to maximize speed, and ensure that optional dependencies on symengine function and help for hard problems.
- Develop a more comprehensive set of examples. I've started creating more and migrating threse to the PyDy documentation: https://pydy.readthedocs.io/en/latest/#examples. One barrier to user adoption is the lack of examples that are clearly written that cover all types of dynamic systems.
- I've recently discovered that for some problems the resulting symbolic equations are in a form that results in numerical error accumulation in the arithmetic. This is problematic and figuring out what this issue is and remedying it would be a nice improvement.
- All of these PRs are hanging: https://github.com/sympy/sympy/pulls?q=is%3Aopen+is%3Apr+label%3Aphysics.mechanics and it would be nice to resolve them and get them merged.
- If work can be done on PyDy, as has in the past, there are several things there too 1) support DAEs, 2) improve the visualizer in a number of ways, 3) migrate examples to jupyter-sphinx, etc.

At this point, I'm generally in disfavor of proposing any new features or extensions to the library over fixing and improving what we already have. As you can see, we have several GSoC projects that were not fully polished off or were not merged at all.

Jason

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.

Jason Moore

unread,
Feb 8, 2021, 6:44:24 AM2/8/21
to sympy
For:

I would like to know if the idea, Continuum Mechanics: Create a Rich 2D Beam Solving System, will be considered this time or not.
I would also like to know if it is better to 
  • implement more features in the existing beam module 
  • Or expand the continuum mechanics module to implement other structures like trusses and frames.
In general, I think fixing and improving what is there is the best approach, especially for the new shorter GSoC period.

Jason

Jason Moore

unread,
Feb 8, 2021, 6:47:01 AM2/8/21
to sympy
We've had students succeed that don't know physics well but are fast learners. It really depends on your motivation, ability to self learn new physics topics, and the project you plan to implement.

Jason

Jason Moore

unread,
Feb 8, 2021, 6:50:39 AM2/8/21
to sympy
Sudeep,

FeatherstoneMethod should not require any implementation of joints, I think it should work with knowledge of the rigid bodies and particles in a system and their relative kinematics. That would keep things general. I do think that a nice implementation of a spatial vector would provide the best foundation for building the Featherstone algorithm and allow it to work with the classes we have already established for describing the kinematics of a system.

Jason

Mhd Ali

unread,
Feb 8, 2021, 6:59:31 AM2/8/21
to sy...@googlegroups.com
Please someone should help me, doesn't some need to really know physics to take on those projects relating to physics stuff

Sudeep Sidhu

unread,
Feb 8, 2021, 7:54:31 AM2/8/21
to sy...@googlegroups.com
Jason,

I would definitely like to work on physics mechanics/vectors project in this summer as physics has been my favourite subject and I'm really eager to learn more physics to code it and I think I can learn it myself while coding plus you could help me if I get stuck somewhere.

So which would be better to implement first, spatial vector or Featherstone method? If possible can you please share notes or pdf link of related topic as it would be nice to have a headstart.





Sudeep Sidhu

unread,
Feb 8, 2021, 7:58:12 AM2/8/21
to sy...@googlegroups.com
On Mon, 8 Feb 2021, 18:24 Sudeep Sidhu, <sudeepma...@gmail.com> wrote:
Jason,

I would definitely like to work on physics mechanics/vectors project in this summer as physics has been my favourite subject and I'm really eager to learn more physics to code it and I think I can learn it myself while coding plus you could help me if I get stuck somewhere.

So which would be better to implement first, spatial vector or Featherstone method? If possible can you please share notes or pdf link of related topic as it would be nice to have a headstart.


 
I would really like to implement Spatial Vector in this year's GSoC . If possible please share a link of a good source to read and learn more about spatial vectors.

Jason Moore

unread,
Feb 8, 2021, 8:30:10 AM2/8/21
to sympy
James worked with Featherstone's book "Rigid Body Dynamics Algorithms". But I think that the spatial vector implementation used in simbody may be a good thing to copy.

I also think that focusing on improving end-user use of the software is more bang for the buck and adding the Featherstone algorithm doesn't add much for general users.

Jason

Sudeep Sidhu

unread,
Feb 8, 2021, 8:37:51 AM2/8/21
to sy...@googlegroups.com


On Mon, 8 Feb 2021, 19:00 Jason Moore, <moore...@gmail.com> wrote:
James worked with Featherstone's book "Rigid Body Dynamics Algorithms". But I think that the spatial vector implementation used in simbody may be a good thing to copy.

I also think that focusing on improving end-user use of the software is more bang for the buck and adding the Featherstone algorithm doesn't add much for general users.

Jason

So is Spatial Vector good to go as a GSoC project or shall I look for something else from mechanics/vectors ideas because may have a couple of more ideas in which I may be interested in other than Spatial Vectors.

Sudeep Sidhu

Jason Moore

unread,
Feb 9, 2021, 4:58:54 AM2/9/21
to sympy
I personally think completing the JointsMethod is of higher priority than the FeatherStone method. The JointsMethod would open up the use of the library to a much wider set of users because they will be able to construct models with less knowledge of the underlying mathematics. For example, a double compound pendulum could be created like this:

ground = RigidBody(...)
upper_link = RigidBody(...)
lower_link = RigidBody(...)

base_joint = PinJoin(ground, lower_link, ...)
intermediate_joint = PinJoint(lower_link, upper_link, ...)

joint_method = JointMethod((base_joint, intermediate_joint), ...)

equations_of_motion = joint_method.generate_eoms(...)

Jason

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.

Sudeep Sidhu

unread,
Feb 9, 2021, 7:49:31 AM2/9/21
to sy...@googlegroups.com
Jason,

I'm comfortable in implementing JointsMethod and it has some previous work done too (unmerged GSoC work). All I would need is some guidance with concepts if I get stuck somewhere and a good source to read about JointsMethod. I have some knowledge of dynamics too so I think I can implement it.

Sudeep Sidhu

Sudeep Sidhu

unread,
Feb 10, 2021, 7:51:23 AM2/10/21
to sy...@googlegroups.com
Jason,

I went through the previous JointsMethod work, I think it would be wise to complete the previous 2 PRs of Joint Methods because it contains some good work and completing them would take less time rather than starting from scratch. 
Please refer a source to read more about Joints and JointsMethod.

Sudeep Sidhu



Jason Moore

unread,
Feb 10, 2021, 8:45:47 AM2/10/21
to sympy
Sudeep,

The only thing I can think of to look it is how people do this in other dynamics software. Many of them let the user define a system based on descriptions of rigid bodies and different joint types. That description is the used to define the mathematics of the kinematics. The software Simbody does it, for example: https://github.com/simbody/simbody You can see that the concept of a "mobilizer" is used.

Jason

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.

Sudeep Sidhu

unread,
Feb 10, 2021, 10:07:59 AM2/10/21
to sy...@googlegroups.com
Jason,

I'll surely look into it. 

So is JointsMethod good to go as GSoC project?

Jason Moore

unread,
Feb 10, 2021, 10:12:48 AM2/10/21
to sympy
Sudeep,

We don't tell you what is "good to go". Every applicant can propose whatever they want. The applications are judged on the scope, the likelihood of success, the writer's communication, alignment with sympy's roadmap, and their applicant's interaction with the community.

Jason

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.

Sudeep Sidhu

unread,
Feb 10, 2021, 11:17:59 AM2/10/21
to sy...@googlegroups.com
Jason,

Thanks for clarifying things for me , I actually got confused because your name wasn't in potential mentors list so I thought about that "good to go".

Other than looking in other dynamics packages I wanted to learn a bit theory about Joints and JointsMethod , searching google is showing Truss, so please recommend me a book or website to gain that knowledge.

Sudeep Sidhu



On Wed, 10 Feb 2021, 20:42 Jason Moore, <moore...@gmail.com> wrote:
Sudeep,

We don't tell you what is "good to go". Every applicant can propose whatever they want. The applications are judged on the scope, the likelihood of success, the writer's communication, alignment with sympy's roadmap, and their applicant's interaction with the community.

Jason

On Wed, Feb 10, 2021 at 4:07 PM Sudeep Sidhu <sudeepma...@gmail.com> wrote:
Jason,

I'll surely look into it. 

So is JointsMethod good to go as GSoC project?

On Wed, 10 Feb 2021, 19:15 Jason Moore, <moore...@gmail.com> wrote:
Sudeep,

The only thing I can think of to look it is how people do this in other dynamics software. Many of them let the user define a system based on descriptions of rigid bodies and different joint types. That description is the used to define the mathematics of the kinematics. The software Simbody does it, for example: https://github.com/simbody/simbody You can see that the concept of a "mobilizer" is used.

Jason
moorepants.info
+01 530-601-979

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAJUjCNmYppkxNO91SpEuMBXhbbHx26bnWF8-ioxA5NiECuWtFg%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.

Sudeep Sidhu

unread,
Mar 10, 2021, 3:10:44 AM3/10/21
to sy...@googlegroups.com
Jason, 

I have gone through Sahil's work multiple times and I think it has some really good work and needs polishing, updations and some good test cases.

In Sahil's JointsMethod implementation , the use of root_body is only to achieve the frame about which equations shall be generated so instead can't we allow user to directly pass a Newtonian Frame about which equations can be generated, isn't that the thing the ground body would do like you said in one of the comments? 

Current implementation in Sahil's work is : JointsMethod(joints, root_body)

What I propose is : JointsMethod(newtonian_frame, *joints)

Sudeep Sidhu

Sudeep Sidhu

unread,
Mar 12, 2021, 7:39:32 AM3/12/21
to sy...@googlegroups.com
Jason, 

I have prepared my draft proposal for GSoC'21. Where shall I share it so that you and others can review it.

Sudeep Sidhu

Jason Moore

unread,
Mar 13, 2021, 6:28:47 AM3/13/21
to sympy
Sudeep,

Please see the GSoC instructions: https://github.com/sympy/sympy/wiki/GSoC-Student-Instructions. We recommend the wiki.

Jason

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.

Sudeep Sidhu

unread,
Mar 13, 2021, 11:06:06 AM3/13/21
to sy...@googlegroups.com
Jason, 

So shall I create a new wiki page for 2021 proposals on sympy repositoryand share my google docs link there as done in previous years?

Sudeep Sidhu

Naman Nimmo

unread,
Mar 13, 2021, 11:12:03 AM3/13/21
to sy...@googlegroups.com

So shall I create a new wiki page for 2021 proposals on sympy repository and share my google docs link there as done in previous years?

GSoC 2021 current applications can be added here: https://github.com/sympy/sympy/wiki/GSoC-2021-Current-Applications

Regards,

--

On Sat, 13 Mar 2021, 16:58 Jason Moore, <moore...@gmail.com> wrote:
Sudeep,

Please see the GSoC instructions: https://github.com/sympy/sympy/wiki/GSoC-Student-Instructions. We recommend the wiki.

Jason

On Fri, Mar 12, 2021 at 1:39 PM Sudeep Sidhu <sudeepma...@gmail.com> wrote:
Jason, 

I have prepared my draft proposal for GSoC'21. Where shall I share it so that you and others can review it.

Sudeep Sidhu

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAJUjCN%3DNo%2BonpynE4PqsL%3Dk_%2BZF1e9-_kWr%3Do9ivgf%2B8xr17qg%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAP7f1AirRMUN%3DYbdbjtTiuvwg3isUSSP28ziywQ6toLc_YZt-Q%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.

Sudeep Sidhu

unread,
Mar 13, 2021, 11:13:43 AM3/13/21
to sy...@googlegroups.com
Thanks Naman

Sudeep Sidhu

Sudeep Sidhu

unread,
Mar 14, 2021, 1:07:24 AM3/14/21
to sy...@googlegroups.com
I have shared my draft proposal at the specified wiki page. Please review so that I can improve it as much as I can.

Sudeep Sidhu

Sudeep Sidhu

unread,
Apr 1, 2021, 2:56:41 AM4/1/21
to sy...@googlegroups.com
Jason,

I had submitted my GSoC draft proposal a few days back on official GSoC page, since I'm left with just 12 days to submit the final proposal's pdf I was really hoping you could review my proposal so that I can submit the final proposal comfortably before the deadline.

Sudeep Sidhu

Jason Moore

unread,
Apr 1, 2021, 3:15:34 AM4/1/21
to sympy
Sudeep,

I do not plan to review any GSoC proposals until we are in the actual review process. If you have specific questions you can ask on the mailing list and we all well answer as we have time.

Jason

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.

Sudeep Sidhu

unread,
Apr 2, 2021, 3:04:46 AM4/2/21
to sy...@googlegroups.com
Jason,

By review I mean please provide feedback so that I can improve my proposal before submitting final proposal. I think I should share it in fresh thread so that more people can give feedback along with your feedback.

Sudeep Sidhu
Reply all
Reply to author
Forward
0 new messages