by Andreas Gammel (
) sign
my guestbook / view
my guestbook
here is my other website with rubber duckies, smurfs, more puzzles, geneology etc.
Total visits:
Introduction
I’ve been working an the Teabag Problem on and off for a year now.
For a specification of the problem and various links refer to the bottom of this page.
I came to a recent breakthrough after altering a Finite Element simulation program to include inflation force, and stitching several ‘sheets’ together.
The program was written as a Visual C++ console application that uses OpenGL to animate the results. The images below are several screenshots from my experiments. I started by a classic teabag (2 square sheets stitched together). Later I moved on to arbitrary many sheets, which I used to inflate a cube. The simulation uses ‘verlet integration’ as physical model, dampening forces to stabilize the model, and outward normal vectors on each triangle to simulate inflation.
You may download the executable for Windows. See below the images for instructions
My attempts to use Variational Calculus to symbollically solve the Teabag Problem are compiled in this Maple worksheet teabag.mws
Images
|
|
teabag of 32 x 32 segments being inflated.
The weird dents are due to the fact that a progressive constraint
satisfaction scheme is used
|
|
|
perfectly inflated teabag. volume is around 0.208
|
|
|
side view of same teabag.
|
|
|
teabag of 64 x 64 segments being inflated.
Teabags tend to inflate and stabilize correctly but the volume is different
at each run
|
|
|
only sucessful attempt at inflating a
cube, constructed of 6 square sheets stuck together. Most of my cube systems
behave very instable and refuse to iterate to a stable state
|
|
|
a cube being infalted
|
|
|
view from inside a cube. 3 stable corners are
visible. a 4th corner is fixed to (0,0,0) to avoid drifting
|
|
|
attempt to build, photograph, scan and
vectorize the coordinates of a teabag
|
|
|
attempt to wrap a jeu-de-boule ball in 2
square pieces of paper, resulting in this ‘birdie’. I couldn’t get it’s beak
to close, so it just became out mascotte
|
Downloading the
executable
Inflatulator version 1.0
Download the executable here: inflatulator11.exe. Save this file to any location on your harddisk
It requires an extra library (the OpenGL utility library) which you can download here: glut32.dll. Save this file to c:\windows\system
This should be enough to run the program, assuming that your Windows version contains the standard OpenGL libraries, which is almost always the case. This version contains an ‘blobbing’ teabag, which doesn’t stabilize. I did this on purpose cause the animation looks nice.
usage:
key ‘+’ – increase windspeed
key ‘-‘ – decrease windspeed
key ‘x’ - zoom in
key ‘z’ - zoom out
key ‘i’ - reset simulation
key ‘f’ - stabilize system
key ‘o’ - increase inflating force
key ‘p’ - decrease inflating force
key ‘q’ – write point data to comma seperated file ‘points.txt’
key ‘1’ – view mode, mouse changes camera position
key ‘2’ – sphere mode, mouse changes sphere position
key ‘3’ – wind mode, mouse changes wind direction
key ‘s’ – show sphere
key ‘d’ – hide sphere
key ‘g’ – turn gravity on
key ‘h’ – turn gravity off
key ‘w’ – trun wind on
key ‘e’ – turn wind off
key ‘Esc’ – exit program
I’m working on version 1.2 which will have the following features:
- user-defined objects from a separate textfile (e.g. create your own blowup doll)
- single point constraints to keep points in one point, line or plane
- inflation accelaration
- menu support
- save to mpeg
mail me any other suggestions you might have
I’m indebted to Jordan Isaak whose Cloth Simulation source code I used as the basis for my program: http://members.shaw.ca/jordanisaak/graphics.htm
The theory of verlet integration originates from “Advanced Character Physics” by Thomas Jacobsen http://www.ioi.dk/Homepages/thomasj/publications/gdc2001.htm
Problem description
It is so simple to
explain that even a child could understand it, but it is notoriously difficult
to solve. It is
called: the Teabag Constant.
Given:
+-----+
| |-+
| | |
+-----+ |
+------+
Take 2 square pieces of paper of width 1. Put them exactly on top of each
other, and glue the sides together (just the sides, not he surfaces) . This
results in a sealed 'teabag'. Make a small hole in it and blow air into
the teabag. The result will be a pillow shaped thingie.
Question:
What is the maximum volume that the teabag can have, taking into account
the physical properties of paper (it can be folded but not deformed).
Remarks
A teabag can be modeled as a 3D surface T = [ x(t,u), y(t,u), z(t,u) ]
Of course, the simplest upper bound on the volume is that of a sphere of
surface area 2. This has volume 2^1/2 3^-1 pi^-1/2 or approximately
0.265961520. This example however is incorrect because a sphere requires
deforming the paper. see http://frey.newcastle.edu.au/~andrew/teabag/
The physical properties of paper can be mathematically expressed as a
surface having a 'gaussian curvature' of 0. But maybe there are simpler
ways.see http://mathworld.wolfram.com/GaussianCurvature.html
This problem requires finding a 'maximum function' as opposed to a
'maximum value'. This type of problem is ideally suited for the theory of
'calculus of variations' or Euler-Lagrange equations see
http://mathworld.wolfram.com/CalculusofVariations.html
After applying these theories, which took me a few weeks to master, I
ended up with a system of 3 non linear 4th order differential equations
each containing about 100 terms. Maple won't help me there, so now I'm
investigating ways of solving PDE's. One theory that looks hopeful is
fourier transforms. see
http://www.mapleapps.com/categories/mathematics/pdes/html/inttrans.html)
Sadly, solving this PDE seems quite hopeless. A completely different way
is to solve it discretely by using Finite lements, or a discrete mesh of
points which represent the sheets. A ystem of forces could then be used to
'inflate' the teabag. A posible starting point could be be the fascinating
website of MyPhysicsLab, which shows applets, source code and mathematics
needed to do this. It uses Runge Kutta code to simulate the system. The
gravity force used should be extended by an 'inflating force'.
The Teabag could be represented as a mesh of very rigid springs.
see http://www.myphysicslab.com/
I'm currently writing a program that numerically searches the set of valid
teabags, using an exhaustive recursive approach. cheers,
Andreas