### Simulating Rubber Sheets with Data Explorer

WarpSheet Version 1.0

Introduction | Design | Results | Software | Acknowledgements | References

### Introduction

The goal of this project was to create a module which would allow the user to simulate a rubber-like sheet being deformed over or under objects.

### Design

A behavior of a rubber sheet is, mathematically speaking, an example of the Laplace equation

which is equivalent to

The concept of (2) can be easily extended to simulate the deformation of a rubber-like sheet. Imagine that the sheet is infinitely elastic, yet does not deform under it's own weight. Hence, the only place where the sheet is deformed is where there is a force applied to it.

We can simulate such a sheet to a specific resolution by modeling it as a grid u where u(x, y) represents the height of the sheet at position (x, y). If we assume that the sheet is uniform with Dirichlet boundary conditions, we can approximate the derivatives in (2) to obtain the relation

Given (3) we can easily solve for the height at any given grid position as

We can simulate static forces on the sheet by fixing the value of u(x, y) to the maximum height of the closest object vertices in the scene. Once these forces have been set it is easy to warp the sheet by repeatedly applying (4) to every grid position until the desired degree of relaxation has been achieved.

While a simple triple-nested loop can adequately perform the task of relaxing the grid, the time for this method to achieve an asymptotic rate of convergence for a square grid of width n is O(n^2), and hence very inefficient. A better method is available, that of Successive Overrelaxation (SOR).

In SOR an overcorrection is made to the change in the value of each grid point for each iteration of the outermost loop, in anticipation of future changes in that value. This method is O(n) in convergence, which proves to be an enormous increase in efficiency when the size of the grid becomes larger than 50x50.

Besides increasing efficiency via SOR, an additional performance gain was achieved by employing a technique known as Chebyshev Acceleration, which forces the norm of the error in u(x, y) to decrease with each iteration of the outermost loop (without Chebyshev Acceleration the error often grows by large factor before beginning to converge).

Even greater gains in performance could have been achieved by using Multigrid Methods. However, while fairly straightforward in theory, these methods are extremely cumbersome to implement.

### Results

The WarpSheet outboard module automates the process of warping sheets around objects. It expects a DX object as input, and correctly handles multiple fields, groups, transformations.

The user specifies the following parameters through the DX user interface:

• Width       [scalar]  Width of grid in object-units (in the x-direction)
• Length      [scalar]  Length of grid in object-units (in the y-direction)
• Xresolution [integer] Number of positions along the grid width
• Yresolution [integer] Number of positions along the grid length
• Center      [vector]  Center of sheet in 3-space
• Cutoff      [scalar]  Ignore points above (or below, depending on Warpmethod) Cutoff
• Warp method [flag]    0 = Warp under objects, 1 = Warp over objects

The module returns a triangle mesh as a field of positions and connections.

It is important to experiment with the values of Xresolution and Yresolution. Varying these values will allow you to achieve different visual effects. In practice, the higher the resolutions, the "tighter" the sheet appears to stretch over the objects, and vice-versa. As an example, the three sheets below are identical except for having different resolutions.

I have also made available several other examples of sheet warping.

### Getting the Software

The software is available in two formats: You may have to modify the Makefile to support your particular workstation and DX installation. Such modifications should be very straightforward; consult the DX Programmer's Manual for more information.

### Acknowledgements

I would like to thank Professor Bruce Land for sponsoring the development of Dx2vrml, the Cornell Theory Center for supplying the hardware to develop it on, and the Department of Computer Science for allowing me to receive academic credit for it.

Many thanks as well to my good friend Greg Pass, the originator of the sheet modeling idea, and my co-conspirator in both the early research and the "it's a bug, not a spider" project.

### References

Press, W.H., Teukolsky, S.A, Vetterling, W.T., and Flannery, B.P. Numerical Recipes in C: The Art of Scientific Computing. Second Edition. 1994: Cambridge University Press. Chapter 19.5

IBM Corporation, Thomas J. Watson Research Center. IBM Visualization Data Explorer Programmer's Reference. Fourth Edition. 1993: International Business Machines Corporation.

WarpSheet is ©1995 Christopher Kline <ckline@acm.org>