How BRepNet convolution works
masterBRepNet performs convolutions on solid models by utilizing the topological information in Boundary Representation (B-Rep) data.
Core Mechanism:
- Topological Walks: The network uses "topological walks" (sequences of instructions) to identify neighboring entities (faces, edges, coedges) relative to a starting coedge.
- Kernel Files: Users can define custom groups of neighboring entities using a
_kernel_file (e.g.,kernels/winged_edge_plus.json). - Convolution Step: The algorithm concatenates feature vectors from the entities defined in the kernel relative to the starting coedge. This concatenated vector is passed through an MLP to produce the hidden state for that coedge in the next layer.
- Pooling: After processing coedges, new hidden state vectors for faces and edges are generated by pooling the coedge hidden states onto their respective parent faces and edges.
The implementation of this logic is located in models/brepnet.py within the BRepNetLayer.forward() method.