Learning on boundary representations (B-reps) requires robustness to the pose of a part, since CAD models are not stored in a canonical orientation. Existing B-rep networks either operate on world-frame coordinates and normals, and thus degrade under rotation, or encode each face in a local reference frame. Local frames yield invariance, but reduce inter-face messages to scalars and discard the relative orientation of adjacent faces. We propose SO3brep, an SO(3)-equivariant graph neural network on the B-rep face-adjacency graph. Node features are computed in local frames and mapped into a shared frame by Wigner D-matrices. Clebsch-Gordan tensor products couple these features with the directions between adjacent faces, so that relative orientation is preserved throughout message passing and the output remains SE(3)-invariant. Across three face-segmentation and two classification benchmarks with randomly rotated test parts, SO3brep achieves the highest accuracy among the compared B-rep networks and equivariant point cloud networks, with the fewest parameters. Its advantage is largest with few labeled parts, a setting typical of industrial CAD. Code is available at https://github.com/UGent-CVAMO/so3brep.
Figures & tables
Figure 1: Face feature construction. Each B-rep face is initialized with features from three encoding paths before message passing. Surface attributes ( ℓ=0,1 ): surface-type and log-area scalars, plus the three LRF axes as ℓ=1 channels. Surface geometry and trimming ( ℓ=0 ): a CNN on the UV grid, expressed in the LRF. Ray field ( ℓ=0,1,2 ): a spherical-harmonic (SH) encoding of rays cast over two hemispheres, with ray directions fixed in the LRF. Feature fusion combines the scalars and projects all paths equivariantly to the GNN input features hi(ℓ) , with Cℓ channels for each degree ℓ∈{0,1,2} .
Figure 2: Equivariant message passing. Four unit vectors join the face centers ci , cj and the shared edge: r^ij , r^jb , r^bi , and the edge chord t^ji . Their SH eji are coupled with the sender’s irreps hj by CG tensor products, so each message carries the relative directions of the two faces. A radial network maps the invariant edge scalars aji and the center distance to the gates of each coupling path.
Acc.
mIoU
Model
Params (M)
Original
SO(3)
Original
SO(3)
MFCAD++
UV-Net
1.37
98.62 ± 0.05
41.09 ± 6.38
96.02 ± 0.15
20.66 ± 3.04
FoV-Net
0.59
99.05 ± 0.06
99.05 ± 0.06
97.27 ± 0.20
97.27 ± 0.20
VN-PointNet
1.08
83.57 ± 1.61
83.57 ± 1.61
31.38 ± 3.51
31.38 ± 3.51
SO3brep
0.41
99.45 ± 0.02
99.45 ± 0.02
98.47 ± 0.12
98.47 ± 0.12
Table 1: Face segmentation on original and randomly rotated test parts. All models are trained on the original orientations. Accuracy and mIoU in %, mean ± std over five random seeds. Best in bold , second best underlined .
SolidLetters
BenDFM
Model
Params (M)
Original
SO(3)
Original
SO(3)
UV-Net
1.29
97.36 ± 0.14
9.22 ± 0.70
75.50 ± 0.45
56.53 ± 1.12
FoV-Net
0.59
96.38 ± 0.14
96.38 ± 0.14
81.13 ± 0.18
81.13 ± 0.18
VN-PointNet
0.81
85.81 ± 0.40
85.81 ± 0.40
73.55 ± 0.18
73.55 ± 0.18
CSEConv
2.09
87.48 ± 0.18
87.48 ± 0.18
76.69 ± 0.77
76.69 ± 0.77
SO3brep
0.36
97.03 ± 0.13
97.03 ± 0.13
81.68 ± 0.79
81.68 ± 0.79
Table 2: Shape classification on original and randomly rotated test parts. All models are trained on the original orientations. Accuracy in %, mean ± std over five random seeds. Best in bold , second best underlined .
Full training set
100 training parts
Original
SO(3)
SO(3)
Message function
Params (M)
Acc.
mIoU
Acc.
mIoU
Acc.
mIoU
Fusion 360
SO3brep (CG)
0.40
95.11 ± 0.12
82.05 ± 0.50
95.11 ± 0.12
82.05 ± 0.50
83.45 ± 1.51
48.53 ± 4.26
Attention (non-eq.)
0.82
95.31 ± 0.10
81.84 ± 0.51
87.95 ± 0.27
61.89 ± 0.82
79.00 ± 1.52
41.92 ± 2.43
Concat. (non-eq.)
0.68
95.08 ± 0.25
81.09 ± 1.02
87.81 ± 1.11
62.14 ± 1.86
76.44 ± 1.36
35.86 ± 2.65
Table 3: Controlled comparison of message functions on identical input features. FoV-Net uses its own architecture and features and is shown for reference. Accuracy and mIoU in %, mean ± std over five random seeds (for 100 training parts, over five random training subsets). Best of the four message functions in bold .
Figure 3: Data efficiency. Learning curves for MFCAD++ segmentation versus training size (log scale). SO3brep is above UV-Net and FoV-Net at every training-set size, with the largest gap at the smallest sizes. Shaded areas give the standard deviation over five random splits.
Figure 4: Ablations on Fusion 360 face segmentation. Each row removes or reduces one component of SO3brep; bars give accuracy and mIoU (%, mean ± std over five random seeds), and Δ the change from the full model in percentage points.
Appendix figures & tables2 assets
Supplementary material from the paper’s appendix.
Appendix
Preprocessing (ms/part)
Runtime (Fusion 360)
Model
Fusion 360
MFTRCAD
Params (M)
Inference (ms)
Train step (ms)
Train mem. (MB)
UV-Net
115.7
195.3
1.36
10.2 ± 0.1
30.9 ± 1.4
854.6
FoV-Net
125.8
162.2
0.59
8.3 ± 0.4
32.0 ± 2.8
414.7
VN-PointNet
282.7
255.2
1.08
128.9 ± 1.4
419.9 ± 1.2
8701.9
SO3brep
173.8
243.1
0.40
22.0 ± 0.2
85.4 ± 4.4
669.2
Appendix
Table 4: Computational cost. Preprocessing is averaged over 1,000 parts per dataset. Runtime is measured on Fusion 360 with batch size 64 on an NVIDIA A5000, mean ± std over 1,000 forward passes after warm-up.
Faces
Edges
Dataset
Parts
Mean
Max
Mean
Max
MFCAD++
59,649
30.0
86
306.5
1,096
MFTRCAD
28,637
25.5
149
236.3
1,680
Fusion 360
35,680
14.7
421
130.1
4,428
SolidLetters
96,430
33.8
523
360.7
6,224
BenDFM
14,000
53.9
126
463.1
1,232
Appendix
Table 5: Face-adjacency graph sizes. Edges are directed: each pair of adjacent faces contributes one edge in each direction.