Source-linked AI summary
SolidGen: An Autoregressive Model for Direct B-rep Synthesis
Pradeep Kumar Jayaraman, Joseph G. Lambourne, Nishkrit Desai, Karl D. D. Willis, Aditya Sanghi, Nigel J. W. Morris
TL;DR
Many CAD models lack stored operation histories, while recent generation methods focus on sketch-and-extrude sequences. SolidGen directly models B-rep vertices, edges, and faces with an indexed representation, and is reported to produce coherent, diverse, realistic models.
Problem
Many CAD files lack modeling-operation histories, while direct B-rep synthesis offers a way to learn from them and supports applications that require the B-rep itself.
Source: §1 · pp. 1–2Method
Results
SolidGen produces coherent, diverse B-reps and is reported to generate more realistic results than the state of the art in a perceptual study.
Source: §1 · p. 2, §6 · p. 13Takeaways & Limitations
The method is described as potentially fitting CAD workflows because software can import solids without modeling history, and it can generate local B-rep regions as well as entire solids.
Source: §6 · p. 13Very complex, long-sequence models increase training time and test-time compounding-error risk, and the indexed format does not support conic sections or splines common in freeform modeling.
Source: §6 · p. 13
Abstract
from arXiv · showhide
The Boundary representation (B-rep) format is the de-facto shape representation in computer-aided design (CAD) to model solid and sheet objects. Recent approaches to generating CAD models have focused on learning sketch-and-extrude modeling sequences that are executed by a solid modeling kernel in postprocess to recover a B-rep. In this paper we present a new approach that enables learning from and synthesizing B-reps without the need for supervision through CAD modeling sequence data. Our method SolidGen, is an autoregressive neural network that models the B-rep directly by predicting the vertices, edges, and faces using Transformer-based and pointer neural networks. Key to achieving this is our Indexed Boundary Representation that references B-rep vertices, edges and faces in a well-defined hierarchy to capture the geometric and topological relations suitable for use with machine learning. SolidGen can be easily conditioned on contexts e.g., class labels, images, and voxels thanks to its probabilistic modeling of the B-rep distribution. We demonstrate qualitatively, quantitatively, and through perceptual evaluation by human subjects that SolidGen can produce high quality, realistic CAD models.
1 Introduction
Prior CAD-generation methods predict sketch-and-extrude operation sequences, while many B-rep files lack operation histories and direct synthesis has distinct uses. SolidGen directly synthesizes B-reps, using an indexed representation and supporting conditional generation.
Motivation
- Prior sequence-based methods are limited to sketch-and-extrude operations; fillets, chamfers, and freeform modeling are challenging to extend.Predicted solids’ edges are unavailable to the network until postprocessing, and sketch-and-extrude workflows use 2D planar curves.Source: §1 · pp. 1–2
- Direct B-rep synthesis can use CAD files without stored operation histories, including a public dataset of 1M models versus smaller operation-sequence datasets of approximately 190K.The passage also identifies freeform curves and surfaces and several repair or manufacturing workflows as applications for direct synthesis.Source: §1 · p. 2
Contributions
- SolidGen directly synthesizes B-reps with Transformers and two-level pointer networks, without supervision from CAD modeling-operation sequences.The paper describes it as the first generative model to synthesize B-reps directly, to the authors’ knowledge.Source: §1 · p. 2
- The indexed boundary representation encodes B-reps as numeric arrays while preserving enough information to recover their geometry and topology completely.Its hierarchy references vertices, edges, and faces.Source: §1 · p. 2
Evaluation and conditioning
- SolidGen is reported to produce more realistic results than the state of the art in a human perceptual study, alongside qualitative and quantitative unconditional-generation evaluations.The paper also demonstrates conditioning on class labels, images, and voxels.Source: §1 · p. 2
2 Related Work
Prior work studies B-rep learning, CSG, and operation-sequence generation, but direct generation targets the underlying B-rep geometry and topology. SolidGen builds on pointer-based geometry and topology synthesis while modeling complete B-reps.
Learning from B-reps
- B-rep graph learning has been used for classification, segmentation, custom convolutions, and hierarchical graph structures; this work instead develops a decoder for direct synthesis.The cited graph-learning methods include Ansaldi et al. (1985), Cao et al. (2020), Jayaraman et al. (2021), Lambourne et al. (2021), and Jones et al. (2021).Source: §2 · p. 3
Constructive Solid Geometry (CSG)
- CSG methods build shapes from primitives and Boolean operations, then use a geometry kernel to obtain B-reps; this work is described as applying beyond reconstruction.The passage cites neural-guided and non-neural shape-program reconstruction approaches.Source: §2 · p. 3
Sequential CAD Generation
- Sequential CAD-generation methods predict modeling operations, but extending them beyond sketch and extrude remains challenging because B-rep edges are created only in postprocessing.Integrating a CAD kernel with reinforcement learning is noted as an alternative with extended training times.Source: §2 · p. 3
Direct B-rep Generation
- Direct B-rep generation joins parametric curves and surfaces into topology; SolidGen draws on pointer-network mesh synthesis and predicts complete B-reps rather than only selected faces.The passage contrasts SolidGen with concurrent work on planar and cylindrical faces and point-cloud reverse engineering that requires combinatorial optimization.Source: §2 · p. 3
3 Representation
The indexed B-rep represents geometric and topological relationships as numeric lists that can be converted back into a B-rep. It retains selected curve and surface information while rules and a solid-modeling kernel recover omitted details.
Boundary Representation
- B-rep faces can contain holes bounded by oriented edge loops, or wires, and may use planar or curved surfaces with line, arc, circle, or spline edges.Wires delimit visible and hidden surface regions.Source: §3 · pp. 3–4, Figure 2 · p. 4
Indexed Boundary Representation
- The indexed B-rep uses vertex, edge, and face lists: edges index vertices, and faces index edges, forming a hierarchy suited to pointer networks.Vertices store 3D coordinates; edge hyperedge cardinality distinguishes lines from arcs.Source: §3 · p. 4, Figure 3 · p. 5
- The representation is invertible to a B-rep but retains only minimal geometric and topological information, leaving surface parameters and trimming wires for postprocessing.It currently supports line and arc curves and plane, cylinder, cone, sphere, and torus surfaces, but not B-splines or conic sections.Source: §3 · p. 4
Recovering a Boundary Representation
- A rule-based procedure infers surface types and parameters from the face-bounding curves, then uses a solid-modeling kernel to build the B-rep.For example, coplanar vertices define a trimmed planar surface, while certain non-planar curve sets indicate cylinders, cones, spheres, or tori.Source: §3 · pp. 4–5
Indexed Boundary Representation
- Periodic surfaces must first be subdivided into patches homeomorphic to a disk before processing in the indexed representation.The passage names cylinders, cones, spheres, and tori as periodic surfaces.Source: §3 · p. 4
4 SolidGen Architecture
SolidGen models B-reps directly with an autoregressive factorization that generates vertices, then edges, then faces. Separate models encode each stage and build the indexed topology.
4 SolidGen Architecture
- SolidGen factorizes the B-rep distribution into conditional models, sampling vertices first, then edges conditioned on vertices, and faces conditioned on edges and vertices.Generation can also be conditioned on context z, derived from class labels, images, or voxels.Source: §4 · p. 5
4.1 Vertex Model
- The vertex model sorts vertex coordinates lexicographically, flattens and quantizes them into a sequence, and uses a Transformer decoder to predict tokens through an end marker.Vertices include additional points inserted on B-rep edges to encode curve primitives.Source: §4.1 · pp. 5–6
4.2 Edge Model
- The edge model flattens sorted vertex indices into a sequence with edge-start and end tokens, then predicts edge tokens autoregressively by pointing to vertex indices.The edge sequence is conditioned on vertices; sorting each edge and the edges themselves provides ordering invariance.Source: §4.2 · pp. 6–7
4.3 Face Model
- The face model flattens edge indices into a sequence with face-start and end tokens, then predicts faces by pointing to embeddings of their boundary edges.Face features gather edge embeddings, which encode incident vertices.Source: §4.3 · pp. 7–8
5 Experiments
SolidGen is evaluated on unconditional and conditional B-rep generation using modeling metrics, sample-quality comparisons, and human evaluation. Results show higher validity than DeepCAD in unconditional generation, while conditional modeling metrics improve with joint conditioning.
5 Experiments
- Experiments use PVar for class conditioning and filtered DeepCAD models for unconditional and image/voxel conditioning; validity, novelty, and uniqueness measure sample quality.DeepCAD is filtered to 49,759 models, and the quality metrics count solids built as valid and exclude duplicates from the training set or generated sample set.Source: §5 · pp. 8–9
5.2 Conditional Generation
- Class conditioning improved NLL by −3.22 and accuracy by +0.38%; image conditioning improved NLL by −3.6 and accuracy by +3.6%; voxel conditioning improved NLL by −2.94 and accuracy by +1.5%.These comparisons are against the unconditional SolidGen model trained on the same data.Source: Table 1 · p. 9, §5.2 · p. 11
5.1 Unconditional Generation
- SolidGen’s unconditional samples achieved 4.54 bits NLL and 97.05% accuracy, versus 56.99 bits and 1.88% for the Uniform baseline.Edge and face models outperformed the vertex model, which the authors attribute to their being more constrained once vertices are estimated.Source: §5.1 · p. 9
- 20.99% to 26.01% higher valid ratio than DeepCAD, while SolidGen’s novel and unique ratios are lower by 4.38% to 30.51% and 1.52% to 65.32%, respectively.Across top-p settings, increasing p reduces validity while increasing novelty and uniqueness.Source: Table 2 · p. 10, §5.1 · p. 10
- 52.67% of the time, evaluators judged SolidGen more realistic than a randomly selected training-set model, compared with 35.22% for DeepCAD.Each image pair was rated by seven evaluators.Source: §5.1 · pp. 10–11, Figure 6 · p. 11
- For SolidGen samples generated with top-p=0.9, kernel density estimates indicate that the samples capture modes of the DeepCAD training-set distribution.Figure 7 compares distributions computed from SolidGen samples and the DeepCAD training set.Source: Figure 7 · p. 11, §5.1 · p. 11
5.2 Conditional Generation
- SolidGen’s conditional samples show design variations close to their class, image, or voxel inputs, while valid and unique ratios decrease from class to image to voxel conditioning.The authors suspect data imbalance contributes to the trend; they note image conditioning is less precise than 3D voxel conditioning and easier for generating variations.Source: Figure 8 · p. 12, Figure 9 · p. 12, Figure 10 · p. 12
- Conditioning only the vertex model improved NLL but reduced accuracy below the unconditional model, whereas joint conditioning performed best in all cases.Vertex-only conditioning allows the vertex, edge, and face models to be trained independently in parallel.Source: §5.2 · p. 13
6 Conclusion
SolidGen directly learns and synthesizes B-rep CAD models without CAD-operation-sequence supervision, using the indexed B-rep format to represent vertices, edges, and faces. The conclusion describes potential CAD workflows and notes limitations in model complexity, freeform geometry, and geometry-based training.
6 Conclusion
- Extremely complex CAD models with long sequences increase training time and the chance of compounding test-time errors, possibly due to teacher forcing.The authors suggest that scaling the model and training on larger CAD datasets might alleviate this limitation.Source: §6 · p. 13
- The indexed B-rep format supports common mechanical-CAD curve and surface types but not conic sections or splines common in freeform modeling.B-spline surfaces would require additional prediction of a grid of interpolating or control points because boundary curves do not fully determine them.Source: §6 · p. 13
- Classification losses do not provide the B-rep geometry needed for reconstruction losses used in applications such as reverse engineering.That geometry is unavailable until postprocessing; the authors also identify conditioning schemes and latent representations as future research directions.Source: §6 · p. 13
- SolidGen directly learns from and synthesizes B-rep CAD models without supervision from CAD modeling-operation sequences.The indexed B-rep format captures the hierarchy of vertices, edges, and faces in a representation suited to machine learning.Source: §6 · p. 13
- SolidGen produces coherent, diverse B-reps in comparison with prior work and could be integrated into CAD workflows that import solids without modeling history.The conclusion also identifies local-region generation, conditional generation, inpainting, parting-surface creation, and file-format conversion as potential applications.Source: §6 · p. 13
A.1 Hashing Indexed B-reps
The appendix describes a duplication-detection procedure for comparing B-reps using geometry-sensitive graph hashes. It builds face-adjacency and vertex-adjacency graphs and concatenates their hashes.
A.1 Hashing Indexed B-reps
- Duplication detection compares B-reps to assess exact matches with training examples and quantify sample diversity.The procedure is based on the Weisfeiler Lehman isomorphism test.Source: §A.1 · p. 18
- The method builds a face-adjacency graph with faces as nodes and a vertex-adjacency graph with vertices as nodes.Adjacent faces are connected by graph edges in the first graph; B-rep edges connect vertex nodes in the second.Source: §A.1 · p. 18
- Quantized vertex positions initialize vertex hashes, while curve types become edge attributes, making each solid's hash geometry-dependent.The final hash string concatenates the graph hashes from the face-adjacency and vertex-adjacency graphs.Source: §A.1 · p. 18
A.2 Converting Indexed B-reps to B-reps
The appendix introduces the complete conversion procedure from indexed B-reps, represented as B = {V, E, F}, to B-reps.
A.2 Converting Indexed B-reps to B-reps
- The conversion procedure takes indexed B-reps represented as B = {V, E, F} as input.The passage identifies V, E, and F as the indexed B-rep components.Source: §A.2 · p. 18
- The appendix's stated task is to convert indexed B-reps into B-reps.The passage frames the following material as the complete conversion method.Source: §A.2 · p. 18
- The section covers the complete method rather than only a partial conversion step.Its stated conversion runs from the indexed representation to B-reps.Source: §A.2 · p. 18
A.2.1 Vertices and Edges
The indexed representation uses edge entries to dereference points and recover edge geometry and topology. The method handles line and arc curves based on edge point counts while restoring arc point order.
A.2.1 Vertices and Edges
- Each point in V is a potential B-rep vertex, and edge entries dereference into V to collect points defining edge geometry.Edge endpoints create B-rep vertices when needed and the topological edge connecting them.Source: §A.2.1 · p. 18
- Two points define a line and three define an arc, so edge-point cardinality specifies curve geometry.The edge endpoints are also used to construct the corresponding topological B-rep edge.Source: §A.2.1 · p. 18
- Because edge indices are sorted for ordering invariance, the method tests three-point permutations to identify an arc's start, midpoint, and end.It selects the ordering whose second point coincides with the point evaluated at the arc's middle parameter.Source: §A.2.1 · p. 18
A.2.2 Wires
Wires are recovered by connecting a face’s bounding edges into closed loops. The largest loop by bounding-box extent is treated as the outer wire; the others define holes.
A.2.2 Wires
- A vertex-edge graph turns bounding edges into cycles: each nontrivial cycle defines a wire, and the largest by bounding-box extent is the outer wire.The remaining wires are assumed to run clockwise and define holes.Source: §A.2.2 · p. 18
A.2.3 Surfaces
This appendix details how SolidGen’s geometry and topology are reconstructed, constrained, and evaluated, alongside human evaluation, dataset construction, encoder specifications, and additional generation results. SolidGen’s realism scores resemble the training data, while DeepCAD’s scores skew toward training examples.
A.2.3 Surfaces
- Five surface types are identified by the simplest boundary-consistent fit, testing planes before cylinders, cones, spheres, and tori; a single boundary circle remains ambiguous.For line-and-arc boundaries, equal arc radii, parallel normals, and aligned centers indicate a cylinder; otherwise the face is treated as a cone. Arc-only boundaries are checked for a sphere, then fitted as a torus if needed.Source: §A.2.3 · pp. 18–19, Figure A1 · p. 19
A.2.4 Faces
- Faces are built from their wires and surfaces, then sewn into shells that are further stitched into a single solid model.Source: §A.2.4 · p. 19
A.3 Masking Invalid Logits
- Invalid-logit masking enforces ordered edge and face tokens, minimum edge and face structure, and at most two face uses per edge.The constraints preserve sorted token order and restrict generated edges to lines or arcs and faces to closed structures.Source: §A.3 · pp. 19–20
A.4 Human Evaluation
- SolidGen’s realism scores center at 3.5 with wider-than-chance tails, while DeepCAD shows a clear skew favoring training examples.The SolidGen pattern indicates similarity to training-data realism and greater-than-chance agreement among raters about individual examples.Source: §A.4 · pp. 20–21
A.5 Generation of the Parametric Variation Dataset
- The PVar dataset varies constrained sketches from 60 hand-picked templates, producing 60 classes of solids through base and inner-wire extrusions with Boolean unions or subtractions.Sketch constraints preserve design intent such as horizontal, vertical, and parallel lines and concentric arcs and circles.Source: §A.5 · p. 21
A.6 Criteria used to Evaluate Validity of Generated B-reps
- Generated B-reps count as valid only if built successfully and triangulatable, with correctly ordered, non-self-intersecting wires and no bad shell edges.Source: §A.6 · p. 21
A.7 Architecture of Image and Voxel Encoders
- The image encoder maps 105 × 128 RGB images to 16 × 16 features of dimension 256; the voxel encoder maps 64 × 64 × 64 grids to 8 × 8 × 8 features used via cross-attention.Source: §A.7 · p. 22
A.8 Additional Results
- Supplementary figures show unconditional comparisons, class-, image-, and voxel-conditioned samples, and top-k next-token accuracy on the DeepCAD test set.Source: §A.8 · p. 22, Figure A5 · p. 23, Figure A7 · p. 25
Related papers
Cited by
- GraphCAD: Geometry-Aware Diffusion on Edge-Adjacency Graphs for CAD Generation2026
- CADFather: Autonomous CAD Reconstruction through Coordinated Tool Use2026
- Learn the Solid, Not the File: Canonical Inputs for Neural Networks on CAD Boundary Representations2026
- HiFi-BRep: High-Fidelity Latent Representation for Robust B-Rep Generation2026