Stella4D Manual

Last updated 16th January 2014.
The latest version of this manual can be found online at http://www.software3d.com/StellaManual.php?prod=stella4D.

Contents

Getting Started

This manual contains instructions to get you started using Stella4D. It covers most features, and after reading this document you should be able to find your way around most of the interface. A description of how to use various features will be found here, but for a more detailed explanation of what is possible and what the features can be used for, please see my paper "Stella: Polyhedron Navigator".

If you get stuck, feel free to ask questions on the Stella forums at http://www.software3d.com/Forums.

Or follow Stella on facebook at http://www.facebook.com/Stella4D.

Note: it becomes difficult or convoluted to describe some features in a generic way that covers both the 3D and 4D cases, and would confuse those people more familiar with 3D. For this reason, I will explain most features using a language specific to the 3D case, and save 4D specifics for the 4D section. So often, when I refer to a "polyhedron", the same will also hold for a "polychoron" (a 4D polytope). Similarly in 4D, "plane" may mean "hyperplane", "sphere" may mean "hypersphere", and "face" may mean "cell".

Built-in Polyhedra

The program includes all the uniform polyhedra (which includes the Platonic, Archimedean and Kepler-Poinsot solids and more), the Johnson solids, some Stewart toroids, compounds, and other polyhedra. In 4D, it also includes all 1849 known uniform 4D polytopes, plus duoprisms, antiduoprisms, a selection of scaliforms and more.

The default window layout has two views side-by-side, showing the base polyhedron on the left and its net (or one of its nets) on the right. The default base model is the icosahedron.

Use the Right and Left arrow keys to change to the next/previous model in the built-in list (or the menu items "Poly→Next Polyhedron" and "Poly→Previous Polyhedron", or the green left and right arrow buttons on the main toolbar or at the top of some views). Note: if you have loaded a .stel file, then the arrow keys move forward and backward through files in the same folder instead. Furthermore, the arrow keys, unlike the green arrow buttons and menu items, are context sensitive. That is, they behave differently depending on what type of view is currently active. If the current view has yellow arrow buttons at the top, then they performs the function of those instead (e.g. changing to the previous/next net if the unfolded net view is active). See more about yellow arrow buttons later. You can also use Ctrl+Left and Ctrl+Right to go to the previous/next model, regardless of the selected view (they behave exactly like the green arrow buttons).

The built-in list is divided into a hierarchy of categories. You will see the current category and model name displayed in the main toolbar. Clicking on either of these names opens a list of other categories or models to choose from, providing a more direct way to select a model.

The categories are as follows:

Polyhedron Search

Another way to find a polyhedron is to use "File→Polyhedron List...", hit Ctrl+N, or click the matching button on the main toolbar. This opens a window listing all the polyhedra provided. A list of categories on the left, and a list of polyhedra from the current category on the right. The list of polyhedra has several columns, including the primary symbol, name, and the number of faces, edges, and vertices. The list may be sorted according to any column by clicking on the header of that column. Click a second time to reverse the order. To return to the original order, click on the header of the first column.

Select a category on the left, then select a polyhedron on the right. Information about the selection appears at the bottom, including other common names, dual names, Wythoff symbol, Wenninger number and page number in Wenninger's books Polyhedron Models and Dual Models where the model can be found. Click OK or hit Enter to open the selected polyhedron.

Rather than looking through the list, you can enter a symbol or name directly in the Search field at the top. Symbols for uniform polyhedra may be any of the following:

Other models use different notations. For example, enter "J4" for the square cupola, one of the Johnson solids. This provides a very quick way to jump to a particular Johnson solid if you know its number.

You may also enter the name of a polyhedron. It can be either the full name (including known alternative names and dual names), a substring in the name, or an abbreviation for the name using either the first letter from each word, or the first letter from each part of each word. Some examples:

As you type into the search field, you'll notice it finding the best match as you go. Hit Enter to load a model as soon as it finds the one you're after.

Below the search field is a choice between Find one and Find all. So far we've been using the default, Find one, which means the first match is found. Find all finds all matches, and lists them in the special Search Results category at the top of the category list. Select an item from the list and open it. Now you can use the Left and Right arrow keys (or green arrow buttons) to step through the search results.

To the right of the big Search field are some smaller fields where you can enter cell (for 4D polytopes), face, edge and vertex counts. If you enter a number, this also becomes part of the search. For example, enter "12" in faces, and only polyhedra with 12 faces will be found. A range may be entered, such as "12-24", to find all polyhedra with between 12 and 24 faces. You may enter values into more than one field to further narrow the search. Comprehensive tooltips help explain how to use each field, so hover the mouse them to find out more.

With the Search Results category and Find all selected, another button appears labelled ←Locate search result. Click this to locate the selected polyhedron in its original category.

Dual Polyhedra

Every polyhedron has a dual, which won't be explained fully here, but you may think of it as the model's opposite. It has the number of faces and vertices swapped with respect to the original model, and the same number of edges. The dual of the dual brings us back to the original model again.

Hit "d" to switch between the base polyhedron and its dual. The net will also change.

The closer a facial plane passes to the centre of a model, the further away from the centre the corresponding dual's vertex will be. If the facial plane passes right through the model's centre, then the dual vertex will be infinitely far away (in a direction perpendicular to the face). Although Stella4D doesn't allow base polyhedra to have infinite parts, their duals can. In the dual view you can see these as faces that extend out towards infinity, but stop after a fixed distance. You can control this distance interactively with Ctrl+Left-drag. Try it, moving the mouse left and right, to show more or less of the infinite dual faces. This will only work if the dual model does indeed have infinite parts of course.

.stel Files

At any point you may save a model you like to Stella4D's native format, the .stel file. Everything about your scene is saved here, including your current screen layout and views, the model itself, the current stellation of that model, any facets created in Faceting Mode, various settings, and the state of mouse inertia. The latter means that if your model is spinning, morphing or folding etc. when you save it, then it will be spinning, morphing or folding again when you reload it.

Use "File→Save" or "File→Save As" to save your model, and "File→Open" to re-open it later. In the file browser that appears, select an existing .stel file to see some information about it in the preview area at the bottom of the browser. You will see the number of faces, edges and vertices, and the first line of the comment field from the Info Window if one has been set.

Tip: Any .stel files saved from Stella4D before version 5.0 will need to be loaded and re-saved in order to support this information preview in the browser.

If you particularly like a model, you may make it load immediately when Stella4D starts up by using "File→Save Default Scene". Next time you start Stella4D, this model will load automatically. You may even use this just to set up your view layout the way you like it.

Mouse Tips

The mouse does many different things, depending on what mode you're in, which view you're in, whether you're holding down the left/right/both mouse buttons, and whether you're holding down Shift/Ctrl/Neither/Both/Space. Watch for the tips in the bottom right hand corner, which show you what the mouse buttons do in the current situation. The tips change when you hold down Shift/Ctrl/Neither/Both/Space. They may also change when you move the pointer from one view to another. Even I forget what the mouse can do in some modes, so these on-screen tips help a lot!

Sometimes just clicking is required (e.g. Shift+Left-click to select a face). Sometimes dragging in 2D is required (e.g. Left-Drag to tumble the polyhedron). And sometimes dragging in 1D is required (e.g. Right-Drag to zoom in/out).

Navigation

All basic navigation is done with the mouse and no need to touch the keyboard, except for some less common movements. These mouse controls generally continue to work in different modes too.

In a 3D view:

Tumbling and twisting both have mouse inertia, so you can release the mouse buttons while dragging and the model will continue to tumble or twist. To stop it, perform the same action again, but clicking instead of dragging the mouse (e.g. do Left-click to stop tumbling). You may also hit Esc to stop any mouse inertia.

Similarly in a 2D view:

With 2D views, zooming zooms in on the point where the mouse was when you first clicked the right button, so you can zoom in on a specific point. As with 3D views, twisting has mouse inertia.

A couple of more advanced navigation controls are available in 3D views. Hold down the Space bar and you'll notice the mouse-tips in the bottom right corner change:

If you find that you want to pivot around a selected axis more often than twisting, select "Options→Right-drag to Pivot Around Selected Item" (or matching toolbar button). This swaps the operations of Right-drag and Space+Right-drag.

