Symmetry ← Mechanical Symmetry

Symmetry Explorer

An interactive viewer that finds every exact symmetry of a polyhedron, lets you animate each one, and shows whether the solid's mass distribution is mechanically symmetric. It also has a red-cyan stereo mode.

Features

Solids

40 polyhedra and your own

Platonic, Archimedean and Catalan solids, irregular controls and tuned bipyramids, plus any point set from a CSV or OBJ file (up to 400 points).

Symmetry

The exact symmetry group

Every rotation, reflection, inversion and rotoreflection, each verified to map the solid exactly onto itself, with the closure of the group checked.

Animation

See what a symmetry does

Play any element smoothly or one exact step at a time, follow a vertex and an edge, and read when the solid is back at its start.

Mechanics

Four inertia tensors

Eigenvalues for point masses at the vertices, a wireframe, a shell and a solid; iso=True marks the mechanically symmetric ones.

3D

Red–cyan stereo

An anaglyph with adjustable depth and ink levels for your glasses, remembered between sessions.

Control

Mouse, gamepad, command line

Drag and scroll, or use any gamepad with nothing to configure; open a point file straight from the command line.

Symmetry Explorer showing the pentagonal bipyramid with a five-fold rotation axis selected
The pentagonal bipyramid with a 5-fold rotation selected and playing: its axis is drawn through the solid, the status line gives the step and the orbit of vertex 0, and the panel on the left lists the group (|G| = 20) and the four inertia tensors. Only the vertex model is isotropic for this bipyramid.

What it is

Pick one of 40 polyhedra and the program computes its full symmetry group: every rotation, reflection, inversion and rotoreflection that maps the solid exactly onto itself. Each symmetry can be selected and played back as a smooth animation, so you can see what it does to the solid and how often it takes to return to the start.

Alongside the geometry it reports the solid's inertia tensor under four mass models. If the tensor is isotropic (all three eigenvalues equal), the solid is "mechanically symmetric": it spins the same about every axis through its center of mass.

The window

AreaWhat is there
Left columnCategory and Polyhedron selectors, the display checkboxes, the Stereo group, the element list, the playback buttons, and the status and info texts.
ViewportThe 3D view of the solid. Drag and scroll to look around.
Status lineDescribes the currently selected symmetry and the animation step (see Animating).

Choosing a solid

  1. Choose a Category: Platonic, Archimedean, Catalan, Irregular or Bipyramid.
  2. Choose a Polyhedron from that category. The solid loads immediately, its symmetry group is computed and verified, and the element list and info panel refresh.

Loading a new solid clears the selected symmetry and resets the animation. The full list is in the catalog.

Symmetry Explorer showing the truncated icosahedron, an Archimedean solid
A solid from the Archimedean category, the truncated icosahedron (the football): |G| = 120 and all the inertia tensors are isotropic, as for any solid with the icosahedral symmetry.

The Color button picks the viewport background color. This matters for stereo mode, where it sets the paper color the ink contrasts against.

Opening a point set from a file

