Symmetry ← Mechanical Symmetry

Symmetry Mechanical

Generate sets of N points on the unit sphere with different algorithms, watch the search run, and compare the results, now asking for isotropy of the edge, face and solid inertia tensors as well as the vertex one.

Features

Algorithms

Twelve side by side

Closed-form antiprisms, the Fibonacci spiral, orbit searches, gradient descent on two energies, grid searches, isotropic polish, symmetric orbit recipes and the mass-model-aware polish.

Live

Watch the search work

The picture updates as the search improves, with a convergence plot of the residual and a slow-motion switch for the fast algorithms.

Mass models

Four inertia tensors

Ask for isotropy of the vertex, edge, face and solid models, alone or together: up to 23 equations for N points.

Views

Points, mesh, dual

The points on the sphere, their convex hull, the dual (spherical Voronoi) polyhedron, or all four panes with one camera.

Numbers

Statistics that mean something

Residual, Thomson energy against the literature minimum, minimum separation, covering radius, Voronoi cell counts and the single-matrix test.

Compare

Compare and report

Algorithms against point counts in a table and three charts, exported as CSV or a PDF report; open any set in Symmetry Explorer or Symmetry Domer.

Symmetry Mechanical main window with 32 points on the sphere in four views
The main window with 32 points from the symmetric orbit recipes, all four views: the points on the sphere (top left), their convex hull (top right), the dual with its five- and six-sided cells (bottom left) and the convergence plot (bottom right). The numbers on the left show a residual near 1e-16 for all four mass models.

What it is

The Esferator experiments looked for point sets whose inertia tensor is isotropic and whose centre of mass sits at the origin (a spherical 2-design), or that minimise an electrostatic-type energy. Symmetry Mechanical puts those algorithms side by side. Each is run for a chosen number of points, shows its work live, and reports how good the result is.

Residual is the single number used everywhere: the distance of the second-moment matrix from isotropic (divided by N) combined with the centre-of-mass offset. Zero means a perfectly isotropic, balanced set. Below 1e-8 a result is called solved.

The window

Drag with the left mouse button to rotate and use the wheel to zoom.

Algorithms

AlgorithmIdeaCostMax N
Closed-form antiprism familyEven N. Two interleaved rings at height ±1/√3 are exactly isotropic; only the twist is chosen.O(N²)4000
Fibonacci spiralGolden-angle spiral; nearly uniform, no mechanical symmetry. The seed for the gradient methods.O(N)5000
Orbit search, two rotationsPoints are the orbit of M = (−R₁)·R₂. A coarse scan whose resolution grows with N (orbit errors build up along the N steps) feeds a zoom refinement of its twelve best separate cells.S³·N120
Orbit annealingSimulated annealing over the two parameters of M = −R. Even N reaches the closed form; odd N is best effort.steps·N1000
Gradient descent, ThomsonAll 3N coordinates, minimising Σ 1/r.iters·N²600
Gradient descent, logarithmicAll 3N coordinates, minimising Σ −ln r.iters·N²600
Isotropic polish (Gauss–Newton)Seeds a well-spread set (Thomson minimum for N ≤ 400, Fibonacci spiral above), then solves the 8 isotropy and centre-of-mass equations with minimum-norm Newton steps. Falls back to random restarts when it stalls. Solves every N ≥ 6 tried (N = 5 has no solution) and stays near the energy minimum.O(N) per step5000
Symmetric orbit recipes (T, O, I groups)Builds the set from orbits of a tetrahedral, octahedral or icosahedral group (orbits on the symmetry axes, on mirror planes, general orbits). Every such set is isotropic in all mass models by symmetry (the group acts irreducibly on R³), so the residual is at rounding level; the free orbit positions are tuned for the smallest Thomson energy. Reproduces the known Thomson minima for N = 12, 24, 32, 48, 72 and lands within 0.6 % elsewhere. Supports only N reachable by a combination of orbit sizes (otherwise it returns a Fibonacci spiral and says so).O(restarts · N²)200
Mechanical polish (selected mass models)Seeds a Thomson minimum (N ≤ 400) and solves the isotropy equations of the ticked models by minimum-norm Gauss–Newton steps on the frozen hull; the Jacobian is built from local finite differences, so a step is cheap. With all four models it finds sets with all four tensors isotropic for N = 6 (octahedron), 8 (cube), 10 (octahedron + tetrahedron), 12 (icosahedron), 13 and every N from 14 up to 100 tested, in a fraction of a second. For N ≥ 13 the solutions generally have no geometric symmetry. N = 7, 9 and 11 are not reached by any start (about 1500 random starts each): there are fewer unknowns (2N−3) than equations (23) and no union of orbits of the tetrahedral, octahedral or icosahedral group has those sizes, so a solution is not expected. Nearly flat faces are snapped to exactly flat so a cube comes out as an exact cube.O(N²) per step (hull)1000
Orbit annealing (selected mass models)The rotoinversion orbit (as in the orbit annealing above) scored with the residual of the ticked models. Two parameters only, so it solves the extra models only for special N.steps·N²100
Grid search, free pointsThe original brute force: every point on an angular grid, then zoomed.S^(2N−3)7
Grid search, symmetric latitudesPoles fixed, equally spaced longitudes, only latitudes searched.S^(N−2)12

