Advanced mode

Topology tools

Six operations that change how a mesh is built rather than what shape it is. Unglamorous, and the difference between a pattern that works and one that almost works.

Two dual meshes, and which is which

There are two dual mesh entries in the panel and they are not the same thing. Dual mesh in this section rebuilds the mesh once and is done — an applied result you can keep editing. Live dual mesh, in its own section above, attaches a Geometry Nodes modifier with thickness, growth and variation controls that stay adjustable. Use the live one when you want a shell; use this one when you want the topology.

Dual mesh

Every face becomes a vertex and every vertex becomes a face. A quad grid becomes a quad grid offset by half a cell; a triangulated sphere becomes a hexagonal one. This is the operation behind every honeycomb result in Rhea.

The interesting part is what happens at an open boundary, where a vertex has no complete ring of faces around it. Most implementations handle this badly. Rhea gives you three answers:

Boundary

Ignore
Boundary vertices produce no face. The dual is smaller than the original and its edge is ragged. Correct when the boundary is arbitrary and you do not care about it.
Close
The partial ring is closed back on itself, producing a face at every boundary vertex. Keeps the outline of the original, at the cost of some oddly-shaped cells along it.
Extend
The ring is extended out to the boundary edge midpoints before closing, giving well-shaped cells that reach the original edge. The one you usually want, and the most expensive.

Fan subdivide

Splits each face into a triangle fan from its centre. Every face becomes as many triangles as it had corners.

  • Works on ngons, which most subdivision does not, so it is a reliable way to make an imported mesh tractable.
  • Creates a vertex at every face centre, which is what several field generators want.
  • Respects Selected only, so you can raise the density of one region without touching the rest.

Rotate faces and rotate edges

These two fix the artifacts nobody can name until they see them.

Rotate facessteps ±8
Cycles the corner order of each face. Nothing about the shape changes — but everything that depends on “the face's first corner” does. This is the fix for a tessellation where copies are correctly placed but inconsistently oriented.
Rotate edges
Rotates each edge to connect the other two vertices of its two faces. Changes which diagonal a quad pair is split along, which fixes badly-shaped triangles and redirects the flow of a triangulated mesh.

How to spot a winding problem

Turn on the face orientation overlay. It draws an arrow per face showing the first-corner direction. If the arrows are consistent and the tessellation is not, the problem is elsewhere. If the arrows are scattered, Rotate faces is your tool.

Lloyd relax

Centroidal relaxation: each vertex moves toward the average of its neighbours, repeatedly, until the mesh is evenly spaced. This is the tool for cleaning up an uneven mesh before patterning it.

Iterations1 – 200
Number of passes. Ten is a light clean-up; a hundred substantially redistributes the mesh.
Factor0 – 1
How far each vertex moves toward its target per pass. High values converge faster and can oscillate; 0.5 is stable and quick enough.
Pin boundary
Holds boundary vertices in place. On by default — without it, an open mesh shrinks toward its own centre as the boundary relaxes inward.
Preserve shape
Slides vertices across the original surface rather than letting them leave it, by projecting each one back onto the pre-relax mesh every iteration. On by default. Turn it off and enough iterations will smooth your model into a ball.

Adaptive subdivide

Subdivision level per face driven by an attribute, so detail lands where it is needed and nowhere else. Faces above the threshold divide; faces below do not.

Attribute
Float attribute or vertex group driving the level. Any field works — curvature is the obvious choice, and gives you a mesh dense where it bends and sparse where it is flat.
Max level1 – 4
Highest level any face may reach. Four is sixteen times the linear density and two hundred and fifty-six times the faces, so treat it with respect.
Threshold0 – 1
Driver value above which a face is subdivided. Lower means more of the mesh qualifies.

Transitions between levels are crack-free: T-junctions on the higher-level side are resolved with triangle fans, so there are no holes and no shading seams where the density changes. That resolution is the whole difficulty of adaptive subdivision, and the reason a naive implementation produces a mesh full of gaps.

Triangles to quads

Greedy pairwise merge of triangles into quads, ranked by how coplanar and how well-proportioned the resulting quad would be.

Max angle0 – π
Largest normal deviation between two triangles that may be merged. Low values keep hard creases as creases; high values will flatten them into single quads.
Max aspectfrom 1
Largest edge-length ratio a merged quad may have. Prevents long thin quads that look fine in wireframe and shade terribly.

Not every triangle can be paired — an odd count guarantees at least one left over. The result line reports how many quads were formed and how many triangles remain, so you know whether it is worth running the cleanup a second time.

When you need this

  • Before Patch mode, which is defined on quad grids and cannot interpolate across triangles.
  • After importing an STL or an OBJ from a CAD tool, which arrive triangulated and produce twice as many tessellated copies as you expected.
  • Before panelisation, since a planar quad panel is a manufacturable thing and a triangle soup is not.

In edit mode

These tools also appear under Mesh → Rhea in edit mode, and respect the current selection there. That is often the faster route: select the region that needs fixing and run the tool on it alone rather than on the whole object.