# How to wrap a crumpled paper over a surface?

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)

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}]


Is there any better way to do it?

• Have you seen this? – J. M.'s ennui Dec 31 '16 at 8:41
• 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. – Sumit Dec 31 '16 at 9:49
• Can you be more specific about "better"? – Simon Woods Dec 31 '16 at 10:17
• 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. – user484 Dec 31 '16 at 18:34
• 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. – Yves Klett Jan 3 '17 at 4:53