Software

The following applications require that you have Java 5 and Java webstart installed on your computer. You may also be asked to trust the signer "Visualization Group". That's our group here at the Technical University Berlin. The full directory of all my webstarts is here; unfortunately I can't guarantee that they all are always up-to-date and functional.

These applications are based on jReality, a Java package for 3D visualization developed by our group here at the TU-Berlin.

Differential Geometry

Planar-curve Explorer

This and the following two applications were developed as part of a course here at the TU in the differential geometry of curves and surfaces This application deals exclusively with planar curves, which can be specified either explicitly by a function (x(u), y(u)), or by specifying the curvature function, which is then integrated to give the curve. These functions can involve free parameters either continuous or discrete, which can then be controlled by sliders in the GUI. One can optionally display equidistant curves and the evolute of the given curve.

Space Curve Explorer

This application extends the previous one to allow specification of an arbitrary curve in Euclidean 3-space. The curvature and torsion graphs corresponding to the curve can be optionally viewed. Other options include display of the Frenet frame and osculating circle at a given point of the curve (controlled by a slider), and display of the evolute curve (locus of the centers of the osculating circle).

Surface Explorer

This application supports the exploration of arbitrary parametrized surface patches in Euclidean 3-space. The Gaussian and mean curvature graphs can be optionally viewed. The domain of the patch can be manipulated by dragging its corners or edges. One can optionally display the tangent plane (and/or second order Taylor approximation) to the surface at an arbitrary point of the domain. Surface definition is organized in three types: explicit, surface of revolution, and tangent developable. Each type has a set of built-in surfaces, or you can type in your own examples. As above, these expressions can be parametrized. There are a host of rendering options also available, including a variety of texture maps and color options.

Fractals

Elephant Trunk

In September 2005 I visited a freshman seminar at UNC-CH taught by Sue Goodman, and talked about iterating 3D transformations. I prepared this and the following application as webstart applications so that the students could play with these ideas. ElephantTrunk features a single iterated conformal map of Euclidean 3-space (i.e. a Euclidean isometry combined with a homogeneous scaling transformation). The iterates of this transformation are applied to a simple geometry (in this case, a bone-shaped surface of revolution). The user can interactively control this transformation.

Self-similar Tree

If instead of a single transformation you choose a pair of such transformations and construct all possible combinations of these two transformations (up to a certain length), and apply the resulting list of transformations to a simple cylinder, you get an object which deserves the name "self-similar tree". The coloring of a specific copy reflects the sequence of transformations responsible for the copy.

Punctured Torus

The following application is under development. It's a re-implementation of a program I wrote at the Geometry Center in 1993 to explore limit sets of Kleinian groups. This version was inspired by the wonderful book Indra's Pearls by Mumford, Series, and Wright. This application allows you to independently set the two complex values which determine a punctured torus, and then draws the limit set of the covering group, conceived of as acting on hyperbolic 3-space + plane at infinity. There are options for controlling how many group elements are calculated; and for controlling the rendering, such as whether it should be drawn as the Riemann sphere or flat; in the former case, one can display part of the pleated surface within hyperbolic space corresponding to the group. You can also display fixed points and words associated to the almost parabolic elements in the group, which play an important role in characterizing the limit set. Finally, once you set one of the parameters, it attempts to detemine and display the boundary of the Teichmuller space for the other parameter, but this feature does not work reliably.

Polyhedra and Symmetry Groups

Archimedean Solids

This is a simple demo showing the 13 Archimedean solids and their duals arranged on the vertices and center point of the cuboctahedron (3.4.3.4). One can also choose to display just one of the solids and its dual. Display of the Archimedean solids and of the duals can be separately controlled in case only one or the other is desired. There is not yet any online help.

Triangle Group

This simple demo allows the user to experiment with a wide variety of 2-dimensional triangle groups. In the process the users gains a direct experience the three different standard planar metric geometries -- euclidean, elliptic, and hyperbolic. The left and right arrow keys cycle through the archetypal groups 236, 235 and 237, while a wider choice of groups is available under the "Groups" menu. The '2' key toggles between display of elliptic case as a projective plane (flat) or as a sphere (double covering of elliptic plane). The displayed tessellation gotten by reflecting a point P across the three sides of the triangle can be changed by dragging this point while holding down the right mouse. The left mouse translates in the ambient metric. The program is a reincarnation of a the program trigrp which I wrote while at the Geometry Center in around 1990. There is not yet any online help.

Methane Hydrate

This application has been developed to explore the crystalline structure of methane hydrate, in preparation for making an animation in conjunction with collegues at the GeoForschungZentrum, Potsdam. It has some neat features that will appear in other applications, notably the "stamp" tool which allows you to selectively carry out a tessellation by clicking on the faces of a fundamental region.