| Personalities of the cubeBy Paul BourkeMay 2004
 
 
|  |  
|  Wiffle cube.
 1 -
	[ a2 (x2 + y2 + z 2) ]-6 -
	[ b8 (x8 + y8 + z8) ]6 = 0
 
 |  SGI logo.
 
 |  |  |  
|  Sculpture.
 Canberra, Australia
 |  Horned cube.
 1 - 3 x8 - 3 y8 - 2*z8 +
	5 x4 y2 z2
	+ 3 x2 y4 z2 = 0
 |  |  |  
|  Imagined cube.
 |  Perceptual fill-in.
 |  |  |  
|  Menger Sponge.
 |  Hypercube.
 |  
 
 Generating rounded cube geometryWritten by Paul BourkeApril 2012
 
 
 
The following will briefly describe a way of creating a rounded cube shape, example code
is supplied here: roundcube.c (Tab stops to 3 spaces for correct
indenting).
which created the shape and saves the result
as an obj file with normals and texture coordinates. The code should be easy to modify
to create the mesh geometry in other formats or for APIs such as OpenGL. The output from
the code plus a sample texture map are given below.
 
 
The roundedness of the cube is determined by the power the expressions in the polar
coordinate calculation of the sphere. A power of 1 is a perfect sphere, smaller powers
generate sharper and sharper cubes. The image below is a power of 0.5.
  
 
The normals are straightforward to calculate, they are just the vectors to the vertices
of the roundcube centered at the origin. There are many options
for the texture coordinates, the one chosen here is the projection of a sphere onto the
rounded cube. These are computed by calculating the longitude and latitude of each vertex of the
capsule and mapping those to (u,v) in the usual way. 
Examples given the texture map (spherical projection) given above is shown below for power
of 0.2 and 0.1 respectively.
  power = 0.2
 
  power = 0.1
 
 
Note that this is a less general formulation of the superelipsoid.
 
 
 | Tooth SurfaceGraphics by Paul BourkeMarch 2003
 | x4 + y4 + z4 - 
(x2 + y2 + z2) = 0 | 
 
 
 
 
 Wiffle cubePaul BourkeMarch 1990
 
Source code to create a volumetric dataset
 
 
 
The wiffle cube is basically a rounded (soft) cube with the
center sphere removed.
The field function in 3 dimensions at a point p = (x,y,z)
is given by the following where a is normally 1/2.3 and b = 1/2.
f(x,y,z) = 1 - 
[ a2 (x2 + y2 + z 2) ]-6 - 
[ b8 (x8 + y8 + z8) ]6 
Isosurfaces of the above field function are wiffle cubes
as shown below as wire frame and simple rendered form.
 
 
 
The following are slices along one axis (the other axes would be the
same). The horizontal and vertical range is -2.5 to 2.5, the colour
is a linear colour ramp from -20 (blue) to about 0.88 (red).
 
Further rendered views varying the isosurface level.
  
 
 
 
 The PovRay model that created the above:
wiffle.pov,
wiffle.ini.
 
 
 
 | Horned CubeContributed by Roger BagulaGraphics by Paul Bourke
 
May 2003
 | -3 x8 - 3 y8 - 2*z8 + 
5 x4 y2 z2
+ 3 x2 y4 z2 + 1 = 0 | 
 
 
  
  
  
 
 How to make the SGI logoWritten by Paul BourkeNovember 1992
 
 
The SGI logo is generated as follows:Given two lengths l1 and l2, the "turtle graphics" instructions
along with the resulting wire frame result are given below.
In what follows, left and right refer to moving towards the negative
numbers or positive numbers respectively. Up and down is movement along
the z axis, back and forward refer to the y axis.
 
 | forward l1 left    l2
 down    l1
 right   l1
 up      l2
 back    l1
 down    l1
 forward l2
 left    l1
 back    l1
 right   l2
 up      l1
 left    l1
 down    l2
 forward l1
 up      l1
 back    l2
 right   l1
 
 |   | 
 
In the example above l1 = 1 and l2 = 0.7
 
