Simulating Bending of Paper Strip

Hi Daniel,

My group has been trying to simulate the bending of a paper strip using Kangaroo. The paper strip has a slit in which we will slot the other end of the paper through to achieve the final form as shown.

We adapted scripts found on the forum and tried 3 methods; using (1) developable surface, (2) shell and (3) beam. We faced several issues and would like to seek your advice on which method to proceed with.

(1) Developable Surface
With this method, we can use the grab function to attempt bending the paper. However, we have little control in the bending and the mesh was not refined. We tried refining the mesh using C# script but after which, we were unable to bend the strip.

(2) Unstructured mesh as Shell
With this method, we can bend the strip (though not to the extent of bending into the slit). However, it takes a long time for the simulation to complete.

(3) Beam 6DOF
We believe this method can be easily implemented but are unsure about how we can introduce a slit into the beam.

Attached are the files:
BendingPaper.3dm (78.5 KB) BendingPaper.gh (74.7 KB)

We hope to get your advice on which method to proceed with. Thank you!

Did you check his developable strip scripts using DOGs?

And if you don’t have to rely on rhino you could check out this (you can find the DOG Editor on github)

1 Like

Mind Blown!

Hi Daniel,

Thank you for your references!

We tried the developable strip script but we are having some trouble trying to input a “strip with a slit” and hence, we would like to seek your advice.

The MPlane component takes in a rectangle and hence it shows an error when we input our “strip with a slit” brep. To resolve this, we then tried to convert the “strip with a slit” into a mesh using the component mesh brep.

However, we have an error when we try to run the simulation as shown in the video:

The mesh also gets divided unevenly due to the slit.

Below are our GH and rhino files:
BendingStrip.3dm (58.3 KB)
developable_strip_igl.gh (36.6 KB)

Would you be able to advise us on how we may proceed?
Thank you!

Uhm, Daniel Piker uses discrete geodesic nets, so equally spaced quad meshes. Your input is nowhere near that.
Your input mesh shoud look sth. like this:


zoomed in with control points on:
200625_02
I created that mesh manually by creating a mesh plane unwelding verticies and then pulling them away from each other, since I read somewhere that kangaroo has problems with overlaying verticies.
You can find the internalized mesh in the gh file.
strip_problem.gh (33.0 KB)
I’m yet unsure how to proceed from here. I can simulate normal bending, but what you do with your stripe is that you pull one ending through the opening and that seems really hard with the grab function. I guess it could be better to work with a combination of attractor point anchor targets to move the mesh edges.