This paper was published in the special polyhedra issue of the
Symmetry: Culture and Science journal
(see contents).
The journal was released in 2003, but backdated to 2000 for some reason, so if
you wish to reference this article, the reference might read:
Webb, Robert "Stella: Polyhedron Navigator", Symmetry: Culture and
Science, Vol. 11, Nos. 14, p231268, 2000 (available online at
http://www.software3d.com/PolyNav/PolyNavigator.php)
Note: While this paper still serves as a great introduction to
Stella's capabilities, it was written in relation to Great Stella 2.0 in 2003.
Many new features have been added since then, along with the new product
Stella4D.

Stella: Polyhedron Navigator
Stella home page

Robert Webb
Melbourne, Australia

Traduction en français

Table of contents
Abstract
We introduce Stella, a computer program for navigating the world of
polyhedra. The user starts by choosing from a long list of builtin models,
then uses advanced functions such as stellation, faceting, augmentation and
excavation to explore the trillions of other possibilities. The symmetry group
of any model is established and symmetries can be displayed. Nets for the
physical construction of any model discovered can be printed out. Models may
also be morphed into their duals in realtime on the computer screen, using one
of five different techniques.
In order to explain the concepts involved, this paper also represents a
whirlwind tour of some of the major ideas in polyhedral theory today.
1. Introduction
Fig 1. Screen shot from Great Stella

Many polyhedra are beautiful to behold. The mind is kept busy trying to grasp
the various relationships that may exist in any given model. Polyhedra are a
great example of a connection between art, craft and mathematics. However,
the level of maths and draftsmanship required to build many models makes it
somewhat prohibitive as a hobby for the less mathematically minded, and adds a
considerable amount of time to the construction of any given model. Some
simple polyhedra, such as the Platonic and Archimedean solids, pose no great
challenge, since their faces are regular polygons which do not intersect. But
the other uniform polyhedra, their duals, and stellations are more challenging.
Measurements for some of these models are available on the internet or in
books, most notably Wenninger's wonderful "Polyhedron Models" [28] and
"Dual Models" [29], but a lot of work is still left to the reader,
especially in the latter book (and since the calculations were done by hand,
there are even some errors in the more complicated polyhedra).
Using a computer can make life easier. In this paper we present a computer
program called Great Stella [27], or Stella for short, which
allows the user to explore a great many polyhedra and print out the nets
required for their physical construction. This eliminates the need for the
user to perform tricky calculations, which are time consuming and error prone.
It also removes the need to draft the various nets, which is also time
consuming and prone to accumulation of inaccuracies. All that remains is the
craft of scoring the edges, cutting out the pieces, and gluing them together.
This automation brings the craft of making polyhedron models to a much wider
audience.
Whether or not the user is interested in building physical models of their
own, Stella lets them create and visualise models on the computer
screen. The program allows the user to browse through a huge set of polyhedra
and rotate them on the screen in realtime. All the uniform polyhedra
are available through the list of builtin models. This set consists of the
familiar Platonic, Archimedean and KeplerPoinsot solids, an infinite array of
prisms and antiprisms, and fiftythree other nonconvex polyhedra. The set,
first described in its entirety by Coxeter et al. in 1954 [2], is very
popular for its attractiveness (see figure 2 for an example). Skilling proved
the set to be complete in 1975 [22], and introduced one new model which is also
uniform, but doesn't quite classify as a true polyhedron due to more than two
faces meeting at some edges. Skilling's new model is also built into
Stella. The Johnson solids [10] (all convex nonuniform
regularfaced polyhedra), many Stewart Toroids [25] (regularfaced
nonintersecting polyhedra with genus greater than zero), and other models are
also available from the list of builtin polyhedra. The program can also
generate duals of all these models (see section 2),
and the user has an array of polyhedral tools at their disposal for creating
new models.
Fig 2. Great rhombicosidodecahedron

Tools such as stellation, faceting, augmentation and drilling increase the set
of available polyhedra tremendously, and open up an avenue for creativity in
the discovery of new models. A number of research papers and books have been
published on stellation theory ([1], [6], [7], [8], [14], [16], [17], [20],
[21], [23]), and Wenninger's books ([28], [29]) also presented a collection of
stellated polyhedra. Stella represents the culmination of all this
theory, and can be used to produce most of the models presented in these
publications, and many more. Faceting is another very powerful tool, but has
not appeared much in the literature to date ([3], [9]).
Figure 1 shows what the program looks like. The big window on the left shows
the compound of five tetrahedra, a stellation of the icosahedron. The smaller
windows show one of the nets required top left, the icosahedron itself top
right, the stellation pattern bottom left, and the cell diagram bottom right
(these terms are discussed in more detail below). The window layout is
configurable.
All the images with black backgrounds in this paper are photographs of models
made by the author using nets printed by Stella. Nets were printed
directly onto the coloured paper used for construction. All other images were
also created using Stella. The program runs on Windows
95/98/ME/NT4/2000/XP/Vista. It has also been successfully used on a Mac via
the Virtual PC Windows emulator.
In section 2 of this paper we explain the concept of
duals. In section 3 we describe the process of stellation
and some of the theory behind it. Section 4 explains the
creation and printing of nets and how stellation theory can help.
Section 5 discusses faceting, the dual process of
stellation. Section 6 covers augmentation, excavation
and drilling. Section 7 deals with symmetry, and how
subsymmetry can be used in conjunction with the previously described
operations. Section 8 presents our techniques for
morphing between dual models. And finally, in section 9
we will examine some additional capabilities not already covered.
2. Duals
For any polyhedron, there exists another polyhedron which is its dual.
Taking the dual of this dual polyhedron returns us to the original polyhedron
again. Roughly speaking, vertices are replaced with faces, faces with
vertices, and edges with new edges orthogonal to the originals.
Fig 3. Compound of cube and octahedron

More precisely, the technique used to create a dual is spherical
reciprocation. This is done with respect to some sphere, and the choice of
sphere affects the resulting dual polyhedron. Typically the centre of the
sphere is placed at the centre of symmetry, if one exists (where all the
axes of rotational symmetry or planes of reflective symmetry intersect). The
radius of the sphere is usually the midradius of the polyhedron, if one
exists (the radius of a sphere touching all edges of the model tangentially).
Stella will choose an appropriate sphere for the operation.
Let's suppose r is the radius of the sphere to be used, and C its
centre. If the distance from a face plane to C is d, then the
distance from C to the corresponding dual vertex is
r^{2}/d. Similarly, if the distance from a vertex to C
is d, then the distance from C to the plane containing the
corresponding dual face is again r^{2}/d. Additionally, the
direction from C to the dual face plane or dual vertex is the same as
the direction from C to the corresponding original vertex or face plane.
We refer above to the face plane rather than just the face
because the distance from C should be measured to the closest point in
the face's plane, which may indeed be outside the face.
From these simple forumlae, the vertices and faces of the dual model may be
obtained. Note that multiple faces in the same plane will all be mapped to the
same dual vertex position. Note also that if a face passes through the centre
of the sphere, its dual vertex will be at infinity, since the distance to that
vertex will be based on division by d which is zero.
Stella allows the user to view a polyhedron and its dual at the same
time in separate windows. It may also display a compound of the two. For
example, the cube and octahedron are duals. Their compound is shown in
figure 3. Nets for the physical construction of these compounds are also
available within Stella.
3. Stellation
3.1. What is a stellation?
The act of stellation opens up an almost endless collection of
fascinating models. The number of stellations of a single polyhedron will
often be measured in the trillions. The most general definition of the term
says that two polyhedra are stellations of each other if their faces lie in the
same set of planes. The exact definition has been somewhat debated, but the
author believes all other definitions are subsets of that which is given here.
More justification for this definition will be given below, but first, a little
more theory is required.
Fig 4. Great dodecahedron

Sometimes several stellations may appear to be identical. For example,
consider the great dodecahedron, which is a stellation of the dodecahedron, and
consists of 12 intersecting pentagons (see figure 4). When observing this
model, part of each pentagon is hidden from view, internal to the solid. As a
result, only five triangular regions are visible from each pentagon, so the
model could also be thought of as comprising only those visible triangles. The
polyhedron would then have 60 triangular faces, and no hidden parts. There
are also other polyhedra that appear identical to the great dodecahedron from
outside. However, within any set of stellations that are identical in
appearance, there is always exactly one that consists only of the parts that
are visible, or rather accessible, from outside. The stellations
created in Stella are of this form, but otherwise there is no
restriction on what stellations can be made, (except that they must be finite).
For example, if the user were to create the great dodecahedron as a stellation
of the dodecahedron, the model they would get would really consist of 60
triangular faces, not 12 pentagons, but would otherwise be identical in
appearance to the true great dodecahedron. It is important to recognise
however that the two polyhedra are indeed different. If the user wishes to
distinguish between multiple possibilities, faceting can be used (see
section 5).
So how do we find the stellations of a polyhedron? Each face of the polyhedron
lies in some plane. We can think of each of these planes as carving up space,
partitioning it into a collection of threedimensional convex cells.
The first plane divides space into two parts, the second divides each of these
parts in two giving us four parts (unless it is parallel to the first plane),
and similarly, the third gives us seven or eight parts. All these parts are
infinite though, that is, none of the parts are entirely bounded by
planes yet. Once we add the fourth plane things get more interesting, as now
there is one finite cell, bounded by planes on all sides. This is the
situation when stellating the tetrahedron. The only cell that is finite is the
tetrahedron itself, and so there are no other stellations.
The dodecahedron is a more interesting case. Its 12 faces lie in 12
planes, which carve up space into 63 finite cells. Due to the symmetry of the
original polyhedron, the cells fall into symmetric sets, referred to as cell
types. The 63 cells fall into four cell types. The dodecahedron itself is
the central cell, and the only one of its type (see figure 5a). The next type
consists of 12 pentagonal pyramid cells, which sit on each face of the
dodecahedron, giving rise to the small stellated dodecahedron (see figure 5b).
Next are 30 tetrahedral wedges, which fit between the spikes of the previous
model and form the great dodecahedron (see figure 5c). And finally, 20
dipyramids fit into the dimples of the great dodecahedron to form the great
stellated dodecahedron (see figure 5d). We construct different stellations by
including different combinations of cell types. A stellation is usually
required to have the same rotational symmetry as the original polyhedron, so we
either include all cells of a type, or none. For this reason the two are
synonymous for most purposes, and from here on we shall refer to cell types
simply as cells.
Fig 5a. 
Fig 5b. 
Fig 5c. 
Fig 5d.

Fig 5. Stellations of the dodecahedron, adding one cell at a time, and
showing where the next cell will go in wireframe

The stellation process performed by Stella is extremely fast when
compared with some other programs that perform stellation, taking less than a
single second for any uniform polyhedron or one of their duals on an average
machine, where other programs might take many minutes or far worse.
Internally, Stella starts by generating the 2D stellation diagrams (see
section 3.3). This takes great advantage of the
model's symmetry by only creating diagrams for one of each face type, and also
reduces the task from 3D to 2D, where calculations can be done more
efficiently. Both of these aspects save greatly on the time and memory
required. Cells are then created as sets of the elementary regions that
enclose them. Again, data is only required for each cell type rather than each
individual cell. Other approaches have started by generating the geometry for
every individual cell, then grouping them into cell types and generating
stellation diagrams. These approaches are more straightforward, but much less
efficient.
3.2. So what is a stellation really?
As stated earlier, there has recently been some debate as to how "stellation"
should be defined. In this paper we say that two polyhedra can be stellations
of each other. So, for example, it could be said that the dodecahedron is in
fact a stellation of the great dodecahedron. However, in Regular
Polytopes [3], Coxeter refers to extending faces until they meet
again, which conveys the impression that the stellation process can only go
outwards. Even the term itself means to turn into a star, and has an
emotive quality, conjuring up images of pointy objects with sharp spikes. So
is our definition inconsistent with the existing literature?
One idea few previous publications have addressed is stellation of nonconvex
polyhedra. It could simply be disallowed, but we see no justifiable reason for
that. Stellation is really an operation for which the input is a set of
planes. The planes usually come from face planes of a given polyhedron, but
there is no obvious reason to restrict the polyhedron to being convex (or even
to require that the planes be derived from a polyhedron at all!). The set of
planes can be used to generate all the possible models with faces in those
planes, and we refer to these models as stellations. This is the basic
operation being performed. It would be a seemingly pointless restriction to
only allow those stellations that were "extended" with respect to the original
polyhedron, whatever that means exactly.
Of course, in "The FiftyNine Icosahedra" [1], Coxeter included hollow
stellations of the icosahedron, where the faces of the original icosahedron
were no longer present. This may also seem to go against the idea of
"extending faces", but the important point is that the face planes are
still present. If those models were not considered stellations of the
icosahedron, then what are they stellations of? Or, is this another case for
which we draw an arbitrary line and disallow stellation altogether? Previous
literature has used whatever terminology was relevant at the time. "Regular
Polytopes" was not interested in stellation for any purpose other than how
it related to regular polytopes (in three dimensions, a polytope is just
a polyhedron), so it was appropriate in that case to simply refer to "extending
faces", since they would not be dealing with hollow polyhedra and other such
cases. More generally, terminology has reflected the fact that various authors
have only considered stellation of a convex core. Stellations were always
"extended" in a sense because when starting with a convex polyhedron, one could
not get any smaller.
In this paper we extend the definition to allow stellation of nonconvex
polyhedra, and freely allow those stellations to be smaller or bigger than the
original. Thus we must include the convex core as one such stellation. This
definition does not contradict any previously published works, it merely takes
the concept to its natural conclusion. Often as a scientific field expands,
old ideas are applied to new situations that were previously not considered.
The old ideas must then be updated accordingly. The important thing is that
the updated concept still behaves as always in the original situations, and has
a natural extension to new situations.
Maybe the emotive term "stellation" doesn't always seem quite right anymore,
but it still sounds right in most cases, and it would be unwise to change it
now. Many traditional stellations do not look like stars anyway.
3.3. The stellation diagram
Fig 6a. Dodecahedron 
Fig 6b. Icosahedron 

Fig 6. Stellation diagrams

There are two important concepts in stellation theory: the stellation
diagram and the cell diagram. Both of these can be displayed within
Stella. The stellation diagram (see figure 6) is a
twodimensional diagram that lies in the same plane as one of the faces of the
original polyhedron, and shows a line for each intersection with one of the
other face planes. The lines enclose finite areas known as elementary
regions [17]. Infinite areas, i.e. those not completely enclosed by lines,
are left out, and any part of a line that does not have a finite elementary
region on at least one side is not shown. One stellation diagram is required
for each type of face. For example, only one diagram is required for the
icosahedron, as all faces share the same relationship to the whole.
Any stellation can be specified by filling in a collection of elementary
regions to represent the externally accessible parts of that stellation.
Figure 6a shows regions required for the great dodecahedron (a stellation of
the dodecahedron, see figure 4). Figure 6b shows regions for the familiar
compound of five tetrahedra (a stellation of the icosahedron, see figure 1).
Dark shading shows the regions required, while lighter shading shows other
regions that are internal to the solid. Stella uses different colours
for the following four types of regions: regions that are accessible from above
the plane, regions that are accessible from below the plane, regions that are
internal to the model, and regions that are outside the model. This
representation is more convenient than trying to specify the situation in 3D.
Each elementary region has a cell above it and another cell below it, and
represents a face of those cells. Stella allows the user to include or
reject the cell above or below a region with a click of the mouse (as long as
the cell is finite). The stellation diagram may be viewed flat in its own
window, or displayed in 3D perspective attached to one of the faces of the
original or stellated model, which gives the user a good feel for what the
stellation diagram is all about.
3.4. The cell diagram
Fig 7a. Dodecahedron 
Fig 7b. Icosahedron 

Fig 7. Cell diagrams

The cell diagram (see figure 7) was first introduced by Messer [17],
building on an earlier concept from Pawley [21]. Starting with the inner core,
cells form layers, each completely obscuring the previous layer from view
(with the exception that some cells in the outer layers may be infinite, and
these are typically excluded, leaving gaps through to lower layers). A layer
may contain one or more different cells (i.e. cell types). The cell diagram is
a graph in which nodes represent cells. Cells in the same layer are drawn at
the same height in the graph, with the innermost core cell at the bottom and
the outermost layer at the top. Lines connect any two cells that share a face.
Since each layer entirely covers the previous one, lines can only ever connect
cells from two consecutive layers. Since we are usually interested in
stellations with the same rotational symmetry as the original polyhedron, but
not necessarily the same reflection symmetry, we ignore reflections when
grouping cells into types. As a result there may be two nodes in the cell
diagram that represent an enantiomorphic pair of cell types. Such pairs are
always drawn sidebyside, with a dashed line connecting them. Other authors
have usually represented these enantiomorphic pairs as a single node in the
cell diagram, but we have found it more useful to separate them. As with the
stellation diagram, some cells in the cell diagram can be filled to indicate
their inclusion in a stellation, thus the cell diagram is also a convenient way
to represent any particular stellation (the shading in figure 7 corresponds to
the same stellations as in figure 6). Again, cells can be included or rejected
from a stellation with a click of the mouse on a cell in the cell diagram.
3.5. Selecting cells
In any situation in which a cell may be selected for inclusion in, or rejection
from, a stellation, Stella's interface gives the user a few options
about which cells to affect. The user can simply turn a single cell on or off,
or turn a cell on or off along with all the cells that support it (that
is, all cells that can be reached by starting at the selected cell and
following a sequence of downward lines in the cell diagram). This makes
setting up many stellations a lot quicker. The user can also choose to turn on
or off all cells within the same layer as the selected cell.
The interface also has a button for fillingin any inaccessible cells.
In some cases the user may have designed the stellation that they want, but
may have left bubbles inside where cells are not included, leaving
hollow parts that cannot be accessed from outside. This function automatically
includes such cells. For a user planning to print out nets for the
construction of a physical model, it is a good idea to use this fillingin
function first, otherwise nets for the inaccessible parts hidden inside the
model will also be printed.
3.6. Stellation criteria
Fig 8. Stellation of small stellated truncated dodecahedron

Various investigators have proposed restrictive rules, both to reduce the
number of stellations to more manageable sets, and to avoid "uninteresting"
cases. As an alternative to manually selecting which cells are required for a
particular stellation, Stella also supports various sets of rules,
allowing the user to choose a set of rules, and step forward or backward
through the list of all stellations satisfying those rules for any model. This
provides an easy way to browse through many interesting stellations without
having to manually select or deselect cells. The following five sets of rules
for choosing stellations are supported in Stella.
Miller's rules
The first and bestknown set of rules was proposed by Miller in "The
FiftyNine Icosahedra" by Coxeter et al. [1], and these criteria
have become known as Miller's rules. There are five rules. The first
three simply cover the definition of stellation and ensure that the stellated
model has the same rotational symmetry as the model being stellated. The
fourth rule requires that all 2D elementary regions used for the surface of the
stellation are accessible from outside the model. And the fifth rule
requires that the model is not a compound of two other stellations satisfying
these rules, each with as much symmetry as the complete stellation.
By Miller's rules there are 59 stellations of the icosahedron, which includes
the original icosahedron itself in the series (as will be done for all counts
hereafter). These rules allow some models with holes through them, and even
with completely disconnected parts. As with Stella, Coxeter et
al. found stellations by only considering the externally accessible parts,
thus leaving out multiple stellations that looked the same from outside.
Fully supported stellations
Fig 9. Stellation of great stellated truncated dodecahedron

For models more complicated than the icosahedron, Miller's rules quickly lead
to a very large number of stellations. In 1975 Pawley examined stellations of
the rhombic triacontahedron [21], and employed different criteria for accepting
stellations, thus reducing the set to a more manageable size. He called these
nonreentrant stellations, now known better as fully supported
stellations [17]. These are all the stellations for which any ray from the
centre outwards will only ever cross the surface once. So models with holes or
overhanging parts are no longer included. The stellations found are a subset
of those found using Miller's rules. The term fully supported comes
from an observation of the cell diagram (see
section 3.4) for such models. Any cell reached by
following a line downwards from a used cell must also be used in a fully
supported stellation, thus each cell is fully supported by all cells
below it. There are 18 fully supported stellations in the series for the
icosahedron.
Mainline stellations
The number of fully supported stellations for some polyhedra also becomes
prohibitively large. Mainline stellations is a far more restrictive
set. A whole layer of cells must be added in order to step from one of these
to the next, starting from the central core cell. Mainline stellations are
therefore a subset of the fully supported stellations. The number of mainline
stellations is therefore simply the number of cell layers; eight in the case of
the icosahedron. For more complex cores, the mainline stellations tend to look
a little "messy", so although the set is reduced, it is generally not reduced
to only the most interesting models.
Primary stellations
Fig 10. Stellation of dodecahemicosahedron

A more restrictive, but also more interesting set, is the set of primary
stellations. Primary stellations were introduced by Messer in 1989 [16].
However, the set is only well defined for reflexible isohedral cores, such as
the platonic solids and the Archimedean duals (aka Catalan solids). Primary
lines in a stellation diagram are those that lie in a reflection plane. These
lines can be highlighted in Stella. A primary region is an area of the
stellation diagram that is enclosed on all sides by primary lines, with no
other primary lines crossing the area. The face of a primary stellation is
simply one primary region. Every primary region leads to a valid stellation.
This set is another subset of the fully supported stellations, but the
resulting models are far more appealing. Given that these stellations are
always isohedra (that is, only having one face type), they never look too
messy. This is in fact the most restrictive set generally, as there is only
one stellation included for each primary region, and the number of primary
regions is limited by the order of the symmetry group. For the icosahedron,
there are seven primary stellations in the series.
Monoacral stellations
Another interesting set was also proposed by Messer (unpublished, but
introduced here with kind permission), which he calls monoacral, meaning
single peak. This is another fairly restrictive set, and another subset
of the fully supported stellations. To make a monoacral stellation, start with
any single seed cell and make the minimal fully supported stellation
which includes that cell. This can be achieved by adding all the cells
required to support the seed cell, and all the cells required to support those
cells, and so on down to the central core.
3.7. Extended stellations
In 1989, Fleurent described the concept of an extended stellation
diagram [7]. This is the stellation diagram obtained when stellating the
compound model consisting of a chiral polyhedron and its enantiomorph (mirror
image). Stella has a builtin function to create such a compound from any
chiral polyhedron, after which the standard stellation process can be applied.
3.8. Stellation examples
Fig 11. Stellation of dodecahemicosahedron

A model does not have to be convex to be stellated. All the process of
stellation really requires is a set of planes, which come from the faces of
a given polyhedron. Hudson and Kingston [8] presented a number of stellations
of nonconvex uniform polyhedra, but otherwise there has been little mention of
the idea in the literature. Nevertheless, some beautiful stellations exist of
nonconvex polyhedra. Figure 8 shows a glorious stellation of the small
stellated truncated dodecahedron. Figure 9 shows a very Zen stellation of the
great stellated truncated dodecahedron. And figures 10 and 11 show stellations
of the small (or great) dodecahemicosahedron.
4. Nets
Nets are the externally accessible parts of a model, separated from each
other at some edges, where necessary, so that they may be folded flat (see
figure 12). They can then be drawn or printed on paper, cut out, folded, and
glued to reconstruct the model. Two steps are required for the automatic
generation of good nets. First, the externally accessible parts must be
identified. And second, those parts should be combined, where possible, in
order to form larger nets.
For the physical construction of a model, the author uses and recommends the
double tabs method, as described by Wenninger [28]. This method
involves leaving tabs on all free edges around each net. Pieces are then
connected at an edge by gluing the two tabs together at that edge, which leaves
a kind of ribbing inside the model. This method produces high quality models,
and clamping tabs together is easily achieved with a pair of tweezers.
4.1. Identifying the parts
The stellation process and construction of nets are closely related. As
described above, a stellated model in Stella consists only of its
externally accessible parts, which happens to be exactly what we need for
creating nets. A model builder will generally not wish to make the parts of
faces that are hidden inside a model (one notable exception is Ulrich Mikloweit
[18], who cuts artistic designs into his faces, making the internal parts
visible again!). So the elementary regions used by a given stellation are
exactly the parts required for the nets. This shows the usefulness of
stellation, whether or not someone is interested in the stellated polyhedra
themselves.
This is fine for a model discovered via stellation, but what about a uniform
polyhedron, or one of the others from the builtin list, or a faceted
polyhedron (see section 5), or any other polyhedron
derived using a technique other than stellation? First the user would have to
stellate the model and figure out which stellation cells are required to
reproduce that model. Remember, the original model may have intersecting faces
with parts hidden from view, whereas the stellated version will consist only of
the externally accessible parts required for generating nets. Selecting the
appropriate cells manually can be a tedious task for complex models.
Again, Stella automates this process. When a new model is created
(either chosen from the list, or generated using tools such as faceting), and
nets are required, the stellation process is performed first, and the
appropriate set of cells is automatically selected to reproduce the original
model. This is a tricky task, requiring an algorithm that spreads across the
exterior of the model, keeping track of which way is "up" and selecting any
cells below the surface as it goes. Any inaccessible cells are then
filledin, as described in section 3.5. Note
that for different parts of the same face, the cell above, below, or both could
be required. To the best of the author's knowledge, no other program can
currently perform this task.
4.2. Combining parts into nets
Fig 12. Net of rhombicosidodecahedron

Once the required parts have been identified, an attempt is made to combine
them together, where possible, into larger nets. By combining two parts which
share an edge into a single net, the model maker need only score and fold that
edge once, rather than cutting out the edge for both parts, generally leaving a
tab which also requires scoring and folding for both parts, and then gluing the
tabs together. When lots of parts can be combined in this way, it can save the
model maker a considerable amount of time. Stella does a good job in
most cases of combining as many pieces as possible into single nets, using
various heuristics to decide which parts should be combined in preference to
other parts. Stella ensures, of course, that the parts never overlap
within a net. Nets are created symmetrically and kept sorted into net types.
A new part will not be added to a net unless it can be added symmetrically to
all parts of that type. This generally leads to much nicer nets, and the model
maker can get into an efficient routine when scoring, cutting and folding many
copies of the same net.
At some edges parts must not be combined into a single net. For example, the
user may choose to group only likecoloured parts into any single net, and
then to group likecoloured nets when printing. This is useful in order to
print the nets onto coloured paper stock. The user would print all the red
nets onto red paper first, say, and then separately print all the yellow nets
onto yellow paper. This is the default mode in Stella, as the author
finds this to be the most useful way to make models, and Stella knows
not to combine parts of different colours in this case. When this mode is
disabled, different coloured parts will happily be combined, and the user may
choose to use a colour printer to fill in the colour of each face, or to leave
their interiors blank if they do not require any colour or will decorate the
parts themselves.
The user may also manually tell Stella to cut some edge, that is, to not
combine nets at those edges. Stella will then regenerate the nets, possibly
joining other parts together instead. This is useful if the user is not happy
with the automatically generated nets, and wants to force other parts to
combine instead, or wishes parts to be completely separate. There is also an
option to set the maximum number of parts that may be combined into any one
net, to prevent nets from becoming unmanageable. This value may also be set
to "1" to force all the parts to remain separate, for example when using very
thick card that can not be folded cleanly.
There is another situation that also requires special handling. Some models
have coincident edges, where two solid sections meet each other only at
an edge. The simplest of the uniform polyhedra, the tetrahemihexahedron, is an
example of this. As in this example, the edge may not be a true edge of the
model, but rather just the intersection of two faces as they pass through each
other, but this makes no difference when constructing a model. The question is
whether or not to combine parts into single nets at these edges. Firstly, it
should be pointed out that there is actually an ambiguity regarding which parts
would be combined, since four parts meet at the edge. But if parts are to be
combined, it should be the parts that appear connected from outside the model,
otherwise the two sections would not be connected to each other at all and the
model would fall apart. The user has a choice for how to treat such edges.
They can choose the tongue in groove method, as described by Wenninger
[28], where the double tabs on one section are glued together pointing out
rather than in, and the matching double tabs on the other section are left
pointing in, but unglued. The former tab is then coated with glue and slotted
between the latter tabs. This method requires tabs on all four parts, and
hence no parts may be combined at this edge. Another option is the internal
support method, where at least one of the pairs of parts must not be
combined, so that a double tab is present. This tab is then glued internally
behind one of the parts from the other pair, contributing to the rigidity of
the model. In this case one of the pairs of parts may still be combined. This
is generally the author's preference. Finally, the user may choose the no
internal support required method, where both pairs of parts may be combined
into single nets if possible. However, this method may lead to a less robust
model, as there could remain some flexibility in the parts at such edges.
Finally, if the model is convex, then an attempt is made to connect all the
parts into a single net.
4.3. Arrangement of nets on the page
In the interface, one net is shown on the screen at a time, and the user may
step through all the different types of nets required to build the model. The
interface indicates how many of each net are required for construction. When
printing however, obviously all nets are printed together, and Stella
tries to fit as many nets on each page as possible, for optimal printing
efficiency. For each page, it starts with the largest net, trying to fit as
many of them on the page as it can (up to the number required of course), then
moves to the next biggest net and tries to fill in any remaining gaps, and so
on. If the user has chosen to group likecoloured nets together, then only
nets of the same colour will appear on the same page. On the final page,
Stella also tries to leave as big a gap as possible at the bottom of the
page, in case the user wants to use the space to start printing out nets for
another model.
Stella gives the user control over the four margins of the page, so that
they can make use of blank parts of an otherwise printed page by feeding the
page back through the printer (be careful to put it in the right way around
though!). There is also an option to set the top margin specifically for the
first page, in case printing is to be continued from where the previously
printed model left off. A convenient button sets this automatically to be just
below the point on the page where the previous print out finished. This helps
save paper, especially in cases where only a few small nets are printed on the
final page, leaving the page otherwise blank.
The scale of any model can be set in a number of ways. This does not affect
the appearance of the model in the interface. It only affects the size of the
nets that are printed out, and any numerical measurements given. The scale
can be specified by setting the radius of a stellation or its base model, or
an edge length, or the distance between any two vertices. Users can also view
and set the length of the shortest edge in the stellated model, which is
useful because this is the smallest edge that will need to be cut out, and will
be difficult to manage if too small. When printing, Stella will first
check whether any nets are too big to fit on a page, and if necessary, give the
option of automatically reducing the scale so that all nets just fit. The user
may instead wish to force large nets to be broken into smaller nets, and then
try printing again to see if the smaller nets now fit.
4.4. Data for alternative construction
Dihedral angles and edge lengths may be displayed on each edge in a net, and
face angles are also available. This data is useful for the user who wants to
draft their own nets, for example on material that would not fit through the
printer, or construct models from wood, where edges of parts must be bevelled
based on the dihedral angle between faces.
Fig 13. 3D folding net of rhombicosidodecahedron

4.5. 3D folding nets
The nets may be viewed folding and unfolding in realtime in 3D (see figure 13).
There are two halves to this process. Starting with the completed model, the
individual nets are first spread out from each other (if there is more than one
net), and then each net unfolds until flat. The spreading out is required to
give the nets room to unfold. Sometimes they will still pass through each
other when spreading or unfolding, but the effect is still impressive, and this
feature can serve as a useful reference when building a model and trying to
figure out how pieces fit together.
4.6. Using supporting facets
A facet of a given polyhedron, as we will use the term here, is a
polygon whose vertices are also vertices of that polyhedron. Facets that lie
entirely inside a model can be useful as internal struts to add support for
physical models that may otherwise not hold their shape well. They are glued
inside during construction, generally using the already glued double tabs from
other external parts. Stella provides a mode for creating facets, which
can then be printed out along with the other nets. The user clicks the mouse
on each vertex of the facet in turn until the facet is complete (see figure
14), and then confirms acceptance of the facet or rejects it. After making
about half a model, the builder can usually get an idea of how robust the
result will be, and this is a good time to consider inserting some of these
facets to add rigidity to the model.
5. Faceting
Fig 14. Rhombic dodecahedron showing a
userdefined rectangular facet

Faceting is a very powerful tool that has had little exposure in the
literature. It is the dual process of stellation, as discussed briefly in
Coxeter's "Regular Polytopes" [3]. Inchbald [9] gives a more indepth
study of this relationship as it relates to the stellations of the icosahedron,
and the dual facetings of the dodecahedron. Just as stellation may be defined
as two models with faces in the same planes, faceting may be defined as two
models with the same vertices. For example, the small stellated dodecahedron
(figure 5b) is a faceted version of the icosahedron, and so are the great
dodecahedron (figure 4) and the great icosahedron. The great stellated
dodecahedron however (figure 5d) is a faceted version of the dodecahedron.
Wenninger describes an interesting relation in his book "Dual Models"
[29], where he says:
the face of the dual of any nonconvex uniform polyhedron is embedded in
the stellation pattern of the dual of its convex hull.
The convex hull of a model is a special case of a faceting of that model,
where the result is convex. Normally we would think of this the other way
around, i.e. that the nonconvex model is a faceting of the convex one, but this
general definition, which matches our general definition for stellation, works
well in practice for situations like this. It should be pointed out however
that the convex hull of an arbitrary polyhedron would not always be a true
faceting, as some inner vertices may be lost, making it only a partial
faceting. To generalise Wenninger's statement, if we take some faceting of a
polyhedron and create its dual, then some stellation of this new model will be
the dual of the original polyhedron. Choosing to take the convex hull is
simply a special case of a faceting, and its dual will be a special case of
stellation, namely the innermost core cell.
Conversely, if we take some stellation of a polyhedron and create its dual,
then the original polyhedron is a faceted version of this new model.
Similarly, we could again choose the special case of the only convex
stellation, that is, the central core cell, which will give us a convex dual to
be faceted. Hopefully this points out the duality of the stellation
and faceting processes, and demonstrates that each must therefore be as
powerful as the other.
Fig 15. Compound of fifteen cuboids

We previously explained how facets could be made in Stella for
the purpose of adding robustness to physical models (see
section 4.6). However, the user can also choose to
create a new faceted polyhedron from the facets they have created. In this
case, the facets are repeated over the symmetry group to produce all
occurrences of each one. It is up to the user to make sure they have created a
set of facets that will lead to a valid polyhedron where two faces meet at each
vertex, and so this is a somewhat advanced feature requiring a certain amount
of skill to use well, but it is also very powerful.
Some examples will serve well here. Figure 15 shows a faceted truncated
dodecahedron. It is also a compound of fifteen cuboids (rectangular prisms).
This model has three different face types, and so three facets of the truncated
dodecahedron must first be defined. Stella can then repeat them over
the symmetry group to create the whole model. As with any model, it can then
be stellated, and nets can be printed out.
Here's another example. There are only four rectangular isohedra
(polyhedra where all faces are rectangular and share the same relationship to
the model as a whole). All are facetings of duals of uniform polyhedra, and so
they can all be made using Stella. Figure 16 shows one such model, a
faceting of the rhombic dodecahedron. Since there is only one face type, all
that is required is clicking on the appropriate four vertices of the rhombic
dodecahedron to create one facet (the facet required is shown in figure 14).
Stella can then construct the whole model.
Users may stellate faceted models, and facet stellated models, which leads to
an unthinkably large set of polyhedra. We referred above to one of the four
rectangular isohedra. Two of the others (a faceting of the rhombic
triacontahedron and a faceting of the great rhombic triacontahedron) happen to
have the same stellation pattern as each other. This stellation pattern also
happens to be the same as that of the compound of five dodecahedra described by
Cundy and Wenninger [5] (see figure 17) and thus the compound of five great
stellated dodecahedra which they also describe, and the compounds of five small
stellated dodecahedra and five great dodecahedra introduced earlier by Smith
[24] and shown in [19]. So these models can all be created, along with the
dual compounds of five icosahedra and five great icosahedra. Many thanks to
Piotr Pawlikowski who recently discovered this relationship between the
rectangular isohedra and the fivedodecahedron compound. It is believed to be
previously unpublished, and is used here with his kind permission.
Fig 16. One of four rectangular isohedra

Reference was made above to the fact that stellations in Stella
consist only of the externally accessible parts, however, faceting can be used
to specify the true model required. One good reason for wanting to do this
is to acquire its proper dual. Although the stellated models may appear the
same, their duals probably won't. In the previous example, the compound of
five dodecahedra is obtained by stellation of another model, so the model
consists only of the externally accessible parts rather than the intersecting
regular pentagons that it should. But faceting can fix this. The user just
needs to click on the five vertices of one of the pentagons and tell
Stella to create a faceted polyhedron. Note that all pentagons in this
model are of the same type (they each have the same relationship to the model
as a whole), so only one facet need be created. Now we have the true model,
and can see its true dual; the compound of five icosahedra (which can then be
stellated of course to create a compound of five of any stellation of the
icosahedron!).
Another set of intriguing models that can be investigated using a combination
of stellation and faceting are the isogonal isohedra. These are
polyhedra with only one type of face and only one type of vertex. Obviously
the nine regular polyhedra (Platonic and KeplerPoinsot) fall into this
category, and there are some distorted tetrahedra that also fit, but there are
also some other strange models. Three are stellations of the icosahedron, and
two are stellations of the rhombic triacontahedron, including the final
stellation of each. This amounts to five new models. The dual of any model in
this set must also be an isogonal isohedron, since properties of vertices
and faces are exchanged, which implies there should still be only one type of
face and one type of vertex. This in turn brings the number of new models to
nine, since one of the stellations of the icosahedron is selfdual. As an
example, the final stellation of the icosahedron may be seen as having
irregular enneagrams for faces, that is, ninepointed stars. They meet by
threes at each vertex. Stellation can be used in Stella to find the
model, and then faceting can be used to specify how exactly the face should be
constructed (that is, as an irregular enneagram). From here the dual model can
also be found.
Fig 17. Compound of five dodecahedra

For some interesting work with faceted models, have a look at the recent work
of Klitzing [12]. He calls his models edgefacetings, as all the
faceted models within a series share not just the same vertices, but also the
same edges. He also restricts the facets to be regular polygons, but lifts the
restriction that all vertices must be used in the faceted model. Stella
should be able to make all these models.
There is currently one limitation that should be mentioned when creating
facets, namely that the same vertex must not be visited twice within one facet.
This is not a common situation, but is worth mentioning. Some models that
have more than two faces meeting at an edge may also have problems. These are
not true polyhedra, but many are interesting nonetheless. Most of these models
will still work, for example Skilling's new uniform model [22], but some may
not.
6. Augmentation, excavation and drilling
Another feature of Stella is the ability to augment polyhedra
with other polyhedra. Johnson [10] used the term augmentation when two
polyhedra were connected together at a pair of faces of the same shape. For
example, model J58 (to use the numbering system from Johnson's paper), the
augmented dodecahedron, is a dodecahedron with a pentagonal pyramid added to
one side. Other models are augmented with a cupola instead, such as
J66, the augmented truncated cube, which is a truncated cube with a square
cupola (J4) attached to one side.
This idea can be extended to polyhedra more complicated than just pyramids and
cupolae though. For example, the user could augment one dodecahedron with
another dodecahedron of the same size. Stella lets the user augment any
polyhedron with any other polyhedron, provided they have a matching face. The
matching faces are removed, and the remaining faces stitched up to leave a true
polyhedron with exactly two faces meeting per edge. The user starts by
selecting which face they wish to augment, and then has the option of
augmenting all faces of the same type, or only the selected face. The user
also has the option to augment using a pyramid or cupola (which require a
regular face to be selected) or a prism, or augmenting from memory.
Nine memories are supported. These are like the memory button of a
calculator, but for storing a polyhedron rather than a number. The current
polyhedron, its dual, or the current stellation of either can be put into any
one of the nine memories (except for infinite dual models, or stellations with
holes in their faces). They will be stored until the user exits the program,
or stores another model in the same memory slot, and can be retrieved at any
time. The user may choose to augment using the model in any of the nine
memories, allowing them to glue any two polyhedra together face to face.
Fig 18. Cube with two intersecting pyramidal excavations

Another option is also available when augmenting. The user may choose to
either augment or excavate. When excavating, the second polyhedron is
subtracted from the first, rather than being added. For example a cube with a
square pyramid excavated from it would leave a pyramidshaped dimple in one
side of the cube. Another term, drilling, is used when the excavation
leaves a hole right through the polyhedron, thus increasing the genus.
Stewart [25] did much work on excavations and drilling in his fascinating
selfpublished book. He extended Johnson's work [10] from the convex to the
nonconvex, with some beautiful results. The handdrawn images, however, can
leave the reader a little lost unless they attempt to build some of the models
themselves. As we mentioned earlier, all the Johnson solids and many of the
Stewart toroids are already builtin models in Stella, and using the
augmentation and excavation features most of the other Stewart toroids can be
constructed, along with new ones not covered in the book.
A note should be made here about how drilling works, to avoid confusion. It is
not like carving up a block of wood. Take a cube and make an excavation in two
opposite sides using a pyramid (J1). The height of the pyramid is greater than
half the height of the cube, so the two peaks pass through each other (see
figure 18). However this does not cut a hole through the model as it would
when using CSG (constructive solid geometry) in a typical 3D modelling
package. Instead, the geometer doesn't generally mind faces passing through
each other unscathed, as demonstrated by the ancient KeplerPoinsot polyhedra.
However the geometer generally doesn't want a model with coincident faces, so
any faces of the original polyhedron which coincide with any faces of the
augmentation model are removed in pairs, and the surrounding edges stitched up
again to leave only two faces meeting per edge. This of course includes the
original face where the augmentation took place, but may include other faces
too.
Fig 19. Drilled truncated dodecahedron

One convenient side effect of this methodology is that if the user wants to
undo their last augmentation, they can do it by excavating the same model again.
All the new faces caused by the augmentation will line up with faces from the
excavation, and are therefore removed, leaving the original model again.
Just to jump straight into the deep end, have a look at figure 19 for an
example of one of the most stunning Stewart toroids from his book. This model
is built into Stella, but if we wanted to make it from first
principles, so to speak, we could do it as follows, using the other builtin
models. Put the pentagonal cupola in memory 1, put the pentagonal
antiprism in memory 2, and put the dodecahedron in memory 3. Now
load up the truncated dodecahedron and select one of the decagonal faces.
Excavate memory 1 from all such faces, then select the pentagonal face
at the base of one of the cupolaic excavations. This time excavate memory
2 from all such faces, and select one of the new pentagonal faces. And
finally, excavate memory 3 from this face. The result should be the
model shown.
Nine memories should be plenty for most tasks, but even this does not limit the
number of different excavations that can be made. The current model can be put
into memory at any stage, and different models placed into the other memories.
The original model can then be retrieved and further excavations made using the
updated memories.
When there is any ambiguity about which face of the model in memory should be
connected to the selected face of the model on the screen, as with the square
cupola, which has two types of square faces, the user should first select the
appropriate face before putting the model in memory. Regarding scale, the
model in memory will be scaled up or down if required so that the faces match,
so the user need not worry about this aspect.
Many new Stewart toroids can now be discovered with a bit of ingenuity (the
reader is referred to Stewart's book [25] for the definitions of terms and
symbols used in this paragraph). Using Stewart's terminology, an interesting
new model is K5 / T5 (R5) gQ5. It is probably the most "cavernous" of
the Stewart toroids that satisfies all his rules. That is, roughly speaking,
it's got the biggest hole. This model can also be used as the base for a
fourstorey model with fewer faces than Stewart's example by further
drilling the inner truncated dodecahedron. These models are not built in, but
are included in an additional library of models that comes with Stella.
Fig 20. Toroid using only heptagons and squares

Another thing Stewart investigates early in his book is whether any models of
genus greater than zero can be constructed using only ngons and one
other type of polygon, for any n. Faces sharing an edge must not be
coplanar. He shows how this is possible for any even value of n, but it
can now be demonstrated that any odd value is also possible. For an example
using n = 7, see figure 20. This model consists only of heptagons and
squares, and was constructed by augmenting heptagonal prisms and cubes
together. The same technique can be used for any odd value of n > 3.
The n = 3 case is solved explicitly in Stewart's book, so the problem
can indeed be solved for any value of n > 2.
Stewart's approach to extending the idea behind the Johnson solids from the
convex to the nonconvex was just one approach. The main idea that the faces
must be regular should probably be kept for any extension, but beyond that
there are a few different directions to take. Stewart also kept the idea that
faces must not intersect, and investigated several other rules. Another
approach is to allow faces to intersect, but add other restrictions to limit
the set. One thought is that it would be nice to find more models that have
the aesthetic appeal of the uniform polyhedra. With this in mind the author
considered the following additional restrictions:
 Must be locally convex. That is, the faces surrounding each
vertex must loop around the vertex in the same direction (no retrograde
faces spanning back the other way, but star vertices would be acceptable).
 All vertices must also be vertices of the convex hull. This is to
ensure that all vertices are visible, and is a condition always met by the
uniform polyhedra.
Fig 21. Augmented great cubicuboctahedron

Unlike with the Johnson solids, these rules allow some models with octahedral
and icosahedral symmetry. A complete enumeration would be difficult, but four
new models have been found based on augmentation of the uniform polyhedra, one
octahedral, and three icosahedral as follows:
 Great cubicuboctahedron. Augment square faces with square pyramids (see
figure 21).
 Dodecadodecahedron. Augment pentagonal faces with pentagonal pyramids.
 Great ditrigonal dodecicosidodecahedron. Augment pentagonal faces with
pentagonal pyramids.
 Snub dodecadodecahedron. Augment pentagonal faces with pentagonal pyramids.
We believe these models are new, and have not been published previously.
7. Symmetry
A polyhedron may have rotational and reflective symmetries. A
rotational symmetry is an axis about which the model can be rotated
(through some angle less than 360 degrees), such that it aligns exactly with
its starting position. So an observer would not be able to tell that it had
moved. If the minimum such angle is 360/N degrees then we call this an
Nfold axis of symmetry.
Similarly, a reflection symmetry is a plane in which the model can be
reflected, again leaving it indistinguishable from its original position.
The collection of all such symmetries for a model is called its symmetry
group. For a comprehensive beginners guide to symmetries and symmetry
groups, see Cromwell [4].
7.1. Finding and showing symmetries
Fig 22. Cuboctahedron and its symmetries

When a new model is created, either by selecting it from the builtin list, or
via faceting, augmentation, or any other method, it is automatically analysed
to find its symmetries, including rotations and reflections. The name of the
rotational symmetry group and associated reflection group are displayed side by
side at the top of the window. The algorithm is based on Waltzman's algorithm
[26], but is such that the correct symmetry group is still found for tricky
cases such as compounds, or models with holes along some rotational symmetry
axes. This is achieved by first finding the convex hull and its symmetries,
which are then tested in full against the original polyhedron.
If using the default colouring scheme, faces of the same type are then given
the same colour based on the model's symmetries, and faces of different types
receive different colours.
The interface allows the user to display the rotational or reflective
symmetries, or both, on the screen (see figure 22). Rotational symmetries are
displayed as axes through the model. A small disc with spokes is displayed at
each end, the number of spokes indicating the order of rotational symmetry
around that axis. For example five spokes will be shown for a 5fold
rotational symmetry axis. Axes of different order are also shown in different
colours.
Reflection planes are displayed as great circles in the appropriate plane
around the model. The less common central inversion and rotationreflection
types of reflection symmetry are not represented graphically, but their
presence is still indicated at the top of the screen.
Rotation and reflection symmetries may also be displayed on stellation
diagrams. In this case rotational symmetry axes are displayed as points where
an axis intersects this facial plane. The points are displayed in the same
colours as the axes in the 3D view of the model for easy crossreference. In
the case of models with hemispherical faces, that is, faces that pass
through the very centre of the model, only axes which lie in that plane are
displayed, and they are shown as dashed lines in the appropriate colour.
Reflection symmetries are displayed in the stellation diagram as dashed lines
representing the intersection of the facial plane with that reflection plane.
They are displayed in the same colour as the great circles in the 3D view,
again for easy association.
7.2. Subsymmetry groups
The rotational and reflective symmetry group names are actually displayed in
dropdown lists, each containing the names of all possible
subsymmetry groups. The user may select a subsymmetry group from
these lists, instead of using full symmetry. Faces are then recoloured
accordingly, and if symmetries are displayed, they too will be updated. For
example, if we just consider rotational symmetries for the moment, 4fold
dihedral symmetry, like that of the square antiprism, is a subsymmetry of the
full octahedral symmetry group. When a cube is loaded into the program, all
faces will be the same colour, as they are all of the same type, and the
program will indicate the octahedral symmetry group for the model.
However, if the user then selects the 4fold dihedral subsymmetry
group, then two colours will be used. One for the top and bottom face, which
lie on the 4fold axis, and another for the remaining four faces, which all lie
on 2fold axes.
A subgroup of the reflection symmetry may also be chosen. For example,
start with a model of octahedral symmetry and choose the
tetrahedral rotational subsymmetry group. Now the list of available
reflection types will be diagonal (like the regular tetrahedron has),
horizontal (three orthogonal reflection planes), or chiral (no
reflective symmetry).
Fig 23. Tetrahedral stellation of dodecahedron

Once a subsymmetry group has been selected, it affects how stellation,
faceting, and augmentation/excavation operate. Subsymmetric stellations may
now be created. Ounsted [20] gave an example of a subsymmetric stellation of
the dodecahedron, having only tetrahedral symmetry (see figure 23). In fact,
the dodecahedron in particular has many interesting tetrahedral stellations.
Appealing tetrahedral stellations of the icosahedron and rhombic
triacontahedron have also been discovered.
Subsymmetric facetings are also available. Here, when creating the faceted
model, each facet the user has created will only be repeated over the
subsymmetry group. Most of Klitzing's faceted models [12] are subsymmetric,
so here we have an example of the usefulness of subsymmetric facetings.
The subsymmetry setting also has an effect when using augmentation and
choosing to augment all faces of a type. Due to the subsymmetry group, there
may now be fewer faces of the same type as the selected face, so fewer
augmentations will be added. Again, more interesting models can be made via
this feature, such as icosahedral symmetry models being drilled tetrahedrally.
Sometimes this is required in fact to avoid intersections between the models
used for the excavations that would have occurred with full symmetry.
8. Dual morphing
Another thing Stella allows us to do is view polyhedra morphing into
their duals and back in realtime. There are five different techniques to
choose from for this task. The user can drag the mouse back and forth to
control the morphing. If the mouse button is released while still being
dragged then the morphing continues on its own at the current rate. It should
be noted that these algorithms are not guaranteed to work for every model.
They work well for most uniform polyhedra (except those with infinite duals),
but there are problems with some other models. We hope to rectify this soon.
The five techniques are outlined below.
 Morph by sizing









Fig 24. Morphing duals by sizing

This is the simplest technique. Simply change from the model to its dual
by shrinking the model, and growing the dual from zero size until the original
model has vanished and the dual model is all that remains, at full size. As
the sizing occurs the user will see the dual's vertices poke through the
original model's faces, and eventually the original model's vertices will sink
into the dual and vanish. The technique is simple enough to work for any
model.
Each technique has a dual technique. If we imagine taking the dual of each
intermediate model along the path from a polyhedron to its dual, we will get
another morphing sequence that runs from the dual back to the original model.
If this sequence is played in reverse, it will run from the original model to
its dual again, and thus represents another possible technique. This first
technique, however, is its own dual.
 Morph by truncation









Fig 25. Morphing duals by truncation

From either end of the transition, the model is slowly truncated towards the
midpoint. Consider a cube for example. First the tips of its vertices are
truncated, then more so, past the familiar Archimedean truncated cube, until
the truncations meet each other half way along the original cube's edges. Here
we have the cuboctahedron. If we had started with the cube's dual, the
octahedron, a similar thing would have happened, past the truncated octahedron
until we again reached the cuboctahedron. This last part is played in reverse
to get from the cuboctahedron to the octahedron, thus completing the transition
from cube to octahedron. It may be surprising to discover that this technique
works quite well for any uniform polyhedron, even though faces intersect, and
indeed it works very well for most Stewart toroids, which is a sight to behold!
The definition of exactly what happens must be a bit more precise for models
such as the Johnson solids. Here's a better way to think of this transition
happening: start with the original polyhedron and imagine its dual is already
there, but invisible, and scaled up big enough to enclose it. Now as we head
towards the midpoint, shrink the dual to its normal size. As it shrinks,
vertices of the original model are truncated by their corresponding faces in
the shrinking dual. At the halfway point, the dual stops shrinking and the
original model starts growing, until all of its faces are beyond their
corresponding dual vertices.
 Morph by augmentation









Fig 26. Morphing duals by augmentation

This is the dual transition to the previous one. Rather than vertices being
truncated, faces are augmented with pyramids. The previous technique
introduced a new face for each vertex, and this one introduces a new vertex for
each face. Consider a cube. Start by building very shallow square pyramids on
each face, then slowly grow them in height, past the tetrakishexahedron (dual
of the truncated octahedron) and on until triangles from adjacent pyramids
become coplanar, giving us the rhombic dodecahedron (dual of the
cuboctahedron). Now consider starting from the cube's dual, the octahedron.
Build shallow triangular pyramids on each face and grow their height slowly,
past the triakisoctahedron (dual of the truncated cube) and on again to the
rhombic dodecahedron. Play this last part in reverse to get from the rhombic
dodecahedron to the octahedron, which completes the transition from cube to
octahedron. Notice how all the models we passed along the way were duals of
those we past using the previous technique, but in reverse order?
The technique does not work perfectly for some nonuniform models. With
some Johnson solids for example, the apex of the pyramid starts outside the
face at its shallowest, which causes problems. We plan to generalise our
algorithm further to account for these cases.
 Morph with rectangles









Fig 27. Morphing duals with rectangles

This technique was described by Lalvani [13], who dedicated a whole book to it!
It is quite straightforward, and seems to work well for any model, including
uniforms, Johnson solids, and even Stewart toroids! Faces of the original
model are shrunk, and faces from the dual start to appear at the original
model's vertices. Then rectangles are used to fill the gaps between the two.
An example will help here, so again, let's start with a cube. The vertices are
truncated and the edges bevelled to leave a small triangle where each vertex
was, and a long thin rectangle where each edge was. Continuing to cut deeper
we get to the rhombicuboctahedron, which is the halfway point. Note that the
original square faces are shrinking, and the dual triangle faces are growing,
but neither one ever changes orientation. The rectangles between start long
and thin, get fatter until they are squares, and then continue until they are
long and thin in the opposite way.
 Morph by tilting quads









Fig 28. Morphing duals by tilting quads

Finally, we have the dual of the previous technique. During the previous
transition, all vertices have a valency of four, with one face from the
original model, one face from the dual model, and two rectangles surrounding
them. So, during this dual technique, all the faces will be quadrilaterals.
Starting with a cube, notice that the midpoints of the edges coincide with the
midpoints of the dual octahedron's edges. Take two consecutive edges in one
of the square faces and connect their midpoints to the centre of the face, and
to the intermediate vertex to form a quadrilateral. Holding the edge
midpoints still, the quadrilateral can be tilted (and distorted, but kept
planar) so that the point at the face centre extends out towards the
corresponding dual vertex, and the point that started at a vertex heads in
towards the centre of its corresponding dual face. When they reach these
points, the quadrilaterals meeting at one of the original vertices become
coplanar and form the dual face. Note that at the halfway point we find the
strombic icositetrahedron, dual of the halfway point using the previous
technique, the rhombicuboctahedron.
In the general case, it is not always the midpoints of the edges that we are
interested in, but rather the point found by dropping a perpendicular onto the
edge from the centre of the model. Note also that for nonuniform cases, the
edgepoints may not coincide between the duals, but a line through
corresponding pairs should go through the centre of the model. In this case
the edgepoints need to be interpolated too, rather than being held still.
9. Other features
A number of other features are worth a mention here.
Fig 29. Pseudo great rhombicuboctahedron

 Pseudouniform polyhedra can be made. These are polyhedra that are
locally uniform only, that is, each vertex is surrounded identically by
faces, but does not share the same relationship to the solid as a whole. As it
turns out there are only two such models. One is also known for being a
Johnson solid (J37, the elongated square gyrobicupola). Each vertex is
surrounded by a triangle and three squares. It is like the Archimedean
rhombicuboctahedron with one of its square cupola caps twisted 45 degrees. The
other pseudouniform polyhedron is the lesser known, and was described by Jones
[11] (see figure 29). It is in fact isomorphic to J37, that is, it has the
same topology, and is a variation of the uniform great rhombicuboctahedron.
Again, a cap must be twisted, but it is somewhat harder to visualise now that
all the faces intersect!
 The convex hull of any model can be generated.
 There is a measurement mode where the user can click on any two
vertices of a model to find out the distance between them.
 Stella has a spring network relaxation system built in,
which was used to generate the coordinates for the Johnson solids and some of
the Stewart toroids. Many thanks go to Jim McNeill [15] for advice on
achieving this. His own system is available from his web site. We still have
some work to do on the spring system to make it more useful and friendly for
the enduser, but for now we are satisfied that it has provided us with the
coordinates needed for a variety of models. The basic idea is to create a
spring for each edge. A spring has a rest length of one, say, which
represents all edges having the same length. Vertices start off at random
positions, and then the springs try to push or pull the vertices at each end to
achieve the desired length. This process repeats for many iterations until the
springs are all very close to their desired lengths. In practice, the spring
models often form knots and isomorphs of the desired models, so extra springs
are inserted in various ways and of different lengths to give the system a
better chance of finding the correct model. Stella's interface does
allow the user to specify their own faces for use with the spring system, but
as we said, this is an area that needs further work.
Fig 30. Crossed square cupola

 Cupolae, cuploids, and cupolaic blends of arbitrary
base can all be created in Stella (see figure 30 for an example). The
user selects one of these three types of polyhedron and is prompted to enter
the base type. The spring system is then employed internally to construct the
model in such a way that success is guaranteed (it won't find knots). These
are examples of regularfaced polyhedra, where the vertices fall into two
parallel planes. A few convex cupolae exist, but otherwise the models are all
nonconvex and selfintersecting. They are an interesting class of polyhedron,
with pyramidal symmetry.
 There are advanced colouring options for automatically colouring the faces
of models the way the user wants. Alternatively, the user can manually select
faces and change their colours. There is also an option to automatically
colour compounds, with one colour per component.
 Models may be exported to a number of popular 3D formats, including
DXF, POV for the POVRay raytracing program, VRML
for use on web sites, OBJ for AliasWavefront, and OFF, a
simple text format which can be easily parsed for other applications.
 In addition to exporting via common 3D formats, models may also be saved
and reloaded in Stella's own file format, which also remembers the
current window layout and other information. A library of over a hundred extra
models is included with Stella, using this format. This includes all
the models referred to in this paper and many more.
10. Conclusion
We have presented a computer program called Great Stella, which allows
the user to navigate their way through the trillions of fascinating polyhedra
available. A wide range of tools including stellation, faceting, augmentation,
excavation and drilling ensure the user will never run out of interesting
avenues to explore. Many new and intriguing polyhedra have already been
discovered, and many old favourites rediscovered.
Nets for any model may be printed out, with parts being grouped by colour if
required, for printing directly onto coloured paper. What was traditionally a
hobby requiring a high level of mathematics may now be pursued by anyone.
Models may be constructed much faster without the need to manually perform the
many initial calculations. Designing and drafting the nets is now also a thing
of the past, with this too being automated. The modelmaker may decide for
themselves how deep they wish to go into the theory involved. The geometric
theory is still there for those interested, but others can now make polyhedra
purely for their aesthetic appeal.
The program is available from the author's web site [27].
Acknowledgements
The author would like to thank Fiona Clarke, Peter Messer, Guy Inchbald, and
Ulrich Mikloweit for their useful comments regarding this paper.
References
 Coxeter, H. S. M., Du Val, P., Flather, H. T., J.F. Petrie,
"The FiftyNine Icosahedra",
University of Toronto Press, 1938.
 Coxeter, H. S. M., LonguetHiggins, M. S., Miller, J. C. P.
"Uniform Polyhedra",
Philosophical Transactions of the Royal Society of London Series A,
Vol. 246, pp. 401450, 1954.
 Coxeter, H. S. M. "Regular Polytopes", Macmillan, 1963.
(Dover reprint, 1973).
 Cromwell, P. R. "Polyhedra", Cambridge, 1997.
 Cundy, H. M., Wenninger, M. J. "A compound of five dodecahedra",
Mathematical Gazette, Vol. 60, pp. 216218, 1976.
 Ede, J. D. "Rhombic Triacontahedra",
Mathematical Gazette, Vol. 42, pp. 98100, 1958.
 Fleurent, G. M. "Symmetry and Polyhedral Stellation Ia & Ib",
Computers and Mathematics with Applications, Vol. 17, No. 13,
pp. 167193, 1989.
 Hudson, J. L., Kingston, J. G. "Stellating Polyhedra",
The Mathematical Intelligencer, Vol. 10, No. 3, pp. 5061, 1988.
 Inchbald, G. "Towards stellating the icosahedron and faceting the
dodecahedron", Symmetry: Culture and Science, elsewhere in this
issue, 2002.
 Johnson, N. W. "Convex Solids with Regular Faces",
Canadian Journal of Mathematics, Vol. 18, 1966, pp. 169200.
 Jones, R. H. "The pseudogreat rhombicuboctahedron",
Mathematical Scientist, Vol. 19, No. 1, June, 1994, pp. 6063.
 Klitzing, R. "Facetings of Uniform Polyhedra",
http://www.polyedergarten.de/polyhedrix/e_klintro.htm
 Lalvani, H.
"Transpolyhedra: Dual Transformations by ExplosionImplosion",
Published by the author, 1977.
 Luke, D. "Stellations of the Rhombic Dodecahedron",
Mathematical Gazette, Vol. 41, pp. 189194, 1957.
 McNeill, J. "Hedron", software program,
http://www.orchidpalms.com/polyhedra/hedron.html
 Messer, P. W., Wenninger, M. J.
"Symmetry and Polyhedral Stellation II",
Computers and Mathematics with Applications, Vol. 17, No. 13,
pp. 195201, 1989.
 Messer, P. W.
"Stellations of the Rhombic Triacontahedron and Beyond",
Structural Topology 21, pp. 2546, 1995.
 Mikloweit, U. "Polyedergarten",
http://www.polyedergarten.de
 Norman, A. C., Smith, A.
"Computer Drawings of Compounds of Star Polyhedra",
Mathematical Gazette, Vol. 57, pp. 303306, 1973.
 Ounsted, J. "An Unfamiliar Dodecahedron",
Mathematics Teaching, Vol. 83, pp. 4647, 1978.
 Pawley, G. S. "The 227 Triacontahedra",
Geometriae Dedicata, Vol 4, pp. 221232, 1975.
 Skilling, J. "The Complete Set of Uniform Polyhedra",
Philosophical Transactions of the Royal Society of London Series A,
Vol. 278, pp. 111135, 1975.
 Smith, A. "Stellations of the Triakis Tetrahedron",
Mathematical Gazette, Vol. 49, pp. 135143, 1965.
 Smith, A. "Some Regular Compounds of StarPolyhedra",
Mathematical Gazette, Vol. 57, pp. 3946, 1973.
 Stewart, Professor B. M. "Adventures Among the Toroids",
Published by the author, 1970. Revised second edition published 1980.
 Waltzman, R., "Geometric Problem Solving By Machine Visualization",
Proceedings of the Image Understanding Workshop (IUW),
pp. 353354, 1989.
 Webb, R. "Great Stella", software program, 2001present,
available from
http://www.software3d.com
or search for "great stella", at
http://www.google.com
 Wenninger, M. J. "Polyhedron Models",
Cambridge University Press, 1971.
 Wenninger, M. J. "Dual Models",
Cambridge University Press, 1983.