My initial question was about the making of a crumpled paper. After reading this article suggested by J.M. and little more browsing (kind of random walk you do on a Saturday) I thought about expanding the question a little bit.

Q1. How can I make a crumpled paper?

Q2. How to wrap it on a smooth surface?

For example, first I want to create a surface like (Fig.3a of this page) enter image description here

and then I want to wrap it on a smooth surface, say on the northern hemisphere.

I tried to start from a DelaunayMesh using the approach given in Visualize Mesh Properties.

pts = Join[Tuples[{0, 1}, 2], RandomReal[1, {50, 2}]];
mesh2d = DelaunayMesh[pts];
{minArea, maxArea} = {Min[#], Max[#]} &@ PropertyValue[{mesh2d, 2}, MeshCellMeasure];

HighlightMesh[mesh2d, {Style[1, Opacity[0]], 
  Style @@@ ({{2, #},  GrayLevel[ Rescale[PropertyValue[{mesh2d, {2, #}}, 
  MeshCellMeasure], {minArea, maxArea}]]} & /@ Range[MeshCellCount[mesh2d, 2]])}]

which looks like a 2D projection of the wrinkly surface. Then probably a small random z value can be added at each vertex to create the crumpled sheet. And finally, it can be put on the top of a hemisphere.

An alternative way could be using ListPlot3D with InterpolationOrder -> 1. Using the same set of points

ListPlot3D[pts /. {x_, y_} :> {x, y, RandomReal[0.1]}, BoxRatios -> {1, 1, .2},
InterpolationOrder -> 1, ColorFunction ->GrayLevel, Mesh -> All, PlotRange -> {-0.05, 0.15}]

enter image description here

Is there any better way to do it?

  • 1
    $\begingroup$ Have you seen this? $\endgroup$ – J. M.'s ennui Dec 31 '16 at 8:41
  • $\begingroup$ Thanks @J.M. for the paper. I was thinking about moving to 3D later - looks like this approach can be applied to any surface (I am not claiming that I can do it now). I think I am going to end up with a lot crumpled paper in real life. $\endgroup$ – Sumit Dec 31 '16 at 9:49
  • $\begingroup$ Can you be more specific about "better"? $\endgroup$ – Simon Woods Dec 31 '16 at 10:17
  • 3
    $\begingroup$ Assuming paper is inextensible, a crumpled sheet of paper is a developable surface, so its Gaussian curvature should be zero everywhere. Assigning a random $z$ value to each vertex won't give you that. I'm not sure there's a simple process by which you can generate a random developable surface though. $\endgroup$ – user484 Dec 31 '16 at 18:34
  • 1
    $\begingroup$ You should google after and peruse some papers of Tomohiro Tachi regarding crumpling. Putting truly isometric crumpling on non-developable surfaces is a very complex task. $\endgroup$ – Yves Klett Jan 3 '17 at 4:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.