Turning the line segments into
cylinder/sphere pairs is shown below 
with its geometric description in Radiance
 
 | s cylinder cyl 0 0 7 -0.5 -0.5 0.5 0.5 -0.5 0.5 0.13 s cylinder cyl 0 0 7 0.5 -0.5 0.5 0.5 0.5 0.5 0.13
 s cylinder cyl 0 0 7 -0.2 -0.8 -0.8 -0.2 0.2 -0.8 0.13
 s cylinder cyl 0 0 7 -0.2 0.2 -0.8 0.8 0.2 -0.8 0.13
 s cylinder cyl 0 0 7 0.8 0.2 -0.8 0.8 -0.5 -0.8 0.13
 s cylinder cyl 0 0 7 0.8 -0.5 -0.8 0.8 -0.5 0.2 0.13
 s cylinder cyl 0 0 7 0.8 -0.5 0.2 0.8 0.5 0.2 0.13
 s cylinder cyl 0 0 7 0.8 0.5 0.2 0.8 0.5 -0.5 0.13
 s cylinder cyl 0 0 7 0.8 0.5 -0.5 -0.2 0.5 -0.5 0.13
 s cylinder cyl 0 0 7 -0.2 0.5 -0.5 -0.2 0.5 0.5 0.13
 s cylinder cyl 0 0 7 0.5 0.5 0.5 -0.2 0.5 0.5 0.13
 s cylinder cyl 0 0 7 -0.5 -0.5 0.5 -0.5 0.2 0.5 0.13
 s cylinder cyl 0 0 7 -0.5 0.2 0.5 -0.5 0.2 -0.5 0.13
 s cylinder cyl 0 0 7 -0.5 0.2 -0.5 -0.5 -0.8 -0.5 0.13
 s cylinder cyl 0 0 7 -0.5 -0.8 -0.5 -0.5 -0.8 0.2 0.13
 s cylinder cyl 0 0 7 -0.5 -0.8 0.2 0.5 -0.8 0.2 0.13
 s cylinder cyl 0 0 7 0.5 -0.8 0.2 0.5 -0.8 -0.8 0.13
 s cylinder cyl 0 0 7 0.5 -0.8 -0.8 -0.2 -0.8 -0.8 0.13
 s sphere sph 0 0 4 -0.5 -0.5 0.5 0.13
 s sphere sph 0 0 4 0.5 -0.5 0.5 0.13
 s sphere sph 0 0 4 0.5 0.5 0.5 0.13
 s sphere sph 0 0 4 -0.2 0.2 -0.8 0.13
 s sphere sph 0 0 4 0.8 0.2 -0.8 0.13
 s sphere sph 0 0 4 0.8 -0.5 -0.8 0.13
 s sphere sph 0 0 4 0.8 -0.5 0.2 0.13
 s sphere sph 0 0 4 0.8 0.5 0.2 0.13
 s sphere sph 0 0 4 0.8 0.5 -0.5 0.13
 s sphere sph 0 0 4 -0.2 0.5 -0.5 0.13
 s sphere sph 0 0 4 -0.2 0.5 0.5 0.13
 s sphere sph 0 0 4 -0.2 0.5 0.5 0.13
 s sphere sph 0 0 4 -0.5 0.2 0.5 0.13
 s sphere sph 0 0 4 -0.5 0.2 -0.5 0.13
 s sphere sph 0 0 4 -0.5 -0.8 -0.5 0.13
 s sphere sph 0 0 4 -0.5 -0.8 0.2 0.13
 s sphere sph 0 0 4 0.5 -0.8 0.2 0.13
 s sphere sph 0 0 4 0.5 -0.8 -0.8 0.13
 s sphere sph 0 0 4 -0.2 -0.8 -0.8 0.13
 
 |   
   | 
 
The "logo" can be interlinked in each 3D
direction, a few cells are shown below 
 
 
 | Tangle SurfaceGraphics by Paul BourkeMarch 2003
 | x4 - 5 x2 + y4 - 
5 y2 + z4 - 5 z2 + 11.8 = 0 | 
 
 
 
 |