You may also switch each view between perspective and orthogonal projections by ticking/unticking "View→Orthogonal View" (keyboard shortcut: O). Perspective views are what we see in the real world, where things closer to the camera appear to be larger. Orthogonal views are like architectural plans, where distance from the camera does not affect the apparent size of objects.

Finally, you can use items on the "View→Camera" submenu to store and recall camera positions. The field-of-view and perspective/orthogonal setting are also stored.

Exploding Polyhedra

The faces of polyhedra may be exploded apart as follows: This can be useful for examining the internal structure of faces that would otherwise be partly or entirely hidden.

Exploding has inertia, so if you release the mouse button while still dragging, the exploding will continue at the current rate. It will remember how far apart the faces are and use this as one extreme in the explosion. So faces will explode out to this point, then turn around and implode again. The other extreme, at the imploded end, is determined by the following menu item:

Exploding faces is available in most 3D views, but not the Unfolding Net view.

In 4D, the behaviour is a little different. Instead of exploding faces apart, cells are grown or shrunk in-place.

The "Esc" key

You can hit Esc to cancel all sorts of things. It performs the first appropriate action on the list below.

Selecting Faces, Edges and Vertices

In the default mouse selection mode (see below), faces, edges and vertices may be selected with the mouse.

Face, edge and vertex types can also be selected via the Info window.

Tip: When an edge is selected, its length is shown on the status bar at the bottom of the window.

Toolbars

There are five toolbars arranged in three rows, with two in the first and last rows by default. They may be dragged and docked to different sides of the window, or dragged away into a separate window. Their positions will be remembered between sessions. The toolbars are:

The buttons all have tool-tips, so if you place the mouse over a button and don't move for a moment, a small description of the button appears.

In addition, there are further buttons in the top right corner of each view. The buttons that appear depend on the type of view. Yellow left or right arrow buttons are for changing to the previous or next item that this view type can display. For example, in the 2D net view, these buttons cycle through the various nets required. If the current view has yellow arrow buttons, then you can use the left and right arrow keys on the keyboard to perform the same function. Occasionally you will also see tick and cross buttons, which are used to accept or reject something. For example, these buttons appear in facet-creation mode, and can be used to accept or cancel a partially completed facet.

Polyhedron Information

The Info window is a special window for displaying information about the current polyhedron. There are three ways to open or close it: via the "View→Model Info" menu item; via the equivalent button on the options toolbar; or by simply hitting "i" on the keyboard.

Information includes number of faces, vertices and edges, number of edges that must be cut/folded/glued to make the model, alternative names for the model (if any) and lots of other info. It is presented in a tree structure, where collections of similar data are grouped together. A small "+" or "-" sign beside each item may be clicked with the mouse, allowing each section to be expanded to show all the data in that group, or collapsed to hide the data. Which groups are expanded or collapsed is remembered between sessions, so the data presented will always be the data of most interest to you.

You can Right-click on information that may be edited to edit that item. Most items can't be edited, but ones that can include the model's name, the dual's name, comments about the model, the radius, surface area and volume.

Expand the face, edge or vertex counts to see a list of face, edge or vertex types. You can Left-click on a type to select a face, edge or vertex of that type in the main view. Similarly, when a face, edge or vertex is selected another way, the matching entry in the Info window will be highlighted.

The Info window also shows how many parts belong to this compound (or "1" if not a compound). Expand this item to see a list of the polyhedra in this compound. Left-click on one to select a face belonging to that part.

This window starts off docked to the right hand side of the main window, but like the toolbars, it may be dragged to dock elsewhere in the main window, or dragged away into a free-floating window of its own. The position is remembered between sessions.

Views and Layouts

By default there are two views, one showing the base polyhedron, and one showing its net. You may choose a different layout with "View→Choose Layout", or more conveniently by using Ctrl+1 to Ctrl+6, depending on how many views you want. For example Ctrl+4 will give you a four-view layout. Repeatedly hitting Ctrl+4 will cycle through all the different four-view layouts available.

Once you have the layout you want you can choose what kind of views are shown by selecting each view in turn (by clicking in them or on their title bars) and hitting one of the buttons on the view toolbar (or choosing from the bottom section of the View menu).
Tip: To see which view is selected, look for the one with the highlighted title bar. There's always exactly one selected view.

When you save a .stel file (not available in the demo) your layout and view types are also saved, and restored when the file is opened another time. If you wish to open a file without changing the current view layout, use "Options→Keep Layout when Opening Files". Once ticked, you may continue to open further files without the layout being affected.

Dual Morphing

There are eight types of view which show smooth morphing between a polyhedron (or compound) and its dual. Two of these are supported in 4D. Select one of these view types from the view toolbar, or from the "View→View Duals Morphing" submenu. Use Ctrl+Left-Drag to morph between the base and dual in these views. There's also mouse inertia on this function, so you can release the mouse button while dragging and the morphing will continue on its own. To create nets for a morphed model, you first need to make it the new base model. Do this by clicking the left-and-down arrow button on the morph view's title bar.

Note: the demo version will not allow morphing for certain models.

This morphing may not act perfectly between all pairs of models. Some methods cause parts to get flatter and flatter until they disappear, which produces a visual jump, but isn't really wrong. Morphing between hemi-polyhedra and their infinite duals won't work correctly, which probably isn't surprising!

Nets

Another type of view is the Unfolded Net view. Use PageUp and PageDown to move through the list of nets required. Hit Ctrl+P to print the net (or to print any other view type, but make sure you have the appropriate view selected first!). The demo version will only allow you to print nets for the five Platonic solids, but it will still let you see a print-preview of nets for any model. The Net view shows one unfolded net at a time, but when printing, all required nets are included. Stella4D attempts to pack as many onto each page as it can to minimize paper requirements.

Printing must always be done via a print-preview, to avoid any issues with unexpected settings. A dialog box appears first full of options for printing nets, but you can ignore most of these to start with and just click on "Preview" (or hit Enter).

If you're not sure about how to put the nets together, then look for the "Edge connection IDs" tick-box in the dialog box that appears when you print nets. Ticking this will cause numbers to be displayed beside each edge around the net. Each number will appear exactly twice among all the nets. Find the matching numbers to see which edges should be glued together. This is especially useful for models with asymmetric color schemes, where the nets may go together in various ways, but only one has the correct colors.

When printing, if the sale of the model is too big for nets to fit on your printer's paper size, an error is given, with an offer to scale the model down just enough so that the nets fit. The message also shows the factor by which the model would be scaled down.

See Scale for details about printing nets in different sizes.

Folding Nets

The Folding Net view shows the nets in 3D, folding up into the final model and unfolding again into separate flat nets. Use Ctrl+Left-drag to interactively fold and unfold the nets. Mouse inertia applies here too, so if you release the left mouse button while still moving the mouse, the folding/unfolding will continue on its own at the current rate.

