B-REpresentation · Mechanical engineering · ai supported CAD modeling
Manufacturing-Constrained Primitive Fitting for Deterministic Mesh-to-B-Rep Reconstruction of Sheet-Metal Parts
Peter Glova, Eduard Remetei · Valta Engineering s.r.o. — August 2026
Abstract
Recovering editable CAD representations from meshes is normally posed as a domain-agnostic inverse problem: a general operator vocabulary is searched, and a geometric fidelity measure such as volumetric Intersection-over-Union or Chamfer Distance decides what counts as a good reconstruction. This paper examines what changes when the manufacturing process of the target part is known in advance. We restrict attention to sheet-metal bending, and we make the process constraints part of the representation rather than applying them as validation or repair after the fit.
We present SheetFit, a deterministic two-stage mesh-to-B-Rep pipeline. Stage 1 (skeletonization) recovers a constraint graph of planar walls, bend axes, bend angles and radii from a triangulated mesh. Stage 2 (solidification), the subject of this paper, reconstructs each wall outline as a sequence of line and arc primitives and lifts the result into a solid. The central contribution is the outline representation: an arc-length/curvature chain anchored at analytically known fold seams, in which tangency between primitives and closure of the loop are algebraic identities rather than constraints that must be enforced and repaired. Around it we introduce a role separation between the datum plane a wall is attached to and the measurement plane its evidence is read from; an evidence source built from projected cover-face boundary loops rather than cross-section slices; hypothesis selection by likelihood-ratio tests against a propagated parameter covariance rather than fixed tolerance bands; and identifiability — an element whose parameters are not determined by the assigned evidence — as a first-class validity condition.
We evaluate on four industrial sheet-metal bodies (fourteen wall nodes) under a measurement protocol with pre-stated decision rules, frozen baselines, double-run determinism checks, and mandatory reporting of counterexamples to every stated hypothesis. On every node that reconstructs, the best legal chain in the enumerated hypothesis space attains the body’s measured tessellation noise floor, indicating that the representation and the constrained solver are adequate and that residual failures are located in segmentation and selection. Three of fourteen nodes remain unreconstructed and are reported as such. We additionally document nine negative results, several of which contradict recommendations in prior work — most directly, that mesh decimation applied as preprocessing starves the primitive fit rather than improving it.
Keywords: reverse engineering, mesh-to-CAD, B-Rep reconstruction, primitive fitting, sheet-metal bending, design for manufacturing, constrained optimization, deterministic geometry processing.
1 Introduction
Parametric CAD represents geometry as a structured sequence of operations with continuous parameters, a form that supports editing and constraint-based modelling in a way that raw meshes and boundary representations do not [Camba et al. 2016; Li et al. 2010]. Recovering such a representation from raw geometry is an inverse problem in which discrete choices (operation type, ordering, segmentation) and continuous parameters (dimensions, placements) must be inferred jointly, over a search space that is combinatorial and non-convex, and in which a single target shape admits many geometrically valid construction sequences [Lambourne et al. 2022; Willis et al. 2021].
Three families of approach dominate the recent literature. Learned sequence models predict a construction program in a forward pass from a point cloud, mesh or image [Wu et al. 2021; Xu et al. 2022; Rukhovich et al. 2025; Kolodiazhnyi et al. 2025; Doris et al. 2025]. Optimization-based methods search over executable programs under kernel validation, using a geometric fidelity objective as the selection signal; CADFit [Nehme et al. 2026] is the current state of the art in this family, formulating reconstruction as IoU-driven optimization over CadQuery programs with extrusion, revolution, Boolean and finishing operations. Hybrid approaches use a vision-language model to predict the discrete program structure and a separate network to regress the continuous attributes; Img2CAD [You et al. 2025] introduces this conditional factorization and demonstrates it on single-view images of everyday objects.
All three families are domain-agnostic by design, and this is deliberate: generality is what allows one pipeline to serve chairs, tables, brackets and housings alike. For engineering reconstruction, however, the same generality carries a cost that is not visible in the standard metrics. A reconstruction may score well on volumetric IoU while being unmanufacturable — walls of varying thickness, outlines whose primitives meet at unintended kinks, corner radii below any available tool, bend geometry that no press brake can produce. The fidelity objective simply does not encode these facts, because the operator vocabulary in which the program is written is a modelling vocabulary rather than a process vocabulary.
This paper takes the opposite starting point. We assume the manufacturing process is known: the part is a bent sheet-metal component. That assumption is not a minor prior. It fixes the wall thickness to a single constant across the whole part; it makes cut walls perpendicular to the cover faces up to a measurable draft; it makes every bend a developable cylinder about a straight axis whose radius is drawn from a finite tool set; it makes every wall a planar mid-surface bounded by a closed loop; and it makes that loop tangent-continuous everywhere except at genuine design corners. Our question is whether encoding these facts in the representation itself, rather than checking them afterwards, changes the character of the failures the pipeline produces.
It does, in a specific and measurable way. Three classes of post-hoc repair that appear in every primitive-fitting pipeline we are aware of — tangency reconciliation between independently fitted primitives, loop closure by intersecting neighbouring carriers, and rejection of degenerate large-radius arcs — become algebraic identities under the chain representation we introduce, and therefore cease to exist as failure modes. What remains is a smaller and sharper set of problems, located in segmentation and hypothesis selection, which we then measure directly.
1.1 Contributions
• Constrained chain representation for manufacturing outlines. An arc-length/curvature chain anchored at analytically known fold seams. G1 tangency between consecutive primitives, C0 continuity, and closure of the run are identities of the parametrization rather than constraints. The degenerate large-radius arc, which is an artefact of the centre-and-radius parametrization used in prior primitive fitting, is not representable.
• Datum/measurement plane role separation. The plane a wall is attached to (topological datum, supplied by the upstream stage) and the plane its evidence is read from (measured from the mesh) are separated. This allows the upstream bend-angle error to be measured per node and reported without violating the authority of the datum, converting a previously invisible error into an attributable number.
• Cover-face boundary projection as evidence source. Outline evidence is taken from the projected mesh-topological boundary loops of both cover faces of a wall, rather than from cross-section slices. We give a scaling argument showing that the sensitivity of the two schemes to an upstream plane-orientation error differs by the wall aspect ratio, and show that the scheme delivers ordered loops, hole loops, and a through-versus-blind feature test at no additional cost.
• Evidence-scaled hypothesis selection. Snapping a parameter to a nominal design value is posed as a likelihood-ratio test against the parameter’s propagated standard error, replacing fixed tolerance bands that are blind to how much evidence supports a measurement.
• Identifiability as a validity condition. An element whose parameters are not determined by its assigned evidence is treated as an illegal hypothesis rather than as a fitted element. We show that free-floating elements of this kind produce low residual standard deviation together with large maximum deviation — a fit that is excellent on the data it sees and arbitrary elsewhere.
• A corpus instrumentation methodology and nine negative results. We describe a measurement protocol built on pre-stated decision rules, frozen baselines and mandatory counterexample reporting, and we report the hypotheses it refuted as prominently as those it confirmed.
1.2 Scope and honesty of claims
This is a methods paper accompanied by an instrumentation study, not a benchmark result. Our acceptance criteria are property-based and oracle-free by design (Section 6), which means we do not report IoU or Chamfer Distance against ground-truth CAD and cannot place ourselves on the leaderboards of Section 2. We consider this a consequence of the problem statement rather than an omission: a manufacturing-constrained reconstruction is not better because it overlaps the mesh more, it is better because it is producible and its deviation from the mesh is honestly reported. Three of fourteen evaluated nodes do not reconstruct under the current pipeline and are reported as failures with their diagnosis. Section 10 states the limitations in full.
2. Related work
2.1 Learned CAD program generation
DeepCAD [Wu et al. 2021] introduced a domain-specific language for sketch-and-extrude programs together with sequence autoencoders over that representation, and the paradigm has since been extended to richer inputs and outputs including point clouds, meshes and executable code [Xu et al. 2022; Ren et al. 2022; Li et al. 2023; Yu et al. 2025; Rukhovich et al. 2025; Li et al. 2025]. More recent work explores multimodal conditioning and large language models for CAD code generation [Doris et al. 2025; Kolodiazhnyi et al. 2025; Alrashedy et al. 2025]. As observed by Nehme et al. [2026], these methods inherit the brittleness of autoregressive program generation and do not explicitly optimize geometric fidelity; empirically their reconstruction quality degrades on higher-complexity parts and on distributions unlike their training data.
Our pipeline contains no learned component. This is a deliberate design constraint arising from the deployment setting rather than a claim about the merits of learning: the reconstruction is an intermediate step in an engineering workflow whose outputs are inspected, versioned and audited, and every decision must therefore be reproducible bit-for-bit and attributable to a stated rule. Where prior work uses learning as a tractability device — Nehme et al. [2026] use a DINOv2-based [Oquab et al. 2024] sketch prior purely to rank candidate profiles, without affecting correctness — we obtain the equivalent reduction from the manufacturing prior instead.
2.2 Optimization-based reconstruction
CADFit [Nehme et al. 2026] reconstructs executable CadQuery/OpenCascade programs from watertight meshes by maximizing volumetric IoU under CAD-kernel validation, over an operator set of extrusion, revolution, Boolean union and cut, fillet and chamfer. Its pipeline extracts candidate sketch profiles from planar face clusters and axis-aligned slicing planes, generates extrude and revolve candidates through one-sided Chamfer parameter sweeps with stable-interval selection, and assembles a compact program by forward greedy IoU selection followed by backward pruning, wrapped in an outer residual-reconstruction loop that adds under-reconstructed residuals with union and removes over-reconstructed residuals with cut.
Two aspects of CADFit are directly relevant here. First, its sketch primitive fitting (their Appendix J) fits line segments by least squares and circles and arcs by algebraic circle fitting under RMS error constraints, grows segments greedily until the fitting error exceeds a tolerance relative to loop scale, and merges adjacent collinear primitives to reduce fragmentation. This is, to our knowledge, the closest published description of the sub-problem we address, and our chain formulation should be read as an alternative to it. Second, CADFit’s stated limitations — dependence on clean watertight meshes, difficulty with geometry dominated by smooth high-curvature surfaces where no stable planar sketch can be extracted, and the recommendation of Taubin smoothing [Taubin 1995] and mesh decimation [Garland and Heckbert 1997] as preprocessing for noisy inputs — intersect our findings at several points. In particular, Nehme et al. propose in their Appendix F that projecting the shape onto candidate planes and using the resulting contours as sketches would extend coverage to curved geometry; the evidence source we describe in Section 5.3 is one realization of that idea, arrived at independently from the failure analysis of slice-based extraction. Conversely, our decimation experiment (Section 8.2) finds that decimation applied before the primitive fit degrades it substantially on CAD-tessellated input, which qualifies the preprocessing recommendation for the fitting sub-problem specifically.
Earlier optimization formulations recover Boolean programs over simple primitive sets [Du et al. 2018; Kania et al. 2020]. These improve validity guarantees but, as noted by Nehme et al. [2026], do not scale to sketch-based operations or finishing features.
2.3 Conditional factorization and the discrete/continuous split
Img2CAD [You et al. 2025] addresses image-to-CAD by conditionally factorizing the task: a finetuned vision-language model predicts the discrete base structure of the shape — its part decomposition together with the sequence of CAD command types — and a transformer with flow matching, conditioned on that structure, predicts the continuous attributes. Their sketch-extrude language uses line, arc and circle commands with the continuous attributes L : (x, y), A : (x, y, α) and R : (x, y, r), extruded with Euler angles, origin and extent.
Four elements of Img2CAD inform our design, and we attribute them explicitly. (i) The factorization itself: we adopt the separation of discrete structure from continuous attributes, and Section 5.5 keeps the structural decision frozen once made. (ii) The chained arc parametrization: their arc command specifies an endpoint and a sweep angle with the start point implicit from the predecessor, which makes chain continuity constructive rather than repaired — the seed of the representation we develop in Section 5.4. (iii) The multimodality argument for GMFlow [Chen et al. 2025, as cited in You et al. 2025] over standard flow matching [Lipman et al. 2023]: CAD attribute distributions are multimodal, and a unimodal estimator averages between the modes. We transpose this to the manufacturing setting, where the nominal design lattice (tool radii, standard angles, drill diameters) makes the parameter prior a mixture of discrete spikes and a continuous component (Section 5.6). (iv) Semantic parameter tying: their observation that corresponding parts of different objects share attribute values, which motivates their shared attribute space, is the same structure that motivates the hierarchical pooling we specify but defer (Section 10.3). We also adopt the requirement of a canonical counter-clockwise sketch orientation, stated without elaboration in their Section 3.1, and give the reasons it is load-bearing in our setting (Section 5.7).
We depart from Img2CAD in the two respects that matter most for engineering use. Their pipeline is generative and category-specific, trained on a CAD-ified subset of ShapeNet [Chang et al. 2015] annotated using PartNet labels [Mo et al. 2019], and its single-view setting requires the model to hallucinate unobserved geometry; we have the complete mesh and never infer geometry that is not measured. Their reported accuracy — Chamfer Distance of 0.098 on normalized geometry — is in the percent range of object extent, which is appropriate for their task and several orders of magnitude coarser than sheet-metal tolerances require.
We also adopt two of their evaluation ideas in modified form. Their structural quality metrics — the number of strongly connected components of the output mesh, and a symmetry Chamfer distance measuring agreement with the mirrored shape — measure connectivity and regularity cheaply and without ground truth. We do not use either directly: B-Rep validity is a strictly stronger connectivity statement than mesh proximity, and sheet-metal parts are generally not symmetric. What we take is the placement, not the metric: cheap kernel-free part-level checks computed before the expensive solid construction (Section 6.2). Their inference-time symmetry score guidance, a soft gradient step that biases the sampled attributes toward symmetry, we deliberately do not adopt: it offers no guarantee, and their own ablation shows it degrading the cabinet category.
2.4 B-Rep reconstruction and classical primitive fitting
A parallel line of work recovers boundary representations rather than construction sequences, combining neural segmentation with analytic surface fitting [Jayaraman et al. 2022; Liu et al. 2024; Xu et al. 2024; Lee et al. 2025], or recovers extrusion cylinders from point clouds [Uy et al. 2022]. These produce accurate surface topology but do not recover design intent in parametric form. Classical primitive fitting decomposes shapes into surface or volumetric primitives using RANSAC [Schnabel et al. 2007], region growing [Oesau et al. 2016], or Hough voting, and abstracts shapes with cuboids [Tulsiani et al. 2017; Zou et al. 2017] or superquadrics [Paschalidou et al. 2019]; we follow You et al. [2025] in their survey of this literature. As those authors note, such methods generally assume a fixed primitive vocabulary. Our vocabulary is fixed too, but by the manufacturing process rather than by convenience: a laser-cut sheet-metal outline is composed of lines and circular arcs, and nothing else.
Circle fitting in particular has a long numerical literature that bears directly on our Section 5.4. The algebraic fit of Kåsa [1976] is known to be biased and ill-conditioned for short arcs and low curvature; the corrections of Pratt [1987] and Taubin [1991] reduce but do not remove the effect, and the bias is analyzed in detail by Chernov and Lesort [2005]. We show that this is a defect of the centre-and-radius parametrization rather than of the estimator, and that reparametrizing by curvature removes the conditioning problem structurally.
2.5 What is absent from prior work
None of the above carries a manufacturing prior into the representation. CADFit validates against the CAD kernel, which rejects programs that fail to execute but accepts programs that execute into unmanufacturable solids. Img2CAD validates against a symmetry heuristic and geometric distance. In both cases the process constraints — constant thickness, tool-set radii, tangency, developable bends — are either absent or would have to be added as a filter after the fact. The contribution of this paper is to show what a pipeline looks like when they are present from the start, and what the remaining difficulties are once they are.
3. Problem setting
3.1 Domain constraints
We consider parts produced by cutting a flat blank from constant-gauge sheet and folding it on a press brake. The process implies the following constraints, which we treat as given rather than as things to be discovered:
• D1 — Constant thickness. A single thickness t holds across the whole part. It is a property of the stock, not of any individual wall.
• D2 — Perpendicular cut walls. Cut edges are perpendicular to the cover faces up to a small draft (laser conicity, punch die-roll), which is itself a measurable manufacturing property.
• D3 — Developable bends. Every bend is a circular cylinder about a straight axis. Its radius is drawn from the finite set of tool radii available to the shop.
• D4 — Planar walls with closed outlines. Between bends, the mid-surface of the material is planar, and its extent is bounded by one outer closed loop and zero or more inner loops.
• D5 — Tangent-continuous outlines. A cut outline consists of straight runs and circular arcs meeting tangentially, except at genuine design corners whose radius is either a tool radius or below the resolution of the acquisition.
• D6 — Seam structure. Two walls meet only through a bend. Their shared boundary is a straight segment parallel to the bend axis, of the length of that axis, located at the tangent line of the bend cylinder.
• D7 — Nominal lattice. Design values are drawn from discrete sets: bend angles cluster at standard values, corner radii at tool radii, hole diameters at drill sizes, thickness at stock gauges.
These are not modelling conveniences. Each is a physical fact about how the part came into existence, and each is either verifiable from the mesh or supplied by the upstream stage. The design question this paper addresses is where in the pipeline they should act.
3.2 Objective
Let M be a triangulated mesh of a sheet-metal part and let Σ be the constraint graph recovered by Stage 1. We seek a boundary representation S such that S satisfies D1–D7 by construction, and such that the deviation between S and M is measured and reported rather than minimized without bound.
The distinction from the objective of Nehme et al. [2026], who maximize IoU(Solid(Π), M) over valid programs Π, is deliberate. A volumetric overlap measure integrates error over the body and is therefore insensitive to localized violations of exactly the constraints we care about: a 0.3 mm thickness inconsistency or a 2° kink between two outline primitives changes IoU by an amount below its own measurement noise, while making the part unproducible. Conversely, on a coarsely tessellated input a manufacturing-correct reconstruction has a floor on its achievable deviation which no amount of optimization can cross, and an objective that keeps pushing against that floor will buy geometry that the data does not support. Our acceptance criteria are therefore property-based and stated in Section 6, and the reported deviation is a diagnostic, not a target.
3.3 Design mandates
Two rules governed every decision in the pipeline and are stated here because several attractive local options are excluded by them.
M-1 — Root cause only. A change is admissible only if it removes the mechanism that produces a defect class. A change that suppresses an observed symptom while leaving the mechanism intact is rejected, even where it improves current corpus numbers. Where this paper retires a check or a tolerance, the justification is always that the defect it guarded against is no longer representable, never that it stopped appearing.
M-2 — Measure, do not assume. Where a quantity is physically present in the mesh, the pipeline measures it and reports it with an uncertainty. Constants in configuration are permitted for genuine policy — what the operator wants — and never as substitutes for measurable geometry. A concrete instance: an earlier version of our fillet construction imposed a 2 mm minimum corner radius where no radius could be measured. This is a fabricated feature standing in for a measurement, and Section 5.6 replaces it with an explicit statement of the resolution limit of the input.
4. Pipeline overview
4.1 Stage 1: skeletonization
Stage 1 consumes the mesh and produces a MASTER summary: a directed acyclic graph of wall nodes (a level-0 datum plate and its descendant flanges), each carrying a plane, a footprint, and — for every parent/child fold — a bend axis, a bend angle β, a radius R, and a set of conformed cross-sections. Thickness is estimated once for the part and snapped to a stock gauge.
The stage is deterministic and mesh-grounded. Its architecture is organized around a MASTER-constraint principle in which the level-0 datum is treated as ground truth and all descendants are resolved against it, with a set of typed gates (axis cross-validation, sampling adequacy, bend-angle uniformity, closure residual, and a mesh-truth arm measuring angle, offset, coverage and centerline of each constructed face against the mesh) that abstain rather than guess where the evidence is inadequate. Bend axis length is measured by a box-vote over mesh vertices in the bend zone rather than inferred from sibling symmetry, on the grounds that a symmetry assumption is not a measurement.
Stage 1 is not the subject of this paper and we describe it only to the extent needed. What matters downstream is that its outputs carry error — principally in β — and that this error is invisible to Stage 2 unless Stage 2 measures it. Section 5.2 is our response to that.
4.2 Stage 2: solidification
Stage 2 consumes the MASTER summary and the mesh and produces the solid. Its normative order per wall node is:
A. REGION select the node’s wall triangles (§5.1)
B. PLANE two-plane fit → n_meas, mid, t_meas, δ (§5.2)
C. BOUNDARY extract and classify mesh boundary loops (§5.3)
D. PROJECT project to measurement plane → evidence (§5.3)
E. ANCHOR canonicalize orientation, seams, runs (§5.7)
F. STRUCTURE per run: hypotheses for the element sequence (§5.5)
G. FIT constrained chain solve per run (§5.4)
H. SELECT nominal pins by evidence test, re-solve (§5.6)
I. VALIDATE assert invariants; no rewriting (§6)
J. TRANSPORT map the 2D chain onto the datum plane (§5.2)
There are no back edges. The structural decision is made once in F and frozen; H alters parameter constraints, never the element sequence, with one bounded exception stated in Section 5.6. The solid is then produced by sweeping the mid-surface faces along the fold axes, sewing, thickening by t, and subtracting cut-out prisms — a conventional construction that we do not claim as a contribution.
5. Method
5.1 Node region selection
The evidence for a wall must first be separated from the rest of the mesh. The naive approach — keeping triangles whose vertices fall inside the node’s axis-aligned footprint box — fails on a case that is common rather than exotic: a flange folded back nearly parallel to its parent lies inside the same box and is co-planar with it, and no 2D containment test applied afterwards can separate them.
We select the region as a surface rather than as a volume. Given the datum plane (p₀, n₀) and a thickness estimate, a triangle is a candidate if its centroid lies within the slab |n₀ · (c − p₀)| ≤ t/2 + m and its normal satisfies |n₀ · n_T| ≥ cos θ_face. The facing cone θ_face must be wide enough to admit the plane-orientation error we are about to measure; we use 25°. From a seed triangle nearest the footprint centroid, the region is then grown by breadth-first search across shared mesh edges through candidates only.
Connectivity is what separates the co-planar neighbour: reaching a folded-back flange requires traversing the bend surface, whose normals sweep through the full bend angle and therefore leave the facing cone. Bounding-box overlap cannot make this distinction; edge connectivity can. The grown component is then partitioned by the sign of n₀ · n_T into the two cover faces, with the cut-wall triangles collected as an adjacent set.
5.1.1 Bend exclusion and coplanar readmission
The bend region is excluded at the tangent line, not at a scalar band width. The tangent line is supplied by the upstream stage and is authoritative; it is projected into the measurement plane and offset outward by a small guard to keep the tangency transition zone, where the mesh curves away and the facing test becomes marginal, out of the flat evidence.
The exclusion predicate is an infinite half-plane rather than a strip clipped to the bend axis span. This is a deliberate choice under M-1: clipping to the axis span would make leak-tightness depend on the accuracy of the upstream axis length, which is itself a known error source, and growth would then walk around the end of the strip and absorb the child flange silently. The half-plane makes that failure unrepresentable.
The half-plane, however, also removes genuine host material lying beside the fold — for the very common layout of a single flange on a long edge, it cuts a strip of the order of the bend setback along the entire edge. We recover it by a second breadth-first pass: growth from the boundary of the kept region through excluded triangles, admitting a triangle if its normal lies within a tight tolerance (3°) of the measured plane normal, halting on the first non-coplanar triangle on each front. Reaching the child still requires traversing the bend surface, whose normal deviation rises monotonically from zero to β; growth halts well before mid-bend for any registrable fold. A tab or tongue extending past the fold line beside the fold is coplanar with the host and has no cylinder contact, and is therefore readmitted correctly.
Two design notes are worth recording because both were arrived at by failure. First, the readmission test must be applied per triangle during growth, not per connected component: a component-level test in which one contaminating triangle vetoes the whole component discards arbitrarily much legitimate material, and the guard sliver adjacent to the bend guarantees that such a contaminating triangle is always present. Second, the readmission predicate must be uniform. An implementation in which triangles beyond the excluded belt are admitted unconditionally once any coplanar path crosses the belt reintroduces exactly the leak the half-plane was designed to prevent.
Because the breadth-first predicate is per triangle and not path-dependent, the admitted set is the reachable set under a local predicate and is therefore independent of queue order and seed choice — a stronger determinism property than fixing a sort order.
5.2 The measurement plane, and the role separation
The plane on which a wall is reconstructed carries two distinct roles that prior formulations conflate. It is the topological datum — the attachment to the parent, the reference for the fold axis, the plane the built face finally lives on. It is also the measurement reference — the plane onto which mesh evidence is projected in order to read the outline. We separate them.
The datum role remains with the upstream stage and is never re-estimated. The measurement role is filled by a plane fitted from the mesh: we fit a single normal with two offsets separated by t to the two cover-face vertex sets simultaneously, minimizing
Σ_{x ∈ TOP} (n·x − d₀ − t/2)² + Σ_{x ∈ BOT} (n·x − d₀ + t/2)² subject to ‖n‖ = 1.
Parametrizing n as a small rotation of the datum normal makes the problem linear least squares in the two rotation components together with d₀ and t; re-linearizing on a fixed three-iteration schedule keeps it deterministic. The fit yields the measured normal, the measured mid-plane, an independent measurement of thickness t_meas, and the tilt δ between measured and datum normal with its standard error.
Fitting to the cover faces rather than regressing the outline edge position against depth is a deliberate choice of lever arm. The edge regression has a lever arm of t/2, typically 2 mm; the cover faces span the wall extent, typically an order of magnitude more, with one to two orders of magnitude more points. The confounder is not point scatter but cut-wall draft, which on a single edge is perfectly confusable with a plane tilt; it is separable because a plane tilt is one rigid rotation consistent across all edges of the node, while draft is edge-local and points inward everywhere. The cover faces are unaffected by draft, which is why they carry the primary evidence, and draft is measured separately from the disagreement between the two projected cover-face loops.
5.2.1 Transport
The outline is extracted on the measurement plane and transported to the datum plane by the minimal rotation carrying the measured normal to the datum normal — the rotation about the axis n_meas × n₀. A rotation about the seam line, which would be the intuitive choice, does not exist in general: it removes only the seam-parallel component of the tilt, which is the bend-angle error, and leaves the seam-perpendicular component, which is an axis-orientation error. The minimal rotation is also the correct choice because it contains no spin about the datum normal and therefore does not rotate the outline within its own plane.
The rotation is applied about a fixed point rather than a hinge line: the arrival-seam midpoint for a folded node, since the parent attachment is authoritative and must not move; the centroid of the child seam anchors for a level-0 datum, since these are the geometry that survives into the graph. We decompose and report the tilt into its two components, because they indicate different upstream defects — the seam-parallel component a bend-angle error, the seam-perpendicular component an axis-orientation error — and we correct neither at source. Correcting the axis orientation inside Stage 2 would launder an upstream defect and, worse, would render the corresponding acceptance check vacuous: a test that the seam is parallel to the bend axis cannot fail if the geometry was rotated to make it parallel beforehand.
The practical consequence of the role separation is that a node whose upstream bend angle is wrong yields correct outline geometry at a possibly wrong angle, instead of wrong geometry at a wrong angle. The residual error is then a single reported number, attributable to the stage that produced it.
5.3 Evidence: cover-face boundary projection
The conventional way to obtain a wall outline from a mesh is to slice: intersect the mesh with one or more planes and stitch the resulting segments into loops. Nehme et al. [2026] extract sketch profiles this way, from planar face clusters and axis-aligned slicing planes. For a thin-walled part, however, the slicing plane must lie inside the material, and this makes the scheme sensitive to the upstream plane-orientation error in a way that scales badly.
5.3.1 The scaling argument
Let the wall be bounded by two parallel faces at ±t/2 about the true mid-plane, and let the estimated plane carry an angular error δ. A slicing plane anchored at a fraction of the thickness has a margin m to the nearer face; along a run of length L its position drifts by L·tan δ, so it leaves the material at
L_exit = m / tan δ.
For t = 4 mm and δ = 2° this is about 57 mm at the mid-plane and about 23 mm for a plane placed at one fifth of the thickness. Both are inside the ordinary size range of a sheet-metal flange. Past L_exit the contour does not degrade gracefully: it changes topology, jumping to the cover face or terminating, and the resulting localized step is subsequently classified downstream as a genuine design step and promoted into a corner. A measurement artefact becomes a design feature.
Under projection along the plane normal, the same error acts only across the thickness. The two cover-face outlines project onto each other with a lateral offset of t·tan δ — 0.14 mm for the same numbers. The slicing error scales with the run length; the projection error scales with the thickness. For wall aspect ratios of ten to fifteen, which are typical, the projection scheme is more than an order of magnitude less sensitive to the identical upstream error.
A related observation concerns redundancy. Averaging several parallel slices does not help, because a plane-orientation error is common-mode across the fan: every slice carries the same δ and differs only in where it exits. Median voting over such a fan produces a confident wrong consensus. The two cover faces, by contrast, are genuinely independent samples of the same 2D curve.
5.3.2 Boundary loops from mesh topology
For each cover-face triangle set we extract the boundary edges — edges incident to exactly one triangle of that set — and chain them into closed loops by shared vertices. This is a strictly better source than slicing in three further respects that have nothing to do with the tilt argument. The loops arrive ordered from mesh connectivity, with no stitching and no even-odd nesting test. Inner loops — holes, cut-outs, emboss outlines — arrive as separate loops for free. And both cover faces yield an independent sample, which is the redundancy the slice fan was attempting and failing to provide.
For a watertight mesh every edge has exactly two incident triangles, so a boundary edge of one cover-face set can be classified exactly by the membership of its second triangle: in the cut-wall set it is a real sheet edge and carries outline evidence; in the excluded bend region it is an artificial edge marking the seam attachment; anything else is unresolved and blocks. This classification is exact rather than heuristic, and it delivers the run decomposition at no cost: a boundary loop is a cyclic alternation of real runs and artificial runs, and the artificial runs are precisely the fixed attachment points at which the analytic seam is substituted.
Real boundary vertices of both faces are projected onto the measurement plane, retaining the signed distance to that plane as a per-point covariate. The evidence set for a run is the union of the corresponding real vertices of both faces, weighted equally; there is no primary face.
5.3.3 Cut-out classification
Inner boundary loops are cut-out candidates, and the through-versus-blind discriminant becomes exact: a loop present in both cover faces and matching within tolerance is a through feature; a loop present in one face only is a blind pocket or emboss and is not cut; a loop present in both with differing radii is a countersink or stepped feature and is reported rather than cut. This replaces a depth-consensus rule over a slice fan with a topological test, and is the reason the projection must retain depth rather than collapse to 2D.
5.4 The constrained chain
This section contains the central contribution. We first state what the conventional formulation does and why it produces the failure modes it does.
5.4.1 The absolute-parameter formulation and its three failures
In the conventional formulation each primitive is fitted independently from its own span of points and stored in absolute parameters: a line as a point, direction and normal; an arc as a centre, a radius and a sweep. Endpoints do not exist until the chain is closed by intersecting consecutive carriers. Three failures follow structurally.
First, tangency is off-manifold. The set of tangent, closed chains is a lower-dimensional manifold embedded in the absolute parameter space. Unconstrained fitting lands off it, and the repair — rotating lines and shifting arcs until the junctions agree — is an ad hoc projection back onto the manifold, with no guarantee that it finds the nearest legal chain and no guarantee that a legal chain exists within the sanity bounds the repair is allowed. Implementations of this kind carry an escape flag for the case where reconciliation fails, which is an admission that the operation is not well posed.
Second, closure amplifies. Two nearly parallel lines intersect far away, and the vertex derived from their intersection runs off. Hint points and fallbacks exist to contain this, which again treats a symptom.
Third, the degenerate arc is an artefact of the parametrization. An arc fitted through nearly collinear points has a centre running to infinity; small data perturbations move it a long way, and the resulting geometry bows far from the data. Pipelines guard against this with a sanity bound on the radius relative to the span extent. The underlying numerical fact is well known: algebraic circle fits are ill-conditioned at low curvature and short arc coverage [Kåsa 1976; Pratt 1987; Taubin 1991; Chernov and Lesort 2005].
5.4.2 Representation
We represent a run — the portion of the outline between two pinned seam endpoints — as a sequence of turtle moves from a starting point P and heading θ:
Table 1. Chain element vocabulary. u(θ) = (cos θ, sin θ); the left normal is n(θ) = (−sin θ, cos θ).
The arc update is, for |κ|·s above a small threshold, centre C = P + (1/κ)·n(θ) with P′ = C − (1/κ)·n(θ + κ s); below that threshold it is replaced by the series expansion P′ = P + s·u(θ) + (κ s²/2)·n(θ) + O(κ²s³). The two branches must agree in the residual computation as well as in the forward map.
Three consequences follow immediately, and they are the reason for the representation.
Tangency is an identity. An arc begins at the incoming heading by construction. There is no equation to satisfy, no residual to reconcile, and no case in which reconciliation fails. The tangency repair stage, its sanity bounds and its escape flag are all deleted, not weakened.
Closure is exact per run. Because a run starts and ends at analytically known seam endpoints, the terminal position is a hard equality constraint of two scalars, and error cannot accumulate around the loop. For a node with n seams there are exactly n runs, each bounded by its own boundary conditions, so a multi-seam host is better conditioned than a single-seam flange rather than a harder case. Chain closure by intersection of neighbours, and the tolerance that governed it, are deleted.
The degenerate arc is not representable. In (s, κ), a low-curvature arc has κ ≈ 0, which is numerically identical to a line; the deviation from the chord over a span c is κ c²/8 and is bounded by the estimated curvature. The radius sanity bound is retired because the defect it guarded against cannot occur.
For closed loops with no seam — the degenerate outer case and every cut-out loop — the boundary condition is periodic: the terminal position and heading equal the initial ones, with the starting point and heading all free parameters. Pinning such a loop to an arbitrary mesh vertex would be a hard constraint fabricated from noise, structurally identical to the fabricated fillet radius that M-2 forbids, and would bias every hole toward whichever vertex happened to sort first. The governing rule is that each run’s constraints encode precisely the prior knowledge that exists: a seam run pins its endpoints because the upstream stage knows them, and a closed run pins nothing because nobody knows anything.
A closed run carries a one-dimensional gauge freedom — the cut point can slide along the curve, shortening the first element and lengthening the last for identical geometry — which makes the normal matrix singular. We fix it by a tangential gauge condition on the parameter increment. The covariance must then be computed on the gauged system; otherwise the standard error along the null direction is infinite, and every test in Section 5.6 passes trivially, which reads as excellent behaviour while being entirely spurious.
5.4.3 Solving
The objective is the sum of squared distances from the evidence points to the chain, minimized subject to the closure constraints. We solve the equality-constrained problem by Gauss–Newton on the KKT system [Levenberg 1944; Marquardt 1963], with analytic Jacobians obtained by differentiating the turtle recursion; the derivative of a downstream point with respect to an upstream heading is the perpendicular of the offset vector. The schedule is fixed — fixed initialization, fixed maximum iteration count, fixed tolerance, a single bounded point reassignment pass — with no randomization anywhere.
At the solution we compute the parameter covariance from the residual variance and the inverse normal matrix restricted to the constraint null space, giving every parameter a standard error. This is not an optional diagnostic; Section 5.6 depends on it entirely, and retrofitting it after the fact means rewriting the solver.
Two implementation defects in this area are worth recording because both are easy to introduce and both silently corrupt everything downstream. Points shared at span junctions and at split points must be deduplicated, or the assigned point count exceeds the run point count and every standard error is computed on a set containing duplicates. And the residual must be evaluated on an identical data set for every candidate; if candidates are scored on their own assigned subsets, a candidate that leaves points unassigned obtains a trivially lower residual, so the criterion actively rewards ignoring evidence.
5.5 Structure hypotheses and selection
The element sequence is decided before the fit and frozen. Douglas–Peucker simplification [Douglas and Peucker 1973] marks candidate break positions only, and the raw evidence points are re-associated per span; the simplification never supplies the points that are fitted, because it systematically undersamples smooth curvature and preserves noise spikes, which inverts the very signal the line-versus-arc decision depends on.
Per span we generate the admissible hypotheses rather than selecting one by threshold. This is the multimodality requirement transposed from You et al. [2025]: absorbing a deviation into one element versus splitting it into two, and line versus arc, are discrete explanations with different global consequences, and a threshold on a local residual cannot see them. Hypotheses are compared by the Bayesian information criterion [Schwarz 1978], which is the Occam principle in the form appropriate here [Rissanen 1978]:
BIC = n · ln(RSS / n) + k · ln n, k = n_params − n_constraints − n_gauge.
Three properties of this criterion required explicit attention and are stated because each was a defect before it was a design decision.
Identical data. n must be a property of the run, not of the candidate, and unassigned points must enter at their true distance to the chain (Section 5.4.3).
A measured noise floor. The residual term is floored at the measured tessellation noise of the body, derived from the median local-fit residual rather than set as a constant. Without the floor, residual improvements far below the measurement noise buy additional elements in log space, and the fit over-segments; the floor encodes the statistically correct statement that residuals below the noise are not information. With identical n, the decision at saturation falls to k alone, which is exactly minimum description length: where two models both fit within the noise, take the simpler one.
Floor placement. The floor belongs to the decision, not to the search. Ordering the candidate window by the floored score fills it with saturated minimal-element candidates, and because the merge normalization that follows can only remove elements, a candidate seeded with too few can never recover. We therefore order the search by the unfloored score and decide by the floored one.
The full cross product of per-span hypotheses is intractable for outlines with many spans, so the search proceeds in two stages: a local screen fits each admissible hypothesis to its own span unconstrained and retains those within a margin of the best local score, keeping a minimum of two survivors per span where two are admissible; the pruned product is then enumerated in ascending order of summed local score and the leading candidates are solved under constraints and compared. Because the enumeration is ordered, the cap is a beam width rather than a truncation, and the rank at which the winner is found is a diagnostic of whether the beam was adequate.
5.6 Evidence-scaled selection
A snap to a nominal design value is not a tolerance band. It is a hypothesis test between two explanations of the same data: that the parameter equals a nominal value and the deviation is measurement noise, or that the parameter is what was measured. With the standard error from Section 5.4.3,
z = |p̂ − v*| / σ_p , accept the nominal value iff z ≤ k.
The band scales with the evidence automatically. A 200 mm edge supported by three hundred points has a tight band; a 3 mm stub with six points has a wide one and is pinned readily, which is the correct behaviour and is what fixed-band schemes approximate with heuristics such as "the longer line wins". Accepted pins are applied as hard equality constraints in a re-solve, ordered by ascending standard error for determinism, with a bounded drop rule when the constrained system degrades. Conflicting pins, which fixed-band schemes resolve with a precedence table, appear here as a rank-deficient or high-residual constrained system and are resolved by the drop rule, which is both more principled and a better diagnostic.
Nominal lattices are supplied per family: heading angles at multiples of a step relative to the local reference axis, curvatures at the reciprocals of a configured tool-radius set. The radius lattice defaults to empty. With no configured tool set and no cross-part pooling, there is no nominal radius to snap to, and inventing one is precisely what M-2 forbids.
5.6.1 Sharp corners and the resolution limit
Constraint D5 requires tangency everywhere except at genuine design corners, which suggests that every non-seam corner must carry an arc. Physically this is false: a laser-cut or punched corner has a radius on the order of the kerf, frequently below the resolution of the acquisition. The earlier resolution — imposing a minimum fillet radius wherever none could be measured — fabricates a feature to satisfy a grammar.
We resolve it as a test rather than a policy. At each candidate corner both hypotheses are carried in the structure search: an arc with free curvature, and a corner element with a free turn. The comparison is the same global criterion, so the sharp verdict falls out of the existing search with no special machinery. A separate resolution veto then applies: an observable radius is defined as a small multiple of the median local evidence spacing in the corner window, and a corner whose best-fit radius falls below it is reported as below resolution and rendered sharp. This is a statement about the data, made as one, rather than a modelling choice disguised as one.
Two points of care. The spacing must be measured on the union evidence set, since measuring it on a single cover-face loop inflates the observable radius by roughly a factor of two. And the two verdicts must be kept distinct: a corner where the criterion prefers the corner element means the data say there is no curvature there, whereas a corner where the criterion prefers an arc that is then vetoed means the data could not resolve curvature at that scale. Collapsing the second into the first destroys the more informative signal, which is a statement about the mesh rather than about the part.
The resolution veto is the single exception to the rule that Section 5.6 never alters the element sequence. It is applied once — all below-resolution corners substituted simultaneously, followed by a single re-solve — and any corner falling below the threshold after that re-solve is reported rather than chased, since chasing it is an unbounded loop. If the re-solve is rejected, the substitution that broke validity must be dropped individually and the remainder retained; an all-or-nothing fallback discards every valid substitution because of one, and we measured it doing exactly that.
5.6.2 A residual limit
At saturation, parameters drift at the noise scale among candidates that the criterion cannot distinguish: on an eight-point corner of a synthetic part with an exact 4.0 mm design radius we measured a recovered radius of 3.841 mm among three exactly tied candidates. This is not a solver defect. Eight points do not determine the radius more precisely, and no selection criterion can decide between explanations that are equivalent on the data. Recovering the exact value requires evidence from outside that corner — the pooling of Section 10.3 — and we state it here as a known and measured limit of the fit alone.
5.7 Orientation canon
A closed loop of N primitives admits 2N encodings of the same geometry: N starting positions and two traversal directions. You et al. [2025] require counter-clockwise sketch construction without elaboration; in our setting the requirement is load-bearing and we state why. Without a canonical start and direction, cross-section consensus, cross-node parameter tying, regression against fixed anchor sequences, and bitwise determinism are all ill-defined, and wrap-around special cases appear at whatever arbitrary position the simplification happened to begin the ring.
We normalize every loop to counter-clockwise as seen from the direction of the node’s datum normal. The choice between the two conventions is arbitrary; fixing it is not, and it must agree with the convention used elsewhere in the construction. With the canon fixed, several questions become sign lookups rather than geometric tests: outer versus inner loop is the sign of the signed area; the material lies to the left of the traversal direction, which fixes the offset direction for the side walls; convex versus concave corner is the sign of the turn; and the total turning of a simple closed loop is +2π by the theorem of turning tangents [Hopf 1935], which we use as a validity assertion rather than as a fitting constraint, since closure is already exact per run.
The traversal starts at the far endpoint of the primary seam — the arrival fold for a folded node, or, for a level-0 datum, the child seam closest in direction to the global reference axis with a lexicographic tiebreak — and proceeds seam to seam. The sign of the upstream axis direction is canonicalized for our own use, without modifying the upstream value, by requiring the seam traversal to agree with the loop direction; the flip is recorded per fold. The simplification no longer chooses where the ring begins.
5.8 Identifiability
The specification of Section 5.5 freezes the point-to-element assignment but says nothing about an element that ends up with too few points. Such an element contributes nothing to the objective and is determined solely by the closure constraint and its neighbours: it is free-floating, and it can wander arbitrarily without the residual standard deviation registering it.
The signature is diagnostic and we state it as such: low residual standard deviation together with large maximum deviation. On one node we measured a residual standard deviation of 0.108 mm over 1117 points, with a maximum chain-to-mesh deviation of 6.6 mm. A single point at 6.6 mm would contribute more than three times the entire residual sum of squares, so no point can be assigned where the chain is wrong. The fit is excellent on the data it sees and arbitrary elsewhere.
The M-1 formulation is that an element whose parameters are not determined by the data is not a legal hypothesis. We enforce it as a post-solve validity condition in the same machinery as the other structural rejections — a line requires at least two assigned points, an arc at least three — evaluated after the reassignment pass, so that the count reflects the final assignment. Because the enumeration is ordered by ascending local score, a rejection normally advances to the candidate with one element fewer, which is the correct answer. There is no repair path and no back edge.
Two placements were measured and rejected before this one, and both failures are informative. Checking inside every solve is wrong because the initial assignment legitimately starves elements that reassignment later feeds. Checking on the post-reassignment winner alone is wrong because fragmented winners carry starved elements that merge normalization subsequently absorbs — the merge is the cure, so the check cannot precede it.
The count rule is a necessary condition, not a sufficient one. An arc with three points spread over 95 mm satisfies it and determines no curvature. The statistically correct condition tests the curvature against its own standard error, |κ| ≥ k·σ_κ, and degrades the element to a line otherwise. We specify it and did not ship it, for a reason that belongs in the results: across our corpus no arc in any winning chain passed the count rule with a curvature-to-error ratio below three, so the stronger condition would have been a no-op on the data we have (Section 8.5).
5.8 Identifiability
The specification of Section 5.5 freezes the point-to-element assignment but says nothing about an element that ends up with too few points. Such an element contributes nothing to the objective and is determined solely by the closure constraint and its neighbours: it is free-floating, and it can wander arbitrarily without the residual standard deviation registering it.
The signature is diagnostic and we state it as such: low residual standard deviation together with large maximum deviation. On one node we measured a residual standard deviation of 0.108 mm over 1117 points, with a maximum chain-to-mesh deviation of 6.6 mm. A single point at 6.6 mm would contribute more than three times the entire residual sum of squares, so no point can be assigned where the chain is wrong. The fit is excellent on the data it sees and arbitrary elsewhere.
The M-1 formulation is that an element whose parameters are not determined by the data is not a legal hypothesis. We enforce it as a post-solve validity condition in the same machinery as the other structural rejections — a line requires at least two assigned points, an arc at least three — evaluated after the reassignment pass, so that the count reflects the final assignment. Because the enumeration is ordered by ascending local score, a rejection normally advances to the candidate with one element fewer, which is the correct answer. There is no repair path and no back edge.
Two placements were measured and rejected before this one, and both failures are informative. Checking inside every solve is wrong because the initial assignment legitimately starves elements that reassignment later feeds. Checking on the post-reassignment winner alone is wrong because fragmented winners carry starved elements that merge normalization subsequently absorbs — the merge is the cure, so the check cannot precede it.
The count rule is a necessary condition, not a sufficient one. An arc with three points spread over 95 mm satisfies it and determines no curvature. The statistically correct condition tests the curvature against its own standard error, |κ| ≥ k·σ_κ, and degrades the element to a line otherwise. We specify it and did not ship it, for a reason that belongs in the results: across our corpus no arc in any winning chain passed the count rule with a curvature-to-error ratio below three, so the stronger condition would have been a no-op on the data we have (Section 8.5).
6. Acceptance criteria
Because the objective is manufacturability rather than overlap, acceptance is property-based and oracle-free: every criterion is computable from the reconstruction and the mesh alone, with no ground-truth CAD. Validation never rewrites; it asserts.
6.1 Node-level properties
Several properties that appear in conventional pipelines are retired here, and M-1 requires the reason to be explicit in each case rather than left implicit. The check for degenerate large-radius arcs is retired because such arcs are not representable in (s, κ). The tangency check is retired because tangency is an identity. The closure tolerance is retired because closure is exact per run. The snap-band checks are replaced by the evidence test, and the fillet-band check is retired together with the fabricated minimum radius it policed. What remains:
Table 2. Node-level acceptance properties. N5 is measured against real evidence only; artificial runs are excluded, because measuring against a reference containing the substituted analytic seam penalizes the chain for satisfying its own boundary condition.
N9 deserves a note. The resolution veto of Section 5.6.1 was originally motivated by the hazard of a sub-resolution arc becoming a sliver edge in the boundary representation. A very short line is the same sliver and arises without any arc involved, so under M-1 the condition belongs at the cause and applies to every element, not only to corners.
6.2 Part-level properties
Node-level properties are not sufficient, because the downstream failures — sewing, thickening, Boolean subtraction — are part-level. A pipeline whose acceptance suite is entirely per-node has no way to fail for a reason the next stage cares about, and will discover the problem only after the expensive construction, where it will be misattributed to the construction. This is the placement idea we take from the structural metrics of You et al. [2025], applied to a different quantity.
Table 3. Part-level acceptance properties.
7. Experimental methodology
The measurement protocol is part of the contribution, because several of the results in Section 9 were only obtainable under it.
• Pre-stated decision rules. Every experiment states, before it runs, what outcome would confirm the hypothesis and what outcome would refute it. Where an experiment refuted its own hypothesis, the refuted value is reported rather than adjusted.
• Frozen baselines. Each pass writes into an immutable baseline directory, never overwritten and never re-run in place, with a version-control tag at each phase boundary so that a control run is always one checkout away. Comparisons are against the pass’s own entry baseline rather than against whatever is on disk.
• Double-run determinism. Every measurement is run twice and required to be field-identical at fixed rounding before it is interpreted.
• A frozen evaluation metric. Internal quality measures live on quantities whose definition changes when the pipeline changes — the residual standard deviation lives on the assigned point set, whose composition is a property of the fit. We therefore additionally compute a metric that is independent of assignment and of the internal reference: maximum and root-mean-square distance from the finished chain to the real boundary evidence, sampled at fixed arc-length intervals. Without such a metric, a repair and a regression are not distinguishable across a change.
• Mandatory counterexample reporting. Every report must name every node on which a stated hypothesis fails. A report that only confirms is treated as less informative, not more. Two of the results in Section 9 exist because this rule forced them into view.
7.1 Corpus
Four industrial sheet-metal bodies, fourteen wall nodes, drawn from a larger regression corpus of approximately twenty parts used throughout the development of Stage 1. The bodies were selected to span tessellation quality rather than shape complexity, which turned out to be the dominant variable. They are referred to by their corpus identifiers.
Table 4. Measured tessellation properties of the corpus. The arc-chord residual is the median chord deviation on curved boundary runs and is the appropriate noise floor for the outline fit. Body 0028 is a coarse CAD tessellation — its floor is ten to eighteen times coarser than the rest of the corpus, and its straight edges are exactly collinear rather than merely nearly so, which matters for Section 8.2.
8. Results
8.1 Does a correct chain exist in the hypothesis space?
The primary question is not whether the selected chain is good but whether a good chain exists anywhere in the enumerated space — this separates a search problem from an evidence problem without requiring an oracle. We therefore walk the entire candidate beam per node, solving each candidate under constraints, and compare the best achievable residual against the body’s measured noise floor.
On every node that reconstructs, the minimum residual standard deviation over all valid candidates sits at the measured floor of its body: 0.013–0.028 mm against floors of 0.014–0.025 mm, with selection at worst a few percent off. The representation and the constrained solver are therefore adequate, and the residual difficulty is located in segmentation and selection rather than in the fit. Body 0028 is the single exception, and its best legal chain misfits at about 3.8 times its own already coarse floor, which distinguishes it as a different failure class.
Table 5. Best achievable versus selected residual per reconstructing node, against the measured noise floor of the body. Three further nodes (0028 n1, 0138 n1, 0138 n2) produced no valid chain and are discussed in Section 8.6.
8.2 Decimation starves the fit
Nehme et al. [2026] recommend mesh decimation [Garland and Heckbert 1997] as preprocessing for noisy input, reporting improved IoU and runtime. We measured its effect on the primitive fit specifically, with a single flag change and nothing else altered.
The mechanism matters. Body 0028 is a CAD tessellation, so its straight edges are exactly collinear rather than merely nearly so, and a collinearity-preserving decimation at 0.02 mm collapses a 200 mm edge carrying hundreds of boundary vertices to two points. This is geometrically lossless and statistically destructive. On the straight-dominated datum node we measured 530 mm of 591 mm of open contour length residing in ten segments, with the remaining 61 mm carrying 105 points: ninety percent of the contour length carried ten percent of the evidence. In the least-squares objective the long straight runs then have almost no restoring force while closure remains a hard constraint, and the solver absorbs the slack in curvature.
Table 6. Effect of removing decimation from the fit path, Body 0028 datum node. The decimated column is the shipped default at the time of the experiment.
The finding does not contradict the prior recommendation so much as qualify its scope. Decimation is beneficial where the cost is kernel evaluation over many candidate profiles, which is the regime Nehme et al. measure. It is harmful where the cost is statistical, because the primitive fit consumes evidence mass and decimation removes it precisely where the outline is well determined. The correct resolution is to separate the channels: the decimated ring for geometric and export purposes, the undecimated boundary as fit evidence. We note in passing that the contrasting node, which was never evidence-starved, did not improve, which is consistent with the mechanism and not with a general quality claim.
8.3 Segmentation atoms dominate the remaining failures
The strongest single result of the study concerns the granularity at which the outline is broken into spans. The simplification tolerance is conventionally a constant; on Body 0028 the measured arc-chord residual of 0.260 mm exceeds the configured tolerance of 0.15 mm, so the simplification breaks systematically inside arcs, fragmenting a smooth run into many spurious spans. A hypothesis-directed test setting the tolerance from the measured residual on that body alone produced:
Table 7. Effect of setting the simplification tolerance from the measured arc-chord residual, Body 0028. Node n1 had failed to reconstruct through five successive pipeline revisions.
Two conclusions follow. First, what had been classified as an evidence defect — a node on which no legal chain existed anywhere in the enumerated space — was substantially a segmentation defect: with appropriate atoms, the search finds chains at the noise floor. Second, and generally: a search over a lattice of hypotheses cannot recover from atoms that are wrong, and no amount of enumeration effort substitutes for measuring the granularity from the input. This is M-2 applied to a parameter that is conventionally a constant.
We report the derivation honestly. Our first attempt derived the tolerance from the median local-fit residual, which is dominated by straight spans and therefore too small; applied across the corpus it fragmented healthy nodes to 30–121 spans and drove five of them to failure. That derivation is refuted and reported as such. The correct statistic is the tail of the local residual distribution — the arc-chord residual — and the corpus-wide validation of that derivation is open work at the time of writing.
8.4 Identifiability
Enforcing identifiability produced the first topologically simple wire the pathological datum node had ever generated — self-intersections from one to zero — while the residual standard deviation rose from 0.108 mm to 0.977 mm. This combination is the intended behaviour of a validity condition and not a regression: the previous residual was purchased by elements that owned no points, and the new value is the honest distance between that evidence and any legal chain. It is also the clearest available illustration of why residual standard deviation alone is an inadequate quality measure, and why the frozen metric of Section 7 was introduced.
8.5 Corpus behaviour of the beam
Beam mortality — the fraction of enumerated candidates rejected by the post-solve validity conditions — varies from 0% to 98% across nodes, with no stable composition: over-winding dominates on some nodes, element collapse on others, non-closure on others. A single-node measurement of 89% mortality did not generalize, and we report this as a refuted expectation rather than as a corpus property.
The walk cap never bound on this corpus: on every node that reconstructs, the first identifiable finished chain sits at global rank 0 or 2. The three failures therefore have zero identifiable chains in the entire enumerated beam, which makes them statements about the enumerated space rather than about the cap. We note the honest limit: those nodes carry 27–38 spans, so 128 candidates is a vanishing fraction of the lattice, and separating "no chain exists" from "enumeration cannot reach it" is not possible from that data alone. Section 9 reports a dedicated experiment on that question.
On the identifiability threshold: across the corpus, no arc in any winning chain passed the count rule with a curvature-to-standard-error ratio below three, and only two arcs fell in the three-to-five band. The statistically stronger condition of Section 5.8 would therefore have been a no-op on this data, and we report it as a specified but unvalidated refinement rather than as a shipped mechanism. The loosest point of the count rule is the line threshold, not the arc threshold: one node’s worst element is a line satisfying the rule at equality with exactly two points.
8.6 Unreconstructed nodes
Three of fourteen nodes produce no legal chain. One of them (0028 n1) reconstructs at its noise floor under the corrected segmentation tolerance of Section 8.3 and is therefore attributed to segmentation granularity. The remaining two do not fit that mechanism: their measured arc-chord residuals are 0.02–0.03 mm, below the configured tolerance, so their spans are not fragmenting on tessellation artefacts. They carry 31 and 27 spans respectively, which is genuine outline complexity. We report them as an open failure class with a stated diagnosis of what they are not: not enumeration (Section 9, N5), not cover-face disagreement (their two projected loops coincide to 0.026–0.028 mm median), and not scoring (they survive the repaired selection criterion with byte-identical mortality).
9. Negative results
We report the refuted hypotheses at the same level of prominence as the confirmed ones. Several were our own, several were structural defects that our first specification introduced, and one qualifies a recommendation from prior work. In a domain where the objective function is itself under construction, the negative results are the part of the study that transfers.
N1 — Decimation as preprocessing harms the primitive fit. Measured in Section 8.2. It benefits candidate-evaluation cost and harms evidence mass; the two effects have been conflated because they are measured on different objectives.
N2 — A model-selection criterion evaluated on candidate-dependent data is not merely noisy, it is directionally wrong. Our first specification scored each candidate on its own assigned point set. Since a candidate that leaves points unassigned obtains a lower residual sum of squares, the criterion actively rewards ignoring evidence. We measured the assigned count varying from 350 to 502 across candidates of the same run. Any comparison made under that criterion — including several of our own earlier classifications — is void, which is why Section 8 re-derives them.
N3 — Removing the noise floor from the selection score causes over-segmentation. We removed it on the argument that at saturation the decision falls to element count and data size, and data size varied. Fixing the data size removed the premise: with identical n, deciding on element count alone at saturation is exactly minimum description length and is correct. Without the floor, residual gains far below the measurement noise buy elements in log space, and on an exact synthetic part a design corner split into two arcs. The floor is a statistically correct statement, not a convenience.
N4 — No sound pruning bound exists for this search. Candidates are ranked by an initial score and only the leading ones are normalized and re-solved. We measured initial-to-final score drops of 2,560 to 19,540 units, because normalization re-assigns points and re-solves, escaping the original solution basin entirely. The initial score therefore carries no bound on the final one, and no window size can be justified from it. The remedy is an initial score that predicts the final one, or paying for more normalizations; window size is the wrong control variable.
N5 — Enumeration is not the bottleneck. We suspected that sampling 128 candidates from a lattice of 2³⁸ was structurally inadequate for the failing nodes, and proposed replacing the cross-product enumeration with dynamic programming over the span sequence. A dynamic program relaxing closure — a lower-bound witness on the lattice, which is what an exoneration requires — found optima within 0.2–0.3% of the beam’s best, with more elements rather than fewer, in milliseconds against the beam’s 788 seconds. The lattice contains no short cheap path the beam missed. The proposed replacement was not built.
N6 — The starvation signature does not generalize. On the node where identifiability was diagnosed, the element carrying the maximum deviation owned zero points. Across the corpus, ten of twelve reconstructing nodes have a well-supported worst element, some owning several hundred points. The correlation was the pathology of one node, removed by the fix; on the corpus the residual deviation is model-evidence disagreement, not free-floating drift. Reasoning from it would have sent us in the wrong direction.
N7 — Component-level vetoes discard valid material. A readmission test formulated per connected component, requiring every triangle in the component to be coplanar, is vetoed by a single contaminating triangle and discards arbitrarily much legitimate geometry — and the guard sliver adjacent to every bend guarantees such a triangle exists. The identical antipattern appeared independently at the node level, where a single localized cover-face disagreement discarded the entire second cover face for the node; six healthy nodes lost all two-face redundancy this way, with median disagreement of 0.011–0.019 mm. Both fixes are the same: move the quantifier down.
N8 — The strict manifold verdict does not discriminate failures. We expected a non-manifold boundary graph to predict bad reconstructions. It is false on nearly every node in the corpus, including nodes fitting cleanly at 0.014 mm. The underlying cause is that a centroid-based classification of triangles against the bend cut produces pinch vertices — kept triangles meeting only at a vertex rather than sharing an edge — on ordinary geometry. The correct repair is at the cause: classify vertices and derive triangles by a monotone rule so that the boundary follows mesh edges by construction. The verdict itself is not a usable gate until then.
N9 — Readmission volume does not predict fit quality. We suspected that the node with the most readmitted material carried a contaminated evidence set. The corpus maximum — 5,650 triangles, 610 mm², creep of 1.36 mm past the tangent line — occurs on a node fitting cleanly at 0.017 mm. Correlation absent.
N10 — Minimum deviation is not a proxy for a better chain. On one node the candidate with the lowest sampled maximum deviation is a single straight line through the whole outline, with twice the residual of the winner and a uniformly positive bias; it wins a three-sample deviation metric by accident. A sparse maximum-deviation measure is a validity check, not a selection criterion, and must not be substituted for one.
10. Limitations and open work
10.1 Reconstruction failures
Three of fourteen nodes produce no legal chain under the shipped configuration; one of them reconstructs at its noise floor under the corrected segmentation tolerance, which is not yet validated corpus-wide. The remaining two are an open failure class whose diagnosis is currently negative: not enumeration, not cover-face disagreement, not scoring.
10.2 Evaluation and comparability
We do not report volumetric IoU or Chamfer Distance against ground-truth CAD, and therefore cannot be placed on the benchmarks of Nehme et al. [2026] or You et al. [2025]. This follows from the problem statement rather than from an omission — our acceptance is manufacturability, which those metrics do not measure — but it does mean that no direct quantitative comparison against those methods is offered here, and readers should treat our results as characterizing a pipeline rather than as ranking it. A fair comparison would require either running those methods on sheet-metal parts, where their operator vocabularies would have to express bends as revolutions and their outputs would not be checkable for thickness constancy, or constructing a manufacturability metric they could be scored on. Both are worth doing and neither is done here.
Our corpus of four bodies and fourteen nodes is small. It was sufficient to refute several single-body generalizations, which is what it was assembled for, but it is not sufficient to establish the positive claims as corpus properties. We state which findings rest on how many nodes throughout Section 8 for this reason.
10.3 Deferred: hierarchical parameter pooling
Section 5.6.2 established a measured limit of the per-corner fit: at saturation, parameters drift at the noise scale among indistinguishable candidates. The remedy is evidence from outside the corner, and the correct general form is hierarchical shrinkage [James and Stein 1961; Efron and Morris 1975]. Each local estimate is combined with a group mean, weighted by the ratio of the genuine between-member variance to the local estimator variance, so that where local evidence is strong the estimate is untouched and where it is weak it borrows strength — continuously, with no threshold, and with the between-member variance estimated from the data so that the model discovers whether the similarity assumption is warranted rather than asserting it. This is the same structure that motivates the shared attribute space of You et al. [2025], transposed from part semantics to manufacturing families.
The highest-value grouping in this domain is the part’s corner-radius set: a designed sheet-metal part uses one or two radii, and the fabricated minimum radius that M-2 forced us to delete sits exactly where that measurement belongs. Hole diameters, which should cluster at drill sizes, are second. We specify pooling and deliberately do not ship it: until the un-pooled fit is verified corpus-wide, pooling is a confounder rather than an improvement, and a regression could be attributed to either. What we did ship is its prerequisite, the covariance propagation of Section 5.4.3, because retrofitting that means rewriting the solver.
10.4 Other open items
• Seam standoff. The analytic seam is pinned at the bend tangent line while mesh evidence begins at the tangent line plus the exclusion guard, so a gap of guard scale exists by construction wherever no lateral evidence wraps around the seam end. We measured 0.505–0.647 mm against a 0.5 mm guard at such pins, and 0.02–0.37 mm where lateral evidence exists. This caps what the reported deviation metric can show and must be reported separately from fit quality, since it measures upstream seam versus mesh disagreement.
• Runtime. Full-beam instrumentation costs 12–14 minutes per body in the worst case. This is an offline diagnostic, not a production mode; production reconstruction is one to five minutes per body, comparable to the 235–904 seconds reported by Nehme et al. [2026].
• Upstream dependency. Stage 2 consumes the constraint graph and never re-estimates it. Where the upstream bend angle is wrong, the reconstruction is correct geometry at a wrong angle, and the error is reported rather than repaired. This is the intended contract, but it means end-to-end accuracy is bounded by Stage 1.
• Out of scope. Curved bend lines, flat-pattern unfolding, variable thickness, non-sheet geometry, and hems below the separation the connectivity test can resolve.
11. Conclusion
We have described a mesh-to-B-Rep pipeline for sheet-metal parts in which the manufacturing constraints of the process are carried by the representation rather than applied as validation. The central mechanism is an arc-length/curvature chain anchored at analytically known fold seams, under which tangency between primitives, continuity, and closure of the run cease to be constraints requiring enforcement and repair, and the degenerate large-radius arc ceases to be representable. Around it we separate the datum plane from the measurement plane so that upstream error becomes a measured and attributable quantity; we take outline evidence from projected cover-face boundary loops, whose sensitivity to that upstream error scales with the sheet thickness rather than with the wall length; we pose parameter snapping as a likelihood-ratio test against a propagated covariance; and we treat an element whose parameters the evidence does not determine as an illegal hypothesis rather than as a fitted element.
The measurement study behind these choices is as much of the contribution as the choices themselves. On every node that reconstructs, the best legal chain in the enumerated space attains the measured tessellation noise floor of its body, which localizes the remaining difficulty in segmentation and selection rather than in the fit. The single most consequential parameter turned out to be one conventionally treated as a constant: setting the outline simplification tolerance from the measured chord residual of the input converted a node that had failed through five successive pipeline revisions into a noise-floor reconstruction. Three of fourteen nodes remain unreconstructed and are reported with their diagnosis.
The broader claim we would defend is narrow and, we think, transferable. In domain-agnostic CAD reconstruction, geometric fidelity is the only available signal, and the operator vocabulary is chosen for expressiveness. When the manufacturing process is known, the vocabulary is given, and the useful design freedom moves from choosing operations to choosing where the process constraints act. Placing them in the representation removes whole classes of failure by making them unrepresentable, which is a stronger guarantee than any amount of checking, and it changes what the remaining failures are. Making those remaining failures visible — including the ones that refuted our own hypotheses — is what the second half of this paper reports.
Acknowledgements
This work was carried out within the ELARA-AI project, Geometric Constraint Intelligence axis. The author thanks the project partners for access to the industrial part corpus.
References
Alrashedy, K., Tambwekar, P., Zaidi, Z.H., Langwasser, M., Xu, W., and Gombolay, M. Generating CAD code with vision-language models for 3D designs. International Conference on Learning Representations, 2025.
Camba, J.D., Contero, M., and Company, P. Parametric CAD modeling: An analysis of strategies for design reusability. Computer-Aided Design, 74:18–31, 2016.
Chang, A.X., Funkhouser, T., Guibas, L., Hanrahan, P., Huang, Q., Li, Z., Savarese, S., Savva, M., Song, S., Su, H., Xiao, J., Yi, L., and Yu, F. ShapeNet: An information-rich 3D model repository. arXiv:1512.03012, 2015.
Chernov, N., and Lesort, C. Least squares fitting of circles. Journal of Mathematical Imaging and Vision, 23(3):239–252, 2005.
Doris, A.C., Alam, M.F., Heyrani Nobari, A., and Ahmed, F. CAD-Coder: An open-source vision-language model for computer-aided design code generation. ASME IDETC/CIE, 2025.
Douglas, D.H., and Peucker, T.K. Algorithms for the reduction of the number of points required to represent a digitized line or its caricature. Cartographica, 10(2):112–122, 1973.
Du, T., Inala, J.P., Pu, Y., Spielberg, A., Schulz, A., Rus, D., Solar-Lezama, A., and Matusik, W. InverseCSG: Automatic conversion of 3D models to CSG trees. ACM Transactions on Graphics, 37(6):1–16, 2018.
Efron, B., and Morris, C. Data analysis using Stein’s estimator and its generalizations. Journal of the American Statistical Association, 70(350):311–319, 1975.
Garland, M., and Heckbert, P.S. Surface simplification using quadric error metrics. SIGGRAPH, 209–216, 1997.
Hopf, H. Über die Drehung der Tangenten und Sehnen ebener Kurven. Compositio Mathematica, 2:50–62, 1935.
James, W., and Stein, C. Estimation with quadratic loss. Berkeley Symposium on Mathematical Statistics and Probability, 361–379, 1961.
Jayaraman, P.K., Lambourne, J.G., Desai, N., Willis, K., Sanghi, A., and Morris, N.J. SolidGen: An autoregressive model for direct B-rep synthesis. Transactions on Machine Learning Research, 2022.
Kania, K., Zieba, M., and Kajdanowicz, T. UCSG-Net: Unsupervised discovering of constructive solid geometry tree. Advances in Neural Information Processing Systems, 33:8776–8786, 2020.
Kåsa, I. A circle fitting procedure and its error analysis. IEEE Transactions on Instrumentation and Measurement, 25(1):8–14, 1976.
Koch, S., Matveev, A., Jiang, Z., Williams, F., Artemov, A., Burnaev, E., Alexa, M., Zorin, D., and Panozzo, D. ABC: A big CAD model dataset for geometric deep learning. CVPR, 9601–9611, 2019.
Kolodiazhnyi, M., Tarasov, D., Zhemchuzhnikov, D., Nikulin, A., Zisman, I., Vorontsova, A., Konushin, A., Kurenkov, V., and Rukhovich, D. cadrille: Multi-modal CAD reconstruction with online reinforcement learning. arXiv:2505.22914, 2025.
Lambourne, J.G., Willis, K., Jayaraman, P.K., Zhang, L., Sanghi, A., and Malekshan, K.R. Reconstructing editable prismatic CAD from rounded voxel models. SIGGRAPH Asia Conference Papers, 1–9, 2022.
Lee, M., Zhang, D., Jambon, C., and Kim, Y.M. BrepDiff: Single-stage B-rep diffusion model. SIGGRAPH Conference Papers, 1–11, 2025.
Levenberg, K. A method for the solution of certain non-linear problems in least squares. Quarterly of Applied Mathematics, 2(2):164–168, 1944.
Li, M., Langbein, F.C., and Martin, R.R. Detecting design intent in approximate CAD models using symmetry. Computer-Aided Design, 42(3):183–201, 2010.
Li, P., Guo, J., Zhang, X., and Yan, D.-M. SECAD-Net: Self-supervised CAD reconstruction by learning sketch-extrude operations. CVPR, 16816–16826, 2023.
Li, Y., Lin, C., Liu, Y., Long, X., Zhang, C., Wang, N., Li, X., Wang, W., and Guo, X. CADDreamer: CAD object generation from single-view images. CVPR, 21448–21457, 2025.
Lipman, Y., Chen, R.T.Q., Ben-Hamu, H., Nickel, M., and Le, M. Flow matching for generative modeling. International Conference on Learning Representations, 2023.
Liu, Y., Obukhov, A., Wegner, J.D., and Schindler, K. Point2CAD: Reverse engineering CAD models from 3D point clouds. CVPR, 3763–3772, 2024.
Marquardt, D.W. An algorithm for least-squares estimation of nonlinear parameters. SIAM Journal on Applied Mathematics, 11(2):431–441, 1963.
Mo, K., Zhu, S., Chang, A.X., Yi, L., Tripathi, S., Guibas, L.J., and Su, H. PartNet: A large-scale benchmark for fine-grained and hierarchical part-level 3D object understanding. CVPR, 909–918, 2019.
Nehme, G., Whalen, E., and Ahmed, F. CADFit: Precise mesh-to-CAD program generation with hybrid optimization. Proceedings of the 43rd International Conference on Machine Learning, PMLR 306, 2026. arXiv:2605.01171.
Oesau, S., Lafarge, F., and Alliez, P. Planar shape detection and regularization in tandem. Computer Graphics Forum, 35(1):203–215, 2016.
Oquab, M., Darcet, T., Moutakanni, T., Vo, H., Szafraniec, M., Khalidov, V., Fernandez, P., Haziza, D., Massa, F., El-Nouby, A., et al. DINOv2: Learning robust visual features without supervision. Transactions on Machine Learning Research, 2024.
Paschalidou, D., Ulusoy, A.O., and Geiger, A. Superquadrics revisited: Learning 3D shape parsing beyond cuboids. CVPR, 10344–10353, 2019.
Pratt, V. Direct least-squares fitting of algebraic surfaces. ACM SIGGRAPH Computer Graphics, 21(4):145–152, 1987.
Ren, D., Zheng, J., Cai, J., Li, J., and Zhang, J. ExtrudeNet: Unsupervised inverse sketch-and-extrude for shape parsing. European Conference on Computer Vision, 482–498, 2022.
Rissanen, J. Modeling by shortest data description. Automatica, 14(5):465–471, 1978.
Rukhovich, D., Dupont, E., Mallis, D., Cherenkova, K., Kacem, A., and Aouada, D. CAD-Recode: Reverse engineering CAD code from point clouds. ICCV, 9801–9811, 2025.
Schnabel, R., Wahl, R., and Klein, R. Efficient RANSAC for point-cloud shape detection. Computer Graphics Forum, 26(2):214–226, 2007.
Schwarz, G. Estimating the dimension of a model. The Annals of Statistics, 6(2):461–464, 1978.
Taubin, G. Estimation of planar curves, surfaces, and nonplanar space curves defined by implicit equations, with applications to edge and range image segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 13(11):1115–1138, 1991.
Taubin, G. Curve and surface smoothing without shrinkage. IEEE International Conference on Computer Vision, 852–857, 1995.
Tulsiani, S., Su, H., Guibas, L.J., Efros, A.A., and Malik, J. Learning shape abstractions by assembling volumetric primitives. CVPR, 2635–2643, 2017.
Uy, M.A., Chang, Y.-Y., Sung, M., Goel, P., Lambourne, J.G., Birdal, T., and Guibas, L.J. Point2Cyl: Reverse engineering 3D objects from point clouds to extrusion cylinders. CVPR, 11850–11860, 2022.
Willis, K.D., Pu, Y., Luo, J., Chu, H., Du, T., Lambourne, J.G., Solar-Lezama, A., and Matusik, W. Fusion 360 Gallery: A dataset and environment for programmatic CAD construction from human design sequences. ACM Transactions on Graphics, 40(4):1–24, 2021.
Wu, R., Xiao, C., and Zheng, C. DeepCAD: A deep generative network for computer-aided design models. ICCV, 2021.
Xu, X., Willis, K.D., Lambourne, J.G., Cheng, C.-Y., Jayaraman, P.K., and Furukawa, Y. SkexGen: Autoregressive generation of CAD construction sequences with disentangled codebooks. International Conference on Machine Learning, 24698–24724, 2022.
Xu, X., Lambourne, J., Jayaraman, P., Wang, Z., Willis, K., and Furukawa, Y. BrepGen: A B-rep generative diffusion model with structured latent geometry. ACM Transactions on Graphics, 43(4):1–14, 2024.
You, Y., Uy, M.A., Han, J., Thomas, R., Zhang, H., Du, Y., Chen, H., Engelmann, F., You, S., and Guibas, L. Img2CAD: Reverse engineering 3D CAD models from images through VLM-assisted conditional factorization. arXiv:2408.01437v2, 2025.
Yu, N., Alam, M.F., Hart, A.J., and Ahmed, F. GenCAD-3D: CAD program generation using multimodal latent space alignment and synthetic dataset balancing. ASME IDETC/CIE, 2025.
Zou, C., Yumer, E., Yang, J., Ceylan, D., and Hoiem, D. 3D-PRNN: Generating shape primitives with recurrent neural networks. ICCV, 900–909, 2017.