Each card separates the geometry representation from the XLS process branch and shows where they meet. Execution results prove tensor compatibility and gradients. A separate weak-training diagnostic maps every feasible model back onto common CAD nodes.
Prepared representations6 families
Forward/backward checks19 passed
Independent physical runs2
Validated prediction accuracyUnavailable
Every model prediction mapped onto CAD
These fields use the 18h01 weak target for a training-set representation comparison. Image, voxel and point outputs use stored source triangles and barycentric coordinates; graph outputs are already node-aligned; UV-Net uses a distance-marked face approximation; the tabular scalar is uniform. Gray regions exceed the 10 mm mapping-support threshold.
All-model result comparison
Parameter count and CPU latency were measured in the same environment, but each model processes a different representation size and output domain, so latency is an operational measurement rather than a fair speed ranking. The two-step losses use a synthetic zero target and differ by output domain; only the within-model decrease checks gradient/optimizer behavior. The final column is the only loss computed from the supplied weak CAD/PLY targets.
Model
Output domain
Process fusion
Parameters
CPU forward
Synthetic loss, step 1→2
Weak-target training result
2D CNN/U-Net
pixel
FiLM
37,505
136.397 ms
0.038875 → 0.030681 (+21.1%)
—
FNO2d
pixel/field
FiLM
229,273
57.361 ms
0.028175 → 0.027498 (+2.4%)
—
Dense 3D U-Net
voxel
FiLM
27,249
3.557 ms
0.070244 → 0.065694 (+6.5%)
—
Sparse 3D U-Net
sparse voxel
none
46,432
5.364 ms
—
—
PointNet
point
none
26,561
2.317 ms
0.0072413 → 0.0010095 (+86.1%)
—
DGCNN
point
none
9,025
5.239 ms
0.0088493 → 0.0078437 (+11.4%)
—
Mesh GNN
CAD node
edge-message
37,777
113.922 ms
0.01316 → 0.0091457 (+30.5%)
—
Risk GNN
CAD node + run
edge-message
18,694
29.426 ms
0.5644 → 0.53942 (+4.4%)
loss 0.5600; IoU 0.306; Dice 0.469
UV-Net
B-Rep face
none
1,601
59.354 ms
0.24004 → 0.23371 (+2.6%)
—
Tabular MLP
run
direct concat
11,457
0.030 ms
0.049162 → 0.042526 (+13.5%)
—
Task comparison: the risk GNN is currently the closest match to STEP + XLS → risk area + deformation because it produces CAD-node fields and consumes the process vector. Its IoU/Dice are training-set diagnostics from two unvalidated NG runs. CNN/FNO/3D U-Net already accept process conditioning but have no aligned spatial labels; PointNet, DGCNN, UV-Net and Sparse U-Net still need their XLS branch wired.
Shared XLS thermal/process branch
The plot shows the 34 heater values supplied to process-aware models. The complete vector has 50 XLS channels; values, observed masks and heater-imputation masks are retained separately.
Requested MLP + encoder-feature concatenation
This is the explicit late-fusion variant to test beside the current FiLM models. The process embedding is repeated across pixels, voxels, points, graph nodes or B-Rep faces before concatenation.
Geometry
prepared geometryimage / voxel / point / graph / face
→
geometry encoderz_geo [B,S,C]
Process
XLS input50 values + observed/imputed masks
→
process MLP150→64→32
→
repeat embeddingz_proc [B,S,32]
Fusion / output
concatenate[z_geo ; z_proc]
→
fusion MLP/convC+32→C
→
spatial headsrisk + deformation
→
global pool + headdefect type
For the current two-run diagnostic, the GNN injects its process embedding into every edge message. CNN/FNO/3D U-Net currently use a single Linear-to-FiLM branch. PointNet, DGCNN, UV-Net and Sparse U-Net currently have no process branch.
image
2D CNN / U-Net
forward/backward passed
Prepared geometry input · open source gallery
Route: STEP → six 17-channel orthographic images + 17 masks → 2D CNN encoder; 50 XLS + 6 CAD-summary values and 56 masks → single linear projection → FiLM at bottleneck → pixel field [view, 1, H, W]
Geometry
image input34×128×128
→
Conv2d ×234→16→16
→
MaxPool2d128→64
→
Conv2d ×216→32→32
Process
process input112
→
Linear112→64
→
splitscale 32 + bias 32
Fusion / output
FiLM bottleneck32×64×64
→
ConvTranspose2d32→16
→
concat skip16+16
→
Conv2d ×232→16→16
→
1×1 head16→1 pixel
Current code
Thermal/process values generate scale and bias for the deepest image features; skip features and the modulated bottleneck enter the decoder.
Actual checks
1
Parameters
37,505
CPU forward
136.4 ms
Output shape(s)
[[12, 1, 128, 128]]
Execution check only: no validated pixel risk mask exists.
image / field
FNO2d
forward/backward passed
Prepared geometry input · open source gallery
Route: aligned 17-channel image/field + 17 masks → 1×1 lift + Fourier blocks; 50 XLS + 6 CAD-summary values and 56 masks → single linear projection → FiLM before spectral blocks → pixel/field grid
Geometry
field input34×128×128
→
1×1 lift34→24
Process
process input112
→
Linear112→48
→
splitscale 24 + bias 24
Fusion / output
FiLM lifted field24×128×128
→
spectral + skip ×324 channels
→
1×1 head24→1 pixel
Current code
The current input is the CAD image tensor. A physical thermal operator still needs paired input and target fields over time.
Actual checks
1
Parameters
229,273
CPU forward
57.4 ms
Output shape(s)
[[12, 1, 128, 128]]
Architecture execution only; this is not a learned temperature field.
voxel
Dense 3D U-Net
forward/backward passed
Prepared geometry input · open source gallery
Route: STEP → 12-channel dense surface-voxel tensor + 12 masks → 3D convolution encoder; 50 XLS + 6 CAD-summary values and 56 masks → single linear projection → FiLM at 3D bottleneck → voxel field [run, 1, X, Y, Z]
Geometry
voxel input24×32×4×16
→
Conv3d ×224→8→8
→
MaxPool3d16×2×8
→
Conv3d ×28→16→16
Process
process input112
→
Linear112→32
→
splitscale 16 + bias 16
Fusion / output
FiLM bottleneck16×16×2×8
→
ConvTranspose3d16→8
→
concat skip8+8
→
Conv3d ×216→8→8
→
1×1 head8→1 voxel
Current code
The process branch modulates the deepest 3D features before the skip-connected decoder.
Actual checks
1
Parameters
27,249
CPU forward
3.6 ms
Output shape(s)
[[2, 1, 32, 4, 16]]
The voxel input represents sampled surfaces, not filled material volume.
sparse voxel
Sparse 3D U-Net
forward/backward passed
Prepared geometry input · open source gallery
Route: STEP → occupied voxel coordinates + features → Minkowski sparse encoder; XLS branch proposed → append/broadcast process embedding at sparse bottleneck → occupied-voxel field
Geometry
sparse input403 coords, 24 feat
→
MinkowskiConv24→16
→
stride-2 down16→32
→
mid Conv32→32
Process
XLS branchnot wired
Fusion / output
transpose Conv32→16
→
concat sparse skip16+16
→
sparse head32→1 cell
Current code
Geometry-only sparse implementation. Process fusion is not yet wired because MinkowskiEngine is unavailable on this machine.
Actual checks
1
Parameters
46,432
CPU forward
5.4 ms
Output shape(s)
[[403, 1]]
point
PointNet segmentation
forward/backward passed
Prepared geometry input · open source gallery
Route: STEP → 8,192 surface points + normals/features → shared point MLP + global max pool; XLS MLP proposed → append global process embedding to every point → point risk/deformation field
Geometry
point input8,192×C
→
shared Conv1dC→64→128
→
global max128
→
repeat + concat128+128
Process
XLS MLPproposed, not wired
Fusion / output
point head256→64→1
→
outputone scalar / point
Current code
The present PointNet smoke is geometry-only. The diagram shows the intended process-fusion extension.
Actual checks
3
Parameters
25,921, 26,561
CPU forward
1.7–2.3 ms
Output shape(s)
[[1, 8192, 1], [1, 8192, 1], [1, 8192, 1]]
CAD points are valid pre-process input; scan points belong to the post-process inspection task.
point
DGCNN segmentation
forward/backward passed
Prepared geometry input · open source gallery
Route: points → dynamic feature-space kNN → two EdgeConv stages + global pool; XLS MLP proposed → append process embedding to local/global point features → point field
Geometry
point input512×C
→
dynamic kNNk=12
→
Edge MLP 12C→32→32
→
new kNN + Edge MLP 264→32→32
Process
XLS MLPproposed, not wired
Fusion / output
local + local + global32+32+32
→
point head96→32→1
Current code
The present DGCNN smoke is geometry-only and capped at 512 points for CPU memory. Process fusion remains a proposed extension.
Actual checks
3
Parameters
8,385, 9,025
CPU forward
2.1–5.2 ms
Output shape(s)
[[1, 512, 1], [1, 512, 1], [1, 512, 1]]
graph
MeshGraphNet-style GNN
forward/backward passed
Prepared geometry input · open source gallery
Route: STEP → nodes, mesh edges, curvature/boundary features → node/edge message passing; 112-value process/CAD-summary vector → global encoder → global embedding appended to every edge message → CAD-node field
Geometry
node inputN×32
→
node encoder32→48
→
edge inputE×8
Process
global input112
→
Linear + GELU112→48
Fusion / output
edge message ×348+48+8+48→48→48
→
sum at destinationN×48
→
GRU update ×396→48
→
node head48→1
Current code
This is the most direct variable-node CAD representation. The same weights executed on all seven graph resolutions.