Instant Field-Aligned Meshes
Jakob, Tarini, Panozzo, Sorkine-Hornung — ACM Trans. Graph. 34(6):189 (SIGGRAPH Asia 2015)
Explained assuming: you're comfortable with meshes, tangent planes, and vector fields on surfaces at a
working level. No deep learning here — this is classical geometry processing. The specific new
vocabulary (orientation/position fields, extrinsic smoothing) is explained from scratch below.
The problem it solves
"Retopology" — converting a messy, dense, or arbitrary mesh into a clean quad-dominant one with edges that follow the object's actual features — existed before this paper, but the state of the art required global optimization: solving for a consistent parametrization of the entire surface at once, typically posed as a mixed-integer problem. That produces high-quality results but is slow, sometimes minutes per model, which rules out any interactive workflow where an artist wants to nudge a parameter and see the mesh update immediately.
This paper's whole contribution is a reformulation that replaces that expensive global solve with local smoothing operators — the same flavor of cheap, iterative, embarrassingly parallel operation as Laplacian mesh smoothing — while still producing quad-dominant output that respects curvature and sharp features. The tradeoff: it's not globally optimal, but it's fast enough to be interactive, and it works directly on point clouds as well as meshes, since the local operators only need a notion of "nearby points," not a watertight manifold.
Two fields, one goal each
Orientation field — which way should the grid lines run?
At every point on the surface, imagine a cross: two perpendicular tangent-plane directions. A cross is invariant under 90° rotation — rotate it a quarter turn and it looks identical — which is why this is called a 4-way rotationally symmetric field, or 4-RoSy field (also called a cross field). This cross defines the local "grain direction" the eventual quad edges will follow, the same way a wood grain or a hair-combing direction has a preferred direction at every point, but no single consistent direction can be chosen globally without some points where it becomes ambiguous.
The field is built to satisfy two competing goals at once, balanced by an energy the paper minimizes with iterative local smoothing (a Gauss-Seidel-style pass, visiting each vertex and re-averaging it against its neighbors, repeated until convergence): stay as smooth as possible from one point to its neighbor, while also aligning with the surface's principal curvature directions and any sharp edges the user flags. A flat cylindrical surface (like a soda can's body) has an obvious, stable curvature direction to align to; a sphere has none anywhere consistent — which is exactly why singularities are inevitable, discussed below.
Position field — where do the actual quad-mesh vertices go?
Given the orientation field, imagine a periodic square grid — spacing ρ, a user-chosen target edge length — laid down in each point's tangent plane, aligned to that point's cross. The position field is the second smoothing pass: nudge each point's grid so that neighboring points' grids come as close as possible to sharing common lattice points. Where two neighbors' grids agree, a real quad-mesh vertex and edge can be placed there. This is also solved by local smoothing, not a global solve — each point only ever looks at its immediate neighbors.
Singularities are unavoidable, and this method doesn't try to minimize them globally
Both fields can develop singularities — points where the field can't be locally smooth, forcing a mesh vertex there to end up with valence other than 4 ("irregular"). This isn't a bug: a perfectly smooth 4-RoSy field can't exist everywhere on a curved, closed surface (the same topological obstruction — total field index tied to the surface's Euler characteristic — that means you can't comb a hairy ball perfectly flat). Some irregular vertices are structurally necessary.
Practical properties
| Property | Detail |
|---|---|
| Input | Triangle mesh, or a raw point cloud (k-nearest-neighbor graph substitutes for mesh adjacency) |
| Output | Mixed quad/triangle, pure quad-dominant, or pure triangle mode, user-selectable |
| Solve method | Iterative local smoothing (Gauss-Seidel-style), no global linear system or integer program |
| Controls | Target edge length / face count, sharp-feature and boundary alignment thresholds |
| Speed | Interactive — designed so a user can tweak parameters and see the result update live |