The orbit algorithms can only produce sets that are a single cyclic orbit, so the cube and the icosahedron are out of their reach by group theory, not for lack of search.

Mass models

Symmetry Explorer reports four inertia tensors for a solid, one for each way of distributing mass on it:

Each tensor is isotropic when its three eigenvalues are equal, which is five equations (the two differences of the diagonal and the three off-diagonal entries are zero). The centre of mass at the origin adds three. All four models together are 23 equations in the 2N−3 free coordinates of N points, so for N of about 14 and above generic solutions are expected, and they need not have any geometric symmetry at all. For small N only highly symmetric sets can do it: the Platonic solids satisfy all four because any tensor invariant under a group with two axes of order 3 or more is isotropic.

The Mass models box selects which tensors enter the residual that is plotted, reported and used for solved, and which ones the two mechanical algorithms drive to zero. The five anisotropy numbers of a model are (Ixx−Iyy, Iyy−Izz, Ixy, Ixz, Iyz) divided by the trace, so the four models are on a comparable scale.

Triangulation and the edge model

The faces, solid and edges depend on the convex hull of the points, which is a triangulation. The shell and solid tensors are continuous when the triangulation changes (four coplanar points describe the same polyhedron either way). The wireframe is not: a diagonal appears or vanishes. During the search every hull edge is therefore weighted by a smooth function of its dihedral angle, zero for the diagonal of a flat face and one for a real edge, so the objective is continuous and, for exactly flat faces, equals the numbers Symmetry Explorer shows. The tensors reported in the statistics panel use Explorer's own pipeline (coplanar triangles merged into faces).

Views

For N above 1500 the mesh is only rebuilt for the final result, and above 5000 it is not built.

The dual view of Symmetry Mechanical for 32 points
The Dual view for the same 32 points: twelve pentagons and twenty hexagons, coloured by their number of sides.

The numbers

Residual, CoM offset, anisotropyHow far the set is from isotropic and balanced (the vertex model).
Residual [V+E+…]The residual of the ticked mass models, the one plotted and used for solved.
By mass modelΔ is the relative spread of the inertia eigenvalues (as in Explorer) and aniso the five-component anisotropy, for each of the four models.
Inertia eigenvalues, spreadThe three principal moments of N unit masses and their relative spread. Equal moments mean no preferred axis.
Thomson energyΣ 1/r over all pairs, shown with the best known (literature) global minimum when it is tabulated: N = 2 to 72 and 100. These values were re-derived here by multi-start minimisation and agree to 2·10⁻⁹.
Log energyΣ −ln r over all pairs.
Min separationThe smallest angle between two points.
Covering radiusThe largest angular distance from any point of the sphere to its nearest point. Exact, from the mesh.
Voronoi cellsHow many cells have 4, 5, 6… sides.
Single matrixWhether one orthogonal matrix M visits all N points as p, Mp, M²p …, and of which order (N ≤ 200). Closed means M also returns the last point to the first: the set is a regular orbit of a cyclic group of isometries. The cube, the icosahedron and the dodecahedron are not; the tetrahedron (order 4), the octahedron (order 6) and the antiprisms are.

Stereo (red / cyan anaglyph)

The Stereo group has the same controls as Symmetry Explorer:

Colours are shown as brightness in stereo, because each eye only sees one channel. The settings are remembered between sessions.

Symmetry Mechanical in stereo mode showing the point set as a red and blue anaglyph
The point set in stereo mode: red and blue copies of the points seen from slightly different positions.

Comparison

Compare… runs several algorithms over several point counts and tabulates the outcome.

The comparison window of Symmetry Mechanical with its table and three charts
The comparison window after a run of all the algorithms at several point counts: the table (top right), and the charts of residual, time and energy excess against N, one line per algorithm.

Gamepad

A gamepad works as soon as it is connected; there is nothing to configure. It only responds while the Symmetry Mechanical 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: reset view LB: orbit path Left stick ↕ zoom · ↔ stereo depth D-pad ↕ points N · ↔ algorithm Back: help RT: (unused) RB: slow motion Y: stereo on / off B: stop A: run X: next view Start: compare Right stick: orbit

Outline colours: blue = view, red = selection and run, teal = display options.

The D-pad and the face buttons repeat while held where it makes sense (the lists). The stick buttons do nothing.

Notes

Copyright and licence

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

Symmetry Mechanical 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 Mechanical uses OpenTK and its GLControl (MIT licence), the GLFW library (zlib licence) and QuestPDF for the PDF reports (QuestPDF Community License; QuestPDF includes Skia, HarfBuzz, FreeType, qpdf and other open-source components). Their copyright notices and licences are on the Licences page and in the Help\licenses folder.