When unfolding, first the folded nets move apart from each other (if there's more than one net), then they each unfold individually. Ctrl+Right-click jumps to the point between these two stages, or just folds the net half-way if there is only a single net.

The "Nets→Nets Shown in 3D View" submenu gives you control over what is shown in the Folding Net view. Your options are:

If you want to try something more unusual, try creating the convex hull of a partly folded net using "Poly→Create Convex Hull" with the Folding net view selected!

Separating Net Colors

You may want to print all nets onto white paper, perhaps using a color printer to fill in the face colors or images, or you may want to print nets of different colors separately in order to print directly onto colored paper (my usual technique).

The "Nets→Net/Paper Color Mixing" submenu allows this. It contains the following options:

When mixing of colors is not permitted within nets, only nets of a single color will be printed at any one time. For example, if there are red, yellow, and blue parts, then you will need to do three print-outs to print all the nets, one for each color. If you are currently viewing a yellow net in the Unfolded Net View, then by default, printing will only print yellow nets, but the dialog box has a drop-down list for choosing the paper color you want. For the chosen color, all nets of that color will be printed, not just the one you are viewing, and it will try to pack them together as best it can. The print-preview lets you see how many pages are required, so you just put that many pieces of red, yellow or blue paper in the printer tray (use manual feed for thicker paper and to reduce curling on some printers).

Tabs

In order to glue parts together when building a paper model, tabs are usually left on some or all edges around each net. The following construction methods are common: Most people seem familiar with the single-tab method, and indeed it's how I first started, but for the most part I recommend the double-tab method for the following reasons: The single-tab method can still be useful in the following cases: You may mix and match methods within one model. In such cases I would start by attaching the single-tabs, which are harder to glue once more of the model takes form.

Stella4D supports all three methods, or a mix of them. Tabs are shown in both the Unfolded and Folding Net views. Use the "Nets→Tabs" submenu to state your preference. With an edge selected, the preference applies to that edge only. With no edge selected, you will be setting the default preference. It contains the following options:

Scale

Before printing out nets, you are going to want to decide how big to make your model. This is what the items on the "Scale" menu are for. They let you change the scale of the whole model by specifying the length of certain features, such as edge length or radius. Note: the model does not get bigger or smaller on the screen, but printed nets or exported models will reflect the change in scale. However, if you have tabs on your nets, then you will see them change size. Visually, they scale in the opposite direction to the change you make, because while the model might be physically bigger, it remains the same size on the screen, so the tabs which have remained the same physical size, are therefore shown to be smaller.

Changing the scale of an item affects a few other operations too, especially ones that involve two polyhedra, such as "Edit→Add/Blend from Memory". It also affects the results shown in Measurement Mode.

Tip: You may enter an equation rather than a simple number if you wish.

Here's what the items on the Scale menu do:

Equations

Tip: When entering a scale, or entering a real number in any other part of the interface, you may enter an equation rather than a simple number if you wish. Examples of equations include:

Undo/Redo

Most operations can be undone and redone, including changing to a new model, changing the scale of the model, and changing face colors and images. Use "Edit→Undo" (keyboard shortcut: Ctrl+Z) to undo, and "Edit→Redo" (keyboard shortcut: Ctrl+R) to redo. Both operations are also available on the main toolbar. If you Right-click on either button, you'll see a menu of the last 20 operations that can be undone/redone. Select one to perform multiple undos/redos in a single step.

See also "Edit→Undo Settings" for various options that control the undo mechanism. You may limit the amount of memory used, and the number of undo levels available.

Full Screen Viewing

Expand any view temporarily to become full-screen using F2 or "View→Full Screen". The active view then takes over the screen and all menus, toolbars and borders are hidden. It can be nice to view models this way with no other distractions. To exit this mode, hit F2 again, or hit Esc. Any operation that opens a dialog box will also force an exit from full screen mode (e.g. opening a file with Ctrl+O).

3D Stereoscopic Display

Geometry may be viewed in true stereoscopic 3D! To enable this, select from the "Display→3D Stereo Display" submenu. Two slightly different images will be rendered, one for each eye, giving the model a 3D appearance. If you load a background image ("Image→Load Background Image"), it will appear to be pushed back behind the model.

If you have red/blue or red/green glasses, you may use those. Even with red/blue glasses, try the "Left Red, Right Cyan" option as it may work better than the "Left Red, Right Blue" option. If you're after some red/blue glasses, there are some available for under $3 including shipping here.

The other option is to display the two images for your left and right eye side-by-side. You have the option of putting them either way around. This option has the advantage of maintaining full-color images and not requiring glasses, but requires the user to be able to blend the two images themselves, either by going slightly cross-eyed, or by allowing their eyes to drift apart slightly. For the cross-eyed option, try holding a finger to the screen, pointing up, with the tip between the two images, then pull the finger slowly towards yourself. Keep your eyes focused on your finger but be aware of the two images behind it. There will be a point where they overlap behind your finger. Now try to keep those images fused and slowly take your finger away.

Personally I find the parallel-eyed version much easier to achieve and to keep focused. For this, try to look past the screen into the distance and focus far away. Then try to look down to the screen while keeping your eyes focused in the distance. Again it is a matter of then trying to merge the two images.

Advanced Topics

Animated Transitions

When changing from one polyhedron to another, the transition may be animated, and there are plenty of ways to customise this. You can control what kind of transitions is used in different situations, as well as adjusting parameters governing how each type of transition behaves.

Tip: You can skip a transition at any time by hitting Esc.

The first two items on the Options menu relate to transitions:

The Transitions dialog box has a great many options for customising transitions, but you needn't understand them all. If you just want to change the type of transition, or the length of each transition, then make sure "Occasion" is set to "Default", and change "Method" or "Duration" accordingly. See below for a list of methods available.

The Transitions dialog box is modeless, meaning you can leave it open and still use the rest of the program. This lets you see what effect changing settings has without closing the window.

If you want to get into more detail, here's what the Transition dialog box provides:

Tours (Polyhedral Slideshows)

A tour is an animated polyhedral slideshow. For example, you may start with a cube folding and unfolding, then switch to a dodecahedron morphing into its dual and back, and so on. You may choose the transition to use between each event, and may even transition between 3D and 2D views. Tours may be played back or exported as a video.

Tip: You can stop a tour from playing back by hitting Esc (or by hitting the play button again).

A tour consists of a list of events. Each event may have its own model, view layout, and transition to the next event. Tours can be saved and reloaded from .tour files.

The Tour menu provides various controls for creating and editing your tour. The Tour toolbar provides another way to access all these same controls. The menu contains the following:

The tour list shows all the events in a list, one per row. You may drag items within the list to rearrange them. You may click on an event to select it, and use Ctrl+Left-click to select multiple events. The list has columns, each showing different information about each event, including:

You may Right-click on the tour list to open a menu with a few relevant options:

Showing Vertices and Edges

Overall display of vertices and edges may be enabled or disabled. They may be shown either as points and lines, or spheres and cylinders respectively. All settings are remembered after you exit the program for next time.

Tip: To hide or show individual vertices or edges, see Hiding Individual Cells, Faces, Edges and Vertices below. Options for controlling the overall display of vertices and edges are found on the "Display→Vertex & Edge Options" submenu:

Hiding Individual Cells, Faces, Edges and Vertices

The Display menu includes a group of items for hiding or showing individual cells, faces, edges or vertices. Most of these require you to select a cell, face, edge or vertex first (see Selecting Faces, Edges and Vertices).

Tip: Make sure you have overall display of vertices and/or edges enabled, or they will always be hidden.

Tip: Vertices and their dual faces are hidden in sync. So when you hide an individual vertex, it will hide the matching dual face too.

When a cell, vertex or edge is selected, the text in the menu items below will have "Face" replaced by "Cell", "Vertex" or "Edge" as appropriate. The relevant items from the Display menu are as follows.

Note, the hidden attribute of a cell/face can also be copied quickly between cell/faces using Color/Hide Faces Mode.

Colors

Models may be colored in various ways. This section describes the items on the Color menu. See also Color/Hide Faces Mode for rapidly spreading colors across selected faces.

Polygon Filling and Overlapping Colors

Use "Display→Polygon Filling Options..." to open a dialog box with various options for polygon filling. It is a modeless dialog box, meaning that you can leave it open while you use other features of Stella4D.

An image is displayed which shows a preview of the current settings. See how it changes as you select different options. The following options are available.

Note: cross-sections will always use the "Auto" filling method, and always allow coplanar faces to cancel each other out, regardless of the above settings. Otherwise some areas may be filled incorrectly.

Images

Images may be put on faces. You may want photos of your pets on the faces of a dodecahedron, or you may want a model to look like it's made of wood. This section describes the items on the Image menu (see also Image mode below).

Text on Faces/Edges/Vertices

Text may be displayed on any face, edge or vertex. The text may include some limited HTML markup, and may sit in various ways. Text on faces will also appear in nets. Make your own polyhedral dice with numbered sides!

Options for dealing with text may be found under the "Edit" menu as follows:

Text may span multiple lines, and may include some limited HTML. The following HTML is supported: Some additional non-standard HTML tags are also available:

Geomag-Style Rendering

Rendering in Geomag style makes polyhedra appear as if they were built using the Geomag magnetic construction kit. Generally Geomag-style rendering will be permitted unless a model could not be physically built using Geomag, in which case a reason will be shown on the screen. Some common polygons not available from Geomag are subdivided using ones that are.

Control Geomag-style rendering via the "Display→Geomag" submenu (or matching toolbar buttons):

When selecting face colors, you will be limited to those available for Geomag panels.

If images are applied to the faces, these will appear as if using Geomag's Deko panels. When printing the unfolded net view, only the parts you require for use with the Deko panels will be printed, ready to cut out and insert into the Deko panels.

A collection of models suitable for construction with Geomag can be found in the Geomag Library folder within the Stella library.

Cross-Sections

Select a view and use "View→View Diagrams→Cross-Section" or the matching toolbar button to switch to the Cross-Section view. This shows a 2D cross-section (or slice) through the current polyhedron (or 3D cross-section if the current model is a 4D polytope). The cross-section is made with a slicing plane, which can be controlled in various ways. Any edge of the original model passing through the plane is sliced to become a vertex. Any face crossing the plane is sliced to become one or more edges (nonconvex polygons can lead to more than one edge). And a whole polyhedron is sliced to create one or more polygons. So each entity loses one dimension as a result of the slicing process. When slicing a 4D polytope, a hyperplane is used, each cell becomes one or more faces, and the whole polytope becomes one or more polyhedra. Note: many edges and faces may lie entirely on one side of the slicing plane, and so do not contribute at all to the cross-section.

Cross-sections have a beauty all of their own, especially when animated by altering the slicing depth (keeping the slicing plane parallel, but moving it through the model). The slicing depth is a value between 0.0 and 1.0, each representing a plane at opposite ends of the model.

Each polygon of the 2D cross-section is surrounded by edges formed by slicing faces. The edges are shown in the color of their corresponding face, and the polygon itself is filled with a color obtained by averaging the colors of its surrounding edges, weighted by their edge-lengths. This can produce some pleasing results, with the polygon colors changing smoothly into other colors as their edges get longer or shorter. When multiple polygons overlap, the overlapping colors are also blended, making even more interesting images.

More colorful cross-sections can be obtained by using "Color→Basic Color Scheme→Color Along Cross-Section Direction", especially for regular polyhedra, which would normally be shown all in one color. When all faces have the same color, the detail of the cross-section can be lost since all edges and filled regions become the same color. With this option, cross-sections become much more colorful, but still retain full color symmetry.

In 4D the case is a little different. Since cells are colored rather than faces, the cell colors are used directly as face colors in the cross-section. Overlapping faces can still have their colors blended however (try the polytope known as "idfix" for example. That is, hit Ctrl+N, type "idfix" and hit Enter).

The mouse may be used in the following ways.

Note: Shift+Left-click and Shift+Right-click act differently for a 4D model. See 4D Cross-Sections for details.

The Section menu offers further cross-sectioning options:

The yellow left/right buttons in the title bar of the Cross-Section view also serve a purpose. They skip the slicing depth forward or backward to all the values where the slicing plane passes through a vertex of the original model. These are often quite interesting points in the transition.

Finally, the slicing plane can be tumbled interactively in a free-form style. See Cross-Section Tumble Mode for the details.

Convex Hulls

Use "Poly→Create Convex Hull" to create the convex hull of the model in the current view. This is the smallest polyhedron which encloses all vertices of the original model. You may even take the convex hull of a partially folded net.

Works for 4D polytopes too.

Convex Cores

Use "Poly→Create Convex Core" to create the convex core of the model in the current view. This is the largest polyhedron surrounding the centre of the model which does not intersect any facial planes of the original model (any planes through the centre of the model are ignored). The convex core is the dual of the convex hull of the dual of the original model!

Works for 4D polytopes too.

Zonohedra

Use "Poly→Zonohedrify" (keyboard shortcut: Z) to create a zonohedron based on the current polyhedron. A dialog box appears with various options. A zonohedron is created from a seed star, that is, a set of vectors which represent the directions of edges in the resulting zonohedron. You may populate your star using combinations of vertices, edges, faces; choosing for each whether you want all, all of the same type, or just a single item. You may also include the current symmetry axes or world X/Y/Z axes in the star. Note: all edges in the resulting polyhedron will have the same length, even if vertices etc. were at different radii.

You may choose to either create a zonohedron purely from the chosen inputs, or to add these zones to the existing polyhedron (to create a zonish polyhedron). In the latter case you may also enter a scale for the new zone edges. At 1.0 they will be the same length as the existing edges.

You may also specify the maximum number of zones to add. This may be handy if you want to see the result of adding one zone at a time. Recreate the zonohedron from the same initial model but increasing the maximum one at a time to create successive steps in the zonohedrification.

Subdividing Faces

Use "Poly→Subdivide Faces" to subdivide a model's faces into smaller triangles. You will be prompted to enter the number of subdivisions along each edge. Faces having more than three sides are first subdivided into triangles, each meeting at a new vertex at the face's centre. You may choose "1" as the number of subdivisions to just do this first step.

Tip: Be sure to display edges, or it may be hard to tell that a face has been subdivided at all.

Subdividing faces can be useful in combination with Faceting Mode. With more vertices spread across each original face, you have more freedom to create interesting facets from them, possibly carving interesting shapes out of the original faces. For some examples of what this can achieve, see the following models:

Geodesic Spheres

Use "Poly→Create Geodesic Sphere" (keyboard shortcut: Ctrl+G) to create a geodesic sphere based on the current model. Traditionally geodesic spheres are based on an icosahedron, octahedron, or occasionally a tetrahedron, but here any model may be used as a starting point. Try starting with one of the Stewart Toroids for interesting results!

You will be prompted for the frequency of the geodesic sphere, which is the number of subdivisions along each edge of the original polyhedron. As with subdividing faces above, faces having more than three sides are subdivided into triangles first. Once the faces are subdivided, all vertices are projected onto a sphere.

Projecting onto a Sphere

Use "Poly→Project onto Sphere" to project all vertices onto a sphere. This isn't always possible, as faces with more than three sides may end up non-planar. An error is given in this case.

Waterman Polyhedra

Use "Poly→Create Waterman Polyhedron" (keyboard shortcut: W) to create Waterman polyhedra. A dialog box appears with options for different types of Waterman polyhedra. Once created, use the Left and Right arrow keys to step through the sequence of Waterman polyhedra. There is also an option to create 4D Waterman polyhedra. One interesting thing about these is that their 3D cells are often Waterman polyhedra themselves, but not always!

Creating a Block

Use "Poly→Create X x Y x Z Block" to create a block where each side consists of a grid of square faces. This may be a useful starting point from which to augment or excavate cubes if creating a large structure built from cubes.

Creating a Torus

Use "Poly→Create Torus" to create a polyhedral approximation to a torus. You may specify a few parameters to dictate the level of subdivision and the relative radius of the ring.

Stellated Polyhedra

A stellation of a polyhedron is a new polyhedron which has faces that lie in the same planes as the faces of the original model. Typically you start with a convex polyhedron and build stellations out from it, but the seed polyhedron does not have to be convex. Stella4D is able to find all the possible stellations of a given polyhedron.

For models which may be stellated (a small set in the demo, but not restricted in the full version of Stella4D), use the Up and Down arrow keys to visit each valid stellation (same as "Stellation→Next Stellation" and "Stellation→Previous Stellation", or the up and down green arrow buttons on the options toolbar or at the top of a stellation view). You can hold the keys down to see all the different stellations racing past. Note however that you won't see anything happen in the base polyhedron view though. The default views show the base polyhedron and its net. Instead you need to change one of them to a view of a stellation, by selecting either the View Stellation or View Dual Stellation buttons from the view toolbar.

What counts as a valid stellation depends on your settings. The default is that only fully supported stellations are counted as valid. Choose a different criterion by selecting a different item from the top section of the "Stellation→Stellation Criteria" submenu. This affects what stellations you will encounter when hitting the Up and Down arrow keys, and which stellations will be counted when you do an enumeration ("Stellation→Enumerate..."). For a description of the different stellation criteria, see my paper "Stella: Polyhedron Navigator".

To create a new stellation manually, you need to select and deselect cells. Cells are the smallest volumes enclosed by sets of planes in which the original model's faces lie, and are the 3D building blocks of stellations. Actually, all cells of a certain type are usually referred to as a single cell, and together they maintain the same rotational symmetry group as the original model being stellated. A stellation is made up of some set of all the possible cells for a given set of planes. There are a number of ways to select/deselect cells, that is, to include them in or exclude them from the current stellation.

In any situation where you can select stellation cells using Shift+Left-click, you can also use the following.

You can also stellate using an arbitrary set of facial planes, rather than starting with the faces of a given polyhedron. This is more maths-intensive for the user though, as you need to know the plane equations required. Use "Stellation→Stellation Planes". A dialog box opens with various options, initialised with values taken from the current polyhedron. At the top you can select the symmetry group for the stellation, and below that you can enter as many plane equations as you wish. Each plane will be repeated over the symmetry group, so you only need to enter an equation for one of each type of plane. The X, Y and Z fields represent a normal to the plane (a unit vector perpendicular to the plane). This vector will be normalised if it is not already unit length. The final parameter to define each plane is Radius, which gives the distance of the plane from the centre of symmetry. It may be zero to define a plane that passes through the centre. Each field may be given as a decimal value, or an equation like "4 + 2r3", where 2r3 means 2 times the square root of 3. You may also use tau or g as shorthand for the golden ratio. It is very important that the values are as accurate as possible, so use an exact equation where possible. If entering a decimal value, I recommend 17 or 18 significant figures.

In the above dialog box, you may define a stellation plane using the Add Measurement Plane button. No need to deal with numbers in this case. Just define the plane you want first using Measurement Mode.

Menu item: "Stellation→Fill All Inaccessible Cells"

This menu item selects any unselected cells that are totally hidden from external view. For example, when stellating the dodecahedron, you might have the cells selected to create the small stellated dodecahedron. Now whether the central dodecahedron cell is selected or not makes no difference to how the model looks from outside. Generally you want all those hidden cells to be selected; otherwise they will lead to extra nets, for internal parts that won't end up being visible!

Having all parts accessible is also one of Miller's Rules which were used for The 59 Icosahedra.

Once you've made some complicated stellation from various cells, it's often a good idea to fill in the inaccessible cells, since you probably don't want hidden "bubbles" inside your model.

When using this feature, you will not see any difference in the model, but you can see what's going on in the stellation diagram view (if there are any inaccessible parts to fill in of course). You will also see a change in the 2D or 3D nets view.

Submenu: "Nets→Coincident Edge Method"

Exactly one of the items on this submenu may be selected at any one time. The setting only affects "double", "coincident" or "pinched" edges in models, i.e. where two solid pieces touch at an edge, e.g. when two faces sharing a vertex intersect each other. From outside you can see the edge from either side. When building a model, four parts in the nets meet at each such edge. You might want to attach these in one of the following ways:

These settings generally make subtle differences in the nets produced.

Symmetries

Symmetries are transformations which leave a model looking like it hasn't moved. They mostly come in two types: rotational and reflective. Use "Display→Show Symmetry Axes" to display the rotational symmetry axes (keyboard shortcut: S, also on options toolbar). In 3D views these are indicated by an axis through the model with a small disc at either end. The number of spokes in the disc indicates the order of rotational symmetry. The different types of rotational symmetry axis are shown in different colors. In the stellation diagram view these are indicated as points where the axes intersect with the face plane, using the same colors.

Use "Display→Show Reflection Planes" to display the reflective symmetries (keyboard shortcut: R, also on options toolbar). In 3D views these are represented by great circles around the model in the reflection plane. In the stellation diagram view these are shown as dashed lines where the reflection planes intersect with the face plane.

The symmetry group of a polyhedron is the collection of all its symmetries. The options toolbar has a field that shows the rotational symmetry group (e.g. "Icosahedral"), and another field showing the reflective symmetry group within that (e.g. "Horizontal Reflection"). To the left of these is another field showing two common symbols used for the current symmetry group: Schönflies symbols and Conway orbifold notation.

A good web page showing the different symmetry groups is http://newton.ex.ac.uk/research/qsystems/people/goss/symmetry/Solids.html. The only groups missing here are icosahedral symmetry, both with and without reflections. The h subscripts on that page correspond to "Horizontal Reflection" in Stella, and the d subscripts correspond to "Diagonal Reflection". Notice that the rotational symmetries of a tetrahedron can be combined with either of these reflection types (Th and Td). The latter is the symmetry group of the regular tetrahedron, while the former is known as pyritohedral symmetry.

Some symmetry groups are subsets of others. All three symmetry group fields in the toolbar have drop-down lists, which let you see all the sub-symmetry groups available, and choose one. Changing to a sub-symmetry group will affect stellation, faceting, augmentation, and coloring of the model. Note: you can use "Options→Recolor Sub-Symmetries" to prevent the model's color from changing when choosing a sub-symmetry group.

Some symmetry groups contain rotation-reflection symmetries, made from a combination of a rotation and a reflection where neither step represents a symmetry of the group on its own. These appear as "Rotation-Reflection" in the reflection symmetry drop-down list, and only occur in conjunction with some dihedral symmetry groups. When reflection symmetries are displayed, these are represented as a wavy circle around the model, rather than flat, with waves matching the rotation required. A special case of this is known as central inversion, where the only symmetry in the group is a reflection through a point at the centre of the model. This is the same as a rotation-reflection where the rotation is 180 degrees. This special symmetry group is represented by a few double-headed arrows through the centre of the model. Your homework is to try to create polyhedra in Stella4D that show these special symmetries!

Mouse Selection Modes

Submenu: "Selection→Mouse Selection Mode"

Items in this submenu allow you to enter a different mode, where the mouse behaves differently from normal. Exactly one of the items will be selected at any one time. The first item on the list is the default mode, so to exit one of the other modes, either select this item, or just hit Esc. There is also a toolbar containing a button for each of these modes.

You can tell when you're in a different mode from usual by holding down Shift and seeing what shape the mouse pointer becomes. Navigation with the mouse acts the same in all modes. The difference is what happens when you're holding down Shift and/or Ctrl.

Some of these modes are described in the following sections.

Cut/Uncut Edges Mode

Menu item: "Selection→Mouse Selection Mode→Cut/Uncut Edges"

If you don't like the net created, you can force the program to cut certain edges. This makes it rebuild the nets, connecting different faces together instead. All edges of the selected type are cut/uncut at once. Nothing is really ever "glued", just either forced as a cut or not.

Note that cutting one edge may cause other faces to join together in a net where they were previously not connected. This is because the nets are rebuilt from scratch. So you can use cutting as a way of forcing other faces to join up. If you didn't want those faces to connect, then you can always cut their shared edge too.

For example, use this mode and Shift+Left-click on an edge of the icosahedron. All edges are the same type, so they are all cut, so you end up with only one face in each net.

Measurement Mode

Menu item: "Selection→Mouse Selection Mode→Measurement Mode"

Measurement Mode lets you measure the distance and angle between any two items, where each item may be a hyperplane (for 4D polytopes), plane, line or point. The distance and angle are shown on the screen, and the items highlighted in light blue, along with some construction lines to help clarify what's being measured. Items may be defined via the mouse:

So use Shift+Left-click to select a vertex, edge or face, and then again to select another and see the distance and angle between them. If you want to specify an item that doesn't correspond to an existing entity, such as a plane through three arbitrary vertices, then you can build up this plane by specifying each vertex in turn. Use Shift+Left-click for the first one, then use Shift+Right-click to add the others. You can even specify a plane through an edge and a vertex by Shift+Left-clicking the first and Shift+Right-clicking the second.

Normally at most two items are remembered at a time, and the distance and angle measured between them. So when you specify a new item, the oldest item of the previous two is discarded. You can use Ctrl instead of Shift with the above mouse operations if you want to replace the most recent item rather than the oldest. This retains the earlier item, so is handy if you want to fan out measurements from the same point repeatedly.

These is one occasion where three items are remembered rather than two. This is when you select three vertices in a row. The distance between the last two is shown, along with the angle subtended at the middle point.

You may also specific a point at the centre of the model, even when there's no vertex there to click on. There's a button which appears on each view's title bar when in Measurement Mode to achieve this. It shows a circle with a dot in the middle. This allows you to measure distances from the centre of the model. Or you can use it as the first point in a line or plane through other arbitrary vertices or edges by using Shift+Right-click as above.

In addition to appearing on-screen, the distance and angle are shown in the status bar at the bottom of the window. You can also access the currently measured distance via "Scale→Measured Distance". This also lets you change the distance, which affects the scale of the whole model, as used for printing nets and some other operations.

Note, in the base or dual view, you may only click on true vertices of the model, not virtual ones caused by intersecting faces, unless you turn on display of stellation vertices (see Showing Vertices and Edges). You may also click on points in the stellation diagram.

Aside from measuring things, Measurement Mode has other uses. The most recently defined item may be used in the following ways:

Color/Hide Faces Mode

Menu item: "Selection→Mouse Selection Mode→Color/Hide Faces"

This mode lets you easily copy colors, images, or "hiddenness" between faces.

In either case, you may hold the left mouse button down and drag the mouse across multiple faces to apply the color/image to all of them, like painting. No need to click on each one.

If the selected face was hidden, then the "hiddenness" is copied, that is, other faces may be easily hidden too by Ctrl+Left-clicking on them. In this case the color/image of the face is not changed (it is presumed that it is only the hiddenness that you are interested in copying).

If you plan to do a lot of augmentation (see below), this mode can be useful. One of the options when augmenting is to only augment faces of the same color. So select one of the faces you want to augment, then copy that color to all the other faces you want to augment. This lets you quickly and easily select a collection of faces for augmentation.

Face colors may also be changed in various ways via the Colors menu.

Image Mode

Menu item: "Selection→Mouse Selection Mode→Image Mode"

If the selected face does not already have an image on it when entering this mode, a file browser will open allowing you to select one. This is the same as if you had used "Image→Load Image" (see Images above). You may cancel the file browser if you wish to use Image mode without loading any new images.

Image mode lets you accurately position images on faces however you want.

Compare these three operations with navigation in a 2D view. Notice the similarity when you don't hold down Shift? This makes it easier to remember which combination of buttons does what.

Use Ctrl+Left-click to select a face without affecting the image on it. And use Ctrl+Right-drag to stretch an image on a face (changes the aspect ratio of the image). Note: when using spherical or cylindrical mapping, the image must always wrap all the way around, so scaling and stretching the image both have the same effect, to scale it vertically, but leave it wrapped all the way around horizontally.

Use Ctrl+Shift+Left-click to swap images between two faces. The images are swapped between the face you click on, and the face that was previously selected. This is useful in conjunction with "Image→Load Image List...". You can load a bunch of images at once, then swap them between faces to get the arrangement you want.

Cross-Section Tumble Mode

Menu item: "Selection→Mouse Selection Mode→Cross-section Tumble Mode"

This mode allows you to interactively tumble the slicing plane. See Cross-Sections for more information and ways to choose specific orientations of interest for the plane.

In this mode, the mouse can be used in the following ways.

Faceting Mode

Menu item: "Selection→Mouse Selection Mode→Faceting Mode"

In this mode, you can Shift+Left-click on a series of vertices of a model to create a new polygon. A helpful message will appear when you enter this mode, explaining what operations are available via the keyboard or mouse. You will see the new polygon being drawn as you go (it will show half-transparently through other faces). The points must be coplanar, and once three or more points have been added, other coplanar points are highlighted in green. If you wish to add a point at the centre of the model, use the button showing a circle with a dot in the middle at the top of the view. When finished, hit Enter or Shift+Right-click anywhere to accept the polygon (or hit Delete or Esc to cancel it). You can also accept or reject the new polygon with the tick and cross buttons at the top of the view.

Once accepted, the new polygon will appear as another net, on its own (hit PageDown in the Unfolded Net view a few times to find it), and you can print it out. I use this to create supporting pieces to glue inside models for added strength. See my page about the great dodecicosidodecahedron for an example: http://www.software3d.com/GreatDodecicosidodeca.php. You may define more than one such polygon. Creating new polygons in this way is also the first step to creating faceted polyhedra (see next section).

Some other useful controls in this mode are as follows:

Faceting

A faceting of a polyhedron is one which shares the same vertices, but has different faces connecting them. Faceting is actually the dual process to stellation, the former keeps the vertices while the latter keeps the facial planes, but I won't go into that here!

The previous section described how to make extra polygons, or facets, using the original vertices of a model. When one or more of these facets have been created, you may use "Faceting→Create Faceted Polyhedron" (keyboard shortcut: Ctrl+Shift+F) to create a new polyhedron from them. Each facet is repeated over the current symmetry group, and the resulting faces are used as the faces of a new polyhedron, which becomes the new base model (so you can see its nets, dual etc). Not all combinations of facets you might create will lead to a valid polyhedron however, in fact most won't. So you need to be careful when creating the facets. An even number of faces must meet at every edge (and usually you will want exactly two faces).

The Preview Faceting view lets you see how your faceted model is coming along before you've finished it. To use this view, select a spare view whose type you don't mind changing (by clicking in it) and use "View→View Models→Preview Faceting" (or the toolbar equivalent). Create a facet (using one of the other 3D views and Faceting Mode) and you will see how it is repeated over the symmetry group. Edges with only one face are highlighted in green. These are edges where you need to create another facet to share that edge. Orange edges have an odd number of faces, but at least three. Here you need to either delete one of the facets, or add yet another one. Red highlights edges where an even number of faces meet, but greater than two. These are acceptable, but often undesirable. Finally, if exactly two faces meet at an edge, but they are coplanar, then purple highlighting is used. This is also often undesirable, but not disallowed. Edges where exactly two non-coplanar faces meet are not highlighted at all. Generally you are trying to get rid of all highlighted edges. When you have, create the model with Ctrl+Shift+F, or just click on the left-and-down arrow at the top of the Preview Faceting view.

Use Ctrl+Left-click in the Preview Faceting view to select a facet. Then you can click the "X" button on the title bar to delete that facet. You can also find it in the Unfolded Net view (with PageDown) and delete it using the "X" in that view's title bar.

Since facets are repeated over the symmetry group, you can use the symmetry drop-down lists (see Symmetries) to select a different symmetry group, and the facets will be repeated accordingly in the Preview Faceting view. You can also choose whether they should be repeated over reflection symmetries with "Options→Maintain Reflexibility".

For a (very) short faceting tutorial and example, see my web page about the five-dodecahedron compound.

Adding and deleting facets can be undone/redone, and the current set of facets is saved in the .stel file too.

Automatic Faceting

It can be hard to find sets of facets that go together correctly to create valid polyhedra. Luckily Stella provides a way to automatically step through all possible valid facetings, and also to see what individual facets are possible. With the Preview Faceting view selected, simply hit the Up arrow key (or the green up-arrow button with the "F" next to it) to step through all the possible facetings. The Faceting menu also plays a part. It contains the following items:

Faceting Diagram

Another related view type is the Faceting Diagram ("View→View Diagrams→Faceting Diagram" or the toolbar equivalent). This shows the faceting diagram (which is reciprocal to the stellation diagram for the dual). There is a different faceting diagram for each different type of vertex of a polyhedron, so try selecting different vertices in one of the 3D views (by double Right-clicking on them) to see the faceting diagram for that vertex, or use the yellow left and right arrows on the title bar to cycle through them.

The diagram has the following features:

Memories

Stella4D has nine memories. These are like the memory on a pocket calculator, except instead of storing a number, they store a polyhedron. Quickest way to use memories is to hit m followed by a number from 1 to 9 to store a model in memory, and hit Shift+M followed by a number to retrieve a model from memory. The number indicates which memory slot to use.

You can also deal with memories via the menu:

Augmentation

Use "Poly→Augment Polyhedron..." (keyboard shortcut: A) to augment, excavate, or drill the current polyhedron. These are all basically different aspects of the same function. Augmentation is simply attaching one polyhedron to another at some common face. Excavation is where one model is subtracted from another at some common face, leaving a dent. In either case, any faces that coincide exactly between the two models are removed. The face where the two models were attached always falls into this category, but others may too. When this happens during excavation it is called drilling, as the result is a hole right through the model.

When choosing to augment a model, a dialog box appears with the following sections.

When augmenting with pyramids, the pyramid height may be selected with the following options: When augmenting with prisms, the prism height may be selected with the following options: The Scale setting can be used to scale the height of augmentations when using pyramids, prisms, antiprisms or cupolae. In most cases it scales the height of the augmentation directly, but there are some useful exceptions when augmenting with pyramids. For the "Keep edges same length" and "New edge lengths = 1" options, the scale applies to the edge length used instead of the height. With "Touch model radius", the scale applies to the model radius, then the pyramid height is chosen to touch that new radius.

After clicking OK, an augmentation preview mode will be entered. Here a preview of the result is shown. Depending on your choices above, it will normally show the augmented parts as solid with a wire-frame outline (the wire-frame shows through other faces too, for easy identification). A message at the top indicates how many orientations are possible for the augmentation.

The following controls are available during the augmentation preview.

Augmentation parameters are remembered during a session, so if you augment a lot of times using the same model, you will mostly just have to hit "a" followed by Enter, without having to change anything in the dialog box. This makes it very quick to build up a big structure.

Putting Models on Faces/Vertices

Use "Poly→Put Models on Faces/Vertices" to put any model on the faces or vertices of another model. This is similar to augmentation, but rather than attaching the new model at a face common to the two parts, here the new model is not attached to the original at all, but rather just sits in space on its own. It may intersect with the original model, but there will generally not be any edges connecting the two parts. It is more like a compound in this regard.

A dialog box appears with various options. In the Source section you may choose where to get the new model from (a memory slot, a built-in model or dual, or from a .stel file).

Below this is the Placement section. Here you can choose whether to put the new model on faces or vertices of the original, and at what height above these features to put the model. At a height of zero, the model will sit neatly on a face or vertex. Negative values will sink the model into the face/vertex. At -100% the model will be completely buried inside the other model (at least at the face or vertex where it is attached). Positive values cause the new model to float above a face or vertex. You may also choose whether to put a copy of the new model on just one face/vertex, or all those of the same type, shape, or shape and size, or even on all faces/vertices (regardless of shape).

Next is the Size section. Here you can choose how big the added model should be. The size can be based on one of three options:

The above choices are good starting points, but the Scale setting then has the final say. The value you input here is multiplied by the size determined above to get the final size of the added model. For example, set the scale to 0.5 to make the added model half the size it would otherwise be, or 2 for double the size.

The Color section lets you choose how to color the added model. It can use its original colors (e.g. whatever colors it had when you put it in memory), or it can use a single color of your choice. Click on the colored button to select a color.

Finally, there's one more option at the bottom of this dialog bow, Retain original model centre. If this is ticked, then the resulting model will continue to rotate on-screen around the same point it previously rotated around. Otherwise a new model centre is calculated as the centre of mass of all vertices. This may seem off-centre, as it will be dragged closer to the added model, due to the new vertices from that model.

Polyhedron Library

[Not available in demo version]
Stella4D includes a library of over 400 additional models, aside from the many that are built-in. The models in this library were all made using features of the program. They all exist as files on your computer, with the ".stel" file extension, and are located in a folder called StellaLib, under the folder where the program was installed. Feel free to add your own ".stel" files under this folder, and even your own new sub-folders. They will show up in the software.

To select a model from the library you can select the Stella Library option from the category drop-down list on the main toolbar. The sub-categories will then show up in the model drop-down list beside it. Select a sub-category to see the models in that sub-category in the model list, and select one of those to open it.

Alternatively, use "File→Polyhedron List...", hit Ctrl+N, or click the matching toolbar button to open the list of built-in polyhedra. A window opens with a list of all built-in models, including the models in the polyhedron library. If Stella Library in the category list on the left has a "+" beside it, click it to open the list of sub-categories. Select a sub-category to see the list of models in that category on the right, then double-click a model to open it.

Files in the library are organised into the following sub-categories:

You will also find the Geomag Library category, which contains fun models that can be constructed with Geomag's construction kits.

There is also a library of 4D polytopes in the 4D Library category. See Loading 4D Polytopes.

Importing Models

If all else fails, and you can't find a way to create your favourite model in Stella4D, fear not! You can always import it from an external file. Currently the formats supported for import are OFF and DXF. OFF is preferred and more likely to work than DXF. It's a simple format and you should be able to figure it out from the example below. Please be sure to use as much precision in the vertex positions as possible, or you may run into problems. I recommend using 17 decimal places if you are creating files in this format. The OFF models must also be properly closed surfaces (with an even number of faces meeting at each edge). If not, it can't be opened, but you will be offered the choice to create the convex hull of the model in the OFF file, which allows you to get at least some of the vertices in. You may then wish to use Faceting Mode to connect these vertices together in other ways. You could even create OFF files with only vertices (no faces) and let Stella4D figure out how to connect them together for you.

To import an OFF file, simply use "File→Open" as you would to open a .stel file. You will find that the file browser also shows .off files. Select one in the browser to see some information about it at the bottom of the browser, including number of faces, edges and vertices. Note: number of edges may be incorrect, as the format does not require this to be provided correctly in the file. It will probably either be correct, or zero.

3D DXF files may be imported in a similar way, but I fear they often lack the accuracy required for Stella4D.

Here's an example OFF file. Copy the text into a file with a name ending with ".off" in order to open it in Stella4D.


OFF
# OFF file for a square-based pyramid.
# NumVertices, NumFaces, NumEdges (NumEdges is ignored)
5 5 8

# Vertices.  Each line is the XYZ coordinates of one vertex.
-1.0  -0.28284271247461901  1.0
 1.0  -0.28284271247461895  1.0
 0.0   1.13137084989847580  0.0
-1.0  -0.28284271247461906 -1.0
 1.0  -0.28284271247461895 -1.0

# Faces.  Each line has the following format:
#   
4 4 1 0 3     0   0 255
3 1 4 2     255   0   0
3 0 1 2     255 128   0
3 3 0 2     255 255   0
3 4 3 2     128 255   0

Lines starting with "#" are comments and are ignored upon import. The number of edges is also ignored and may just always be given as zero.

There is a 4D version of the OFF file format which can be imported too, and Stella4D also accepts an extended version of this format which specifies cells in addition to faces. The cell section is optional, but Stella4D may have problems figuring out how to put faces together to form cells in some cases without it, and there may be more than one way to do this.

Below is a sample 4D OFF file. Copy the text into a file with a name ending in ".off" in order to open it in Stella4D.


4OFF
# NumVertices, NumFaces, NumEdges, NumCells
5 10 10 5

# Vertices.  Each line is the XYZW coordinates of one vertex.
 0.0                  0.0                  0.0                  1.0
-0.55901699437494745  0.55901699437494745  0.55901699437494745 -0.25
 0.55901699437494745 -0.55901699437494745  0.55901699437494745 -0.25
 0.55901699437494745  0.55901699437494745 -0.55901699437494745 -0.25
-0.55901699437494745 -0.55901699437494745 -0.55901699437494745 -0.25

# Faces.  Each line has the following format:
#  
3 2 3 4
3 1 3 4
3 1 2 4
3 1 2 3
3 0 3 4
3 0 2 4
3 0 2 3
3 0 1 4
3 0 1 3
3 0 1 2

# Cells.  Each line has the following format:
#   
4 0 3 1 2 	255 0 0
4 0 6 4 5 	255 255 0
4 1 8 4 7 	0 0 255
4 2 9 5 7 	0 255 0
4 3 9 6 8 	255 128 255

As with the standard 3D OFF format, the number of edges is also ignored and may just always be given as zero. Colors appear after each cell rather than each face (colors given after faces will be ignored). Each cell is given as the number of faces followed by the index for each face around the cell. As with 3D, you may provide only vertices (with no faces or cells) and Stella4D will create a 4D convex hull for you.

Exporting Models

3D models can be exported in a variety of formats. This is achieved by using items from the "File→3D Export" submenu. Generally the model is exported from whichever view you have selected (e.g. you might export a dual, or a stellation, or even a model morphed between two duals). Available formats are DXF, POV-Ray, VRML, OBJ, OFF and STL. The dimensions of the model exported can be controlled using the Scale menu.

A dialog box provides various options, which vary a bit between formats. Options include:

Note also that the exported model will be oriented the same as it is on screen. This gives you powerful control over the orientation of the exported model, but can also lead to confusion if you didn't want the model to have a random orientation. I suggest you place the model in a nice orientation before exporting, by using one of the items from the "View→Orientation" submenu. Note: 4D models can only be exported as their 3D projections or other 3D aspects, not as raw four dimensional data. You can however import 4D models, see above.

Exporting Images and Videos

2D images and videos can be exported in various formats. To do this, use the "File→Export Image/Video..." menu item (keyboard shortcut: X). An image or video of the current view is exported (make sure you click in the view you want to export first). Videos may include animation of various things including rotation, 4D rotation, net folding, dual morphing, and cross-section depth changing. You may also export tours as videos. Videos may be previewed in the main window.

A dialog box appears with various options. This dialog supports some descriptive tool-tips, so if you get lost, move the mouse over a control to get additional advice. Options in this dialog are as follows:

Below this, options are divided into the following sections: At the bottom of the dialog box are controls for previewing the export. When Preview is ticked, a preview of the image or video to be exported is shown in the main window. In the case of video, playback controls allow you to play the animation forwards or backwards, fast forward, fast rewind, and step one frame forwards or backwards. The preview takes the frame rate into account too, so if you are exporting at 5 frames per second, then the preview playback will also appear jerky, at 5 frames per second. A slider lets you drag the animation to any frame from start to end.

Finally there are a couple of other tick boxes:

Click Export to save the image/video file, or Cancel to abort.

The Fourth Dimension

What is the 4th Dimension?

This is usually the first thing people ask me, and some people ask "Is the fourth dimension time?". The world we experience every day has only three spacial dimensions. Our brains have evolved to have a very intuitive understanding of them, and it seems very "natural" to us that there must be three dimensions, but it's really an arbitrary number and mathematically there's no reason to stop at three. However, our brains have a great deal of trouble grasping any more than three! Maybe this is where Stella4D can help.

So the answer is that there is no fourth spacial dimension in our world, but there are still ways to appreciate it. Mathematically, it just requires the addition of one more mutually orthogonal axis, and indeed using cross-section animations, you can use time as the fourth dimension! See below.

The 3D Analogy

When thinking about a four dimensional object, it is often beneficial to use an analogy with 3D or 2D. By seeing how something works in 2D and 3D, it is often easier to see how it should behave in 4D.

For example, each side of a polygon in 2D is an edge (a 1D line segment). Each side of a polyhedron in 3D is a face (a 2D polygon). So by extension, each side of a 4D polytope is a 3D polyhedron (which we call a cell). It is still hard though to imagine a four dimensional region being bounded by polyhedra.

Rotation is a tricky one. In 3D we require at least 3 values to specify a rotation (heading, pitch, and roll). It is tempting then to think that 4D will require 4 values, but this isn't the case. Consider 2D. Here only one value is required to specify a rotation! So starting at 2D, we have 1, 3, then what? Turns out these proceed as triangular numbers, i.e. 1, 3, 6, 10, 15, ...

The reason relates to how rotation works. In 2D a rotation happens around a point (0D), in 3D a rotation happens around a line (1D), and by extension in 4D a rotation happens around a plane (2D). Again, it's very hard for us to imagine a rotation happening "around" a plane. A better way to think of rotation is to place the emphasis on the coordinates that change, rather than the ones that don't. When we say "rotation around a line", we mean that the points along that line are not moved by the rotation. Instead we could think about a plane in which the rotation takes place. For any-dimensional space, rotation always affects coordinates in only two dimensions. So in 2D there is only one way to choose those two dimensions, and in 3D there are three ways (XY, XZ or YZ). In 4D we have six ways to choose two axes (XY, XZ, XW, YZ, YW or ZW).

A Glimpse of 4D

Although we can't experience a four-dimensional object directly in its original form, there are several ways we can get a glimpse of them in 3D. The following methods are supported in Stella4D: See Views and Layouts for information about changing the view layout and view types.

Loading 4D Polytopes

To get started in 4D, you will want to load one of the 4D polytopes. From the category drop-down list in the main toolbar select "4D Library". The model drop-down list to the right will then show a list of sub-categories containing 4D models. Select one to switch to that category. The list of sub-categories then moves to the category list (on the left) and the model list shows the models available in the selected category (on the right). The first model in that category will be loaded straight away, and you can select other models from that category in the usual way (from the drop-down list, with the green left/right buttons, or with the left/right arrow keys).

Categories 1 through 29 are those defined by Jonathan Bowers and contain all 1849 known uniform 4D polytopes (the set is generally thought to be complete, but not proven so). Note: a few models are repeated in order to group all members of a regiment together, even when some members officially belong to another category. Some additional categories appear after these:

The 4D polytopes all reside in the Stella4DLib folder under the folder where Stella4D is installed. Uniform polytopes are stored not as complete models, but only as their 3D vertex figures (this saves a lot of disk-space). When loading, the full polytope is automatically generated (this can be disabled with "4D→Auto-Generate Polychora from Vertex Figure Files"). Normally when a file name starts with "verf-of-", an attempt is made to use it as a vertex figure and generate a 4D model. You'll notice some file names include something like "(3)" or "(5/2)" at the end. This is required for cases where the choice of faces to be represented by each edge of the vertex figure is ambiguous. The number in brackets represents the face that should match the shortest edge of the vertex figure. Otherwise, for ambiguous cases, a list of possibilities is presented, from which the user may choose the appropriate option.

New polychora can also be created using items on the 4D menu.

Supported Features

Not all the features from 3D are extended for use in 4D. You will notice that many of the menus are greyed out when a 4D model is loaded. Some of the menu labels change for 4D too, the most common being the change from "face" to "cell".

Here are some of the 3D features which are also supported in 4D:

For features that are specific to 4D, see The 4D Menu below.

Here are the main 3D features which are NOT supported in 4D:

Selecting Cells/Faces/Edge/Vertices

Cells/faces/edges/vertices can be selected in various ways in 4D. You don't have to remember all these combinations of Shift/Ctrl and Left/Right mouse clicks though. Just remember to use the mouse tips in the bottom right corner of the window.
Tip: A double-click may be used instead of holding down Shift. E.g. double left-click is the same as Shift+Left-click.

4D Projection

The base, dual, and base + dual views show a 4D polytope projected into 3D. The projection may be either orthogonal or perspective, and front-facing or back-facing cells may be hidden from the view (see The 4D Menu).

In the default mode, the following operations are available with the mouse.

The normal mouse navigation controls continue to work, allowing you to rotate the displayed 3D projection in the usual ways. But if you want to actually rotate the model in 4D, before being projected into 3D, then you need to enter 4D Tumble Mode ("Selection→Mouse Selection Modes→4D Tumble Mode" or the matching toolbar button). Here the following mouse operations are available.

You probably have to try each of the above to really get a feel for them. Mouse inertia is supported for all of these, so if you release the mouse button while still moving the mouse, the rotation will continue on its own.

The first two operations above are view-dependent. That is, the direction of rotation relative to the model depends on which direction you are looking at it from. This makes it intuitive regardless of your viewing direction. The second two operations are model-dependent, and behave the same regardless of your viewing direction. The difference is particularly noticeable if you rotate the projected model in 3D while it continues rotating in 4D.

You can also choose from some specific 4D orientations of interest by using the "4D→Projection Direction" submenu.

4D Nets

In 4D, nets are 3D figures, consisting of polyhedra (cells) connected together at faces. Use the Unfolded Net view to see these for any loaded 4D polytope ("View→View Nets→Unfolded Net"). Stella4D attempts to generate nets with as much symmetry and aesthetic appeal as possible.

One may ponder the usefulness of 3D nets for 4D polytopes, given that we could never fold them up in our world to form the model of interest, but they are still a useful way to see how the cells of a polytope fit together, and have a beauty all of their own.

Note: in 3D nets are generated using only the externally visible parts of faces. In 4D, since the nets can never be folded up anyway, intersections between cells are ignored, and complete intact cells are used in the nets. Nets are of most use in understanding convex polytopes, so this difference is not too important.

Various interesting operations are available in the Unfolded Net view:

Manually rearranged nets are remembered in the .stel file. If you want to build up the net one cell at a time, rather than rearranging an already complete net, you can use "Nets→Maximum Cells per Net". Set that value to "1" to force every cell into a separate net. Then you may use Ctrl+Right-click to grow the net one cell at a time.

The 4D Menu

The 4D menu contains the following items.

Credits

Stella4D was written by Robert Webb.

I use FreeImage (http://freeimage.sourceforge.net, under the FreeImage Public License version 1.0) for importing and exporting 2D images, which in turn uses various other libraries. Below is a list of credits regarding these libraries:

Wood and stone textures obtained from http://www.mayang.com/textures

The End!

Hopefully you'll be able to work the rest of the interface out on your own! There are lots of menus to look through. Let me know if you have any problems or can't figure out how to do something. I'll be interested to hear what you think!

Copyright © 2001-2014, Robert Webb
Stella Home Page: http://www.software3d.com/Stella.php