The Open… button next to the polyhedron list loads a point set saved as CSV (index,x,y,z or plain x,y,z; lines starting with # are ignored) or as a Wavefront OBJ (only the v lines are used). Symmetry Explorer builds the convex hull, merges coplanar triangles into faces, finds the symmetry group exactly as for the built-in solids, and lists the set under the category Opened point sets. Sets saved by Symmetry Mechanical open directly. Up to 400 points are accepted (120 if the points are not all on one sphere). The same file can be given on the command line: Symmetry.App.exe points.csv.

Viewing in 3D

Symmetry elements

The Symmetry elements list shows one row per symmetry of the loaded solid. Double-click a row to select it. The selected symmetry's axis is drawn through the center of the solid.

ColumnMeaning
#Row number in the list (sorted by kind, then matrix order).
KindIdentity (does nothing), ProperRotation (turn about an axis), Reflection (mirror through a plane), Inversion (point reflection through the center), RotoReflection (rotation combined with a reflection across the plane perpendicular to the axis).
DetDeterminant of the matrix: +1 for proper (rotations), -1 for improper (anything that flips handedness).
MatOrdMatrix order: the smallest k such that applying the symmetry k times returns the whole solid to its starting orientation.
Orbit(v0)The actual number of distinct positions vertex 0 visits under repeated application. This can be smaller than the matrix order (a vertex lying on a rotation axis never moves, for example), so the two are shown separately.
AxisThe rotation axis, or the mirror plane's normal for reflections, as a unit vector. Inversion has no axis (-).
Every listed symmetry is verified exactly: its matrix is accepted only if it maps the whole vertex set onto itself, not merely because it looks orthogonal.

Animating a symmetry

Select an element, then use the playback buttons:

ControlAction
▶ / ⏸Play or pause the animation of the selected symmetry.
|◀ and ▶|Step back or forward by exactly one application of the symmetry (one full "M" step).
ResetReturn to the untransformed solid (step 0).
Speed slider1 (slow) to 10 (fast). In continuous mode it sets how fast the motion runs. In discrete mode it sets how long each step is held.
Discrete stepsUnchecked: smooth continuous motion. Checked: the solid jumps straight from one exact state Mk to the next and holds each one, so every iteration is clearly visible. Toggling it snaps to the nearest exact state.

How each kind moves

Reading the status text

The status area under the viewport shows the kind and angle of the selected symmetry, the current step / matrix order, the orbit length of vertex 0, and two flags:

Display options

OptionEffect
Show facesDraws translucent, flat-shaded faces on top of the wireframe. Off by default shows the wireframe only.
Highlight trackedMarks one feature so you can follow the motion: vertex 0 (large gold dot), its partner on the tracked edge (cyan dot), the tracked edge (thick magenta), the tracked face (orange, when faces are shown), and all other vertices as small red dots.
ColorBackground color. Line colors adapt continuously so they stay readable on both light and dark backgrounds.

When Stereo is on, faces and highlight are disabled (greyed out) and the solid is drawn as plain wireframe, because translucent fills and a multi-color palette do not survive red-cyan filtering.

Group and inertia panel

For the loaded solid the panel reports:

iso=True means all three eigenvalues are equal, i.e. the solid is mechanically symmetric under that mass model: it has the same moment of inertia about every axis through the center of mass.

All three must be equal. The moment of inertia about a direction n is nᵀ·I·n, and that is the same for every direction only when the tensor is a multiple of the identity. If just two eigenvalues match (like a spinning top or a stretched bipyramid) the solid is equal only about axes in one plane, plus the distinguished axis. That is axial symmetry, not full mechanical symmetry.

Stereo (3D glasses)

Stereo mode renders the solid as a red-cyan anaglyph for 3D viewing with red-cyan glasses. Tick Stereo (anaglyph: red-cyan glasses) and put the glasses on.

The icosahedron drawn as a red and blue anaglyph in Symmetry Explorer
The icosahedron in stereo mode: one wireframe for each eye, drawn in red and in blue. Through red-cyan glasses the two merge into one solid in depth.

Controls

ControlPurpose
DepthSeparation between the two eye views, 0 to 50. More separation gives stronger depth but eventually becomes hard to fuse. Start low and increase.
RedInk level for the red-filter eye, 0 to 100.
BlueInk level for the cyan-filter eye, 0 to 100.
Swap red/cyanExchanges which eye gets which view. On by default. If depth looks inside-out (near parts look far) toggle it.
Color (background)The paper the ink is drawn on. Light backgrounds usually give easier fusion.

Why the sliders need tuning

Stereo only works when each eye sees its own picture and nothing of the other eye's. Real glasses and screens are never perfect filters, so a bit of one image leaks into the wrong eye (ghosting) and the 3D effect falls apart. The Red and Blue sliders are how you fix that: you adjust them until the red lens shows only its own lines and the cyan lens shows only its own.

Plan on a short tuning pass the first time you use stereo, and again whenever you change the background color. A new background changes what "visible" means for each eye, so the old slider positions will no longer be right. Your setup is remembered between sessions, so this is a one-time job per background.

A practical routine: close one eye at a time. With only the red-filtered eye open you should see one clean set of lines. Do the same with the cyan-filtered eye. Move the matching slider until the other eye's image is gone while your own stays clearly visible, then open both eyes and adjust Depth.

How the two sliders work

Each eye's image is drawn into only one color channel: the red eye's lines change only the background's red channel, and the cyan eye's lines change only its blue channel. Through its own lens each eye therefore sees lines against the plain background, and through the other lens that image is invisible.

The slider value is the level written into that channel. Lines are visible when that level is different from the background's own level in the same channel, and disappear when it equals it.

The two eyes may see opposite polarity (one dark line image, one light line image) and the brain still fuses them into a single 3D view. Treat each slider as an independent calibration: nudge Red and Blue until the image feels comfortable and the lines of both eyes look equally strong through your particular glasses.

Persistence

The stereo on/off state, Swap, Depth, Red, Blue and the background color are saved when you close the program and restored on the next start. They are stored in %APPDATA%\SymmetryExplorer\stereo.json. Delete that file to return to the defaults.

Gamepad

A gamepad (wired or Bluetooth) works as soon as it is connected; there is nothing to configure. It only responds while the Symmetry Explorer window is the active window. The four face buttons are called A, B, X and Y after their usual layout (A at the bottom, Y at the top); LB and RB are the shoulder buttons and LT and RT the triggers.

YAXB LT: speed − LB: step back Left stick ↕ zoom · ↔ depth D-pad ↕ polyhedron · ↔ category Back: stereo on/off RT: speed + RB: step forward Y: previous element B: reset animation A: next element X: play / pause Start: discrete / continuous Right stick: orbit

Outline colours: blue = view, red = lists, teal = animation.

ControlAction
Right stickOrbit the solid (the same sense as dragging with the mouse).
Left stick up / downZoom in / out.
Left stick left / rightDecrease / increase the stereo Depth slider.
D-pad up / downPrevious / next polyhedron in the list.
D-pad left / rightPrevious / next category (the polyhedron list then starts at its first entry).
Y / AMove to the previous / next symmetry element. It is selected straight away, so there is no double-click.
XPlay / pause the animation.
BReset the animation to its starting position.
LB / RBStep the animation back / forward by one whole step.
LT / RTAnimation speed down / up.
Back (Select)Stereo anaglyph on / off.
StartSwitch between discrete and continuous animation.
The D-pad, Y, A and the triggers repeat while held. The lists stop at their first and last entries rather than wrapping around. The stick buttons do nothing, so pressing them by accident is harmless.

Quick recipes

See what a rotation does
  1. Pick Platonic → Cube.
  2. Double-click a ProperRotation row with MatOrd 4.
  3. Press ▶ and watch the 4-fold turn. The status flag reports when the cube is back at start.
Step through iterations one at a time
  1. Select an element, tick Discrete steps.
  2. Press ▶ at speed 2–3, or use ▶| to step by hand.
  3. Tick Highlight tracked to follow vertex 0 and one edge.
Compare mechanical symmetry
  1. Load Platonic → Icosahedron: all four mass models show iso=True.
  2. Load Irregular → ElongatedBox: iso=False.
  3. Load Bipyramid → Bipyramid5: the vertex model is isotropic even though its group has a main axis.
Set up stereo from scratch
  1. Choose a light background with Color and tick Stereo.
  2. Set Red and Blue to 0 (dark lines on white) and Depth around 15.
  3. Put the glasses on, raise Depth until depth feels natural, then tune Red and Blue.
  4. If near and far are swapped, toggle Swap red/cyan.

Solid catalog (40 solids)

CategoryCountSolids
Platonic5Tetrahedron, Cube, Octahedron, Icosahedron, Dodecahedron
Archimedean13Cuboctahedron, Truncated Tetrahedron, Truncated Octahedron, Truncated Cube, Rhombicuboctahedron, Truncated Cuboctahedron, Icosidodecahedron, Truncated Icosahedron, Truncated Dodecahedron, Rhombicosidodecahedron, Truncated Icosidodecahedron, Snub Cube, Snub Dodecahedron
Catalan13Rhombic Dodecahedron, Triakis Tetrahedron, Tetrakis Hexahedron, Triakis Octahedron, Deltoidal Icositetrahedron, Disdyakis Dodecahedron, Rhombic Triacontahedron, Triakis Icosahedron, Pentakis Dodecahedron, Deltoidal Hexecontahedron, Disdyakis Triacontahedron, Pentagonal Icositetrahedron, Pentagonal Hexecontahedron
Irregular5Stretched Tetrahedron, Elongated Box, Cube with One Corner Cut, Octahedron with One Vertex Pulled, Icosahedron with One Vertex Cut. These are low-symmetry controls for comparison.
Bipyramid4Right n-gonal bipyramids for n = 3, 5, 7, 9, each tuned to a height that makes its vertex-mass inertia tensor isotropic.

Mathematical background

The full write-up is in Mechanical_Symmetry_in_3D.pdf. The command-line harness in Symmetry.Console re-runs all verification checks (group closure, isotropy and animation consistency).

Troubleshooting

ProblemFix
Nothing animates when I press ▶Select a symmetry first by double-clicking a row. Identity does not visibly move.
The stereo image looks flat or gives double visionReduce Depth, view from farther away, and make sure the glasses have red over the left eye (or toggle Swap red/cyan).
The stereo lines disappearThe Red or Blue slider is at the background's own level for that channel (for example 100 on white). Move it away from that value.
Near and far appear swappedToggle Swap red/cyan.
Faces and Highlight are greyed outThey are unavailable while Stereo is on. Untick Stereo.
Viewport is black or blankThis is a graphics-driver/OpenGL context problem. The program needs OpenGL 3.2 with the compatibility profile.

Copyright and licence

Symmetry Explorer © 2026 Joaquín Obregón Cobo. All rights reserved.

Symmetry Explorer is free to use, for any purpose, but it is not open source: it may not be redistributed or modified without permission, and it is provided as is, without warranty. The full terms are in LICENSE.txt, next to the program.

Third-party software

Symmetry Explorer uses OpenTK and its GLControl (MIT licence) and the GLFW library (zlib licence). Their copyright notices and licences are on the Licences page and in the Help\licenses folder.