
Date:
Fall 2021
Skills Used:
Python Programming, Technical Writing, System Modeling, Linear Algebra
Design Goals
This project was completed for the course MECHENG 599: Introduction to Robotic Manipulation at the University of Michigan, in order to explore the use of a python-based mass spring particle model to simulate the mechanics of various deformable objects bouncing on a flat surface, geared toward future applications in a manipulation pipeline. Parameters such as stiffness, damping constant, friction coefficient, initial object configuration, and spacing between points can all be configured before a run is calculated. The objects are assembled by loading in a PNG file, such that a point is placed at every black pixel and is then connected to each of its 8 neighboring points by a spring and damper. Once the object is set up, the physics progresses using Euler integration at each time step to calculate the velocity and position of each point based on the net force on that point. Once the physics has finished calculating, an animation is displayed. In its current form, the model is too slow for high stiffness coefficients to use in real time, but improvements to the computational efficiency could be made to make this possible.
For a full explanation of the project, see this report:
For the full code used for the project, see this GitHub Repository.

Each point is connected to others with springs and dampers, as shown.

A run with a small square.

A run with a large square.

The crescent shape can “jump”!
The University of Michigan M Logo.

