Acknowledgments
Third-Party Machine Learning Architectures
HOOPS AI integrates open-source machine learning architectures to provide state-of-the-art CAD analysis capabilities. These models are located in the src/hoops_ai/ml/_thirdparty/ directory and are used under their respective open-source licenses.
Integrated Architectures
1. UV-Net - Graph Classification Architecture
Original Authors: Jayaraman, P. K., Sanghi, A., Lambourne, J. G., Willis, K. D. D., Davies, T., Shayani, H., & Morris, N.
Organization: Autodesk AI Lab
Year: 2021
License: MIT License
Source: https://github.com/AutodeskAILab/UV-Net
Location in HOOPS AI:
src/hoops_ai/ml/_thirdparty/uvnet/
Jayaraman, P. K., Sanghi, A., Lambourne, J. G., Willis, K. D. D., Davies, T., Shayani, H., & Morris, N. (2021). UV-Net: Learning from Boundary Representations. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (pp. 11703-11712). https://doi.org/10.1109/CVPR46437.2021.01153
@inproceedings{jayaraman2021uvnet,
title={UV-Net: Learning from Boundary Representations},
author={Jayaraman, Pradeep Kumar and Sanghi, Aditya and Lambourne, Joseph G and Willis, Karl DD and Davies, Thomas and Shayani, Hooman and Morris, Nigel},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={11703--11712},
year={2021}
}
Auto-complete of modeling operations in CAD software
Smart selection tools
Shape similarity search
Design recommendation systems
2. BrepMFR - Graph Node Classification Architecture
Original Authors: Zhang, S., Guan, Z., Jiang, H., Wang, X., & Tan, P.
Year: 2024
License: MIT License
Source: https://github.com/zhangshuming0668/BrepMFR
Location in HOOPS AI:
src/hoops_ai/ml/_thirdparty/brepmfr/
Zhang, S., Guan, Z., Jiang, H., Wang, X., & Tan, P. (2024). BrepMFR: Enhancing machining feature recognition in B-rep models through deep learning and domain adaptation. Computer Aided Geometric Design, 111, 102318. https://www.sciencedirect.com/science/article/abs/pii/S0167839624000529
@article{zhang2024brepmfr,
title={BrepMFR: Enhancing machining feature recognition in B-rep models through deep learning and domain adaptation},
author={Zhang, Shuming and Guan, Zhiguang and Jiang, Han and Wang, Xiaojun and Tan, Ping},
journal={Computer Aided Geometric Design},
volume={111},
pages={102318},
year={2024},
publisher={Elsevier}
}
Machining feature recognition in CAD/CAM workflows
Recognizing highly intersecting features with complex geometries
Automated process planning for CNC machining
Design for manufacturability analysis
Tech Soft 3D’s Role and Modifications
While HOOPS AI provides convenient wrappers (GraphClassification, GraphNodeClassification) to integrate these architectures into the Flow Model framework, the original authors retain full credit for their pioneering work.
Our contributions are limited to:
Interface Adaptation: Implementing the
FlowModelabstract interface for seamless integration with HOOPS AI workflowsStorage Integration: Connecting to HOOPS AI’s data storage system (Zarr, DGL, etc.)
Training Infrastructure: Enabling use with
FlowTrainerandFlowInferencecomponentsError Handling and Logging: Enhanced debugging capabilities and error reporting
Documentation: Technical documentation adapted for HOOPS AI users
We do NOT claim authorship of the underlying ML architectures. Users of HOOPS AI should cite the original papers when publishing results using these models.
MIT License Compliance
Both integrated models are distributed under the MIT License, which permits:
✅ Commercial use
✅ Modification
✅ Distribution
✅ Private use
Include the original copyright notice
Include the MIT license text
Acknowledge modifications made by Tech Soft 3D
HOOPS AI complies with these requirements by:
Preserving original copyright notices in source files
Including LICENSE files in
_thirdparty/subdirectoriesClearly documenting modifications in technical documents
Providing citation information in this documentation
Maintaining this dedicated Acknowledgements document
Using These Models in Your Research
If you publish research results using HOOPS AI’s GraphClassification or GraphNodeClassification models, please cite:
The original architecture paper (see BibTeX citations above)
HOOPS AI (if relevant to your workflow):
Tech Soft 3D. (2025). HOOPS AI - Machine Learning Framework for CAD Data Analysis. https://github.com/techsoft3d/hoops-ai
“This work uses the UV-Net architecture [1] and BrepMFR architecture [2] integrated into the HOOPS AI framework [3] for CAD data processing and machine learning.”
[1] Jayaraman et al., “UV-Net: Learning from Boundary Representations”, CVPR 2021
[2] Zhang et al., “BrepMFR: Enhancing machining feature recognition…”, CAGD 2024
[3] Tech Soft 3D, “HOOPS AI”, 2025
License Texts
MIT License
Copyright (c) 2021 Autodesk AI Lab
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
MIT License
Copyright (c) 2024 Zhang Shuming and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
For questions about:
Original UV-Net architecture: Contact Autodesk AI Lab or refer to the GitHub repository
Original BrepMFR architecture: Contact the authors or refer to the GitHub repository
HOOPS AI integration: Contact Tech Soft 3D support
Third-Party Dependencies
HOOPS AI relies on a comprehensive set of open-source libraries and tools. The following tables list all dependencies for both CPU and GPU installation modes.
Package Name |
Version |
|---|---|
torch |
1.13.1 |
torchaudio |
0.13.1 |
torchvision |
0.14.1 |
torchmetrics |
0.10.0 |
torch-geometric |
2.3.1 |
pytorch-lightning |
1.7.2 |
numpy |
1.23.5 |
zarr |
2.13.3 |
dask |
2023.10.1 |
scikit-learn |
1.5.2 |
pyarrow |
11.0.0 |
python |
3.9.21 |
pip |
23.2.1 |
setuptools |
75.1.0 |
wheel |
0.44.0 |
pandas |
1.5.3 |
scipy |
1.13.1 |
h5py |
3.12.1 |
hdf5 |
1.14.3 |
xarray |
2024.3.0 |
partd |
1.4.1 |
cloudpickle |
3.0.0 |
zict |
3.0.0 |
toolz |
0.12.0 |
heapdict |
1.0.1 |
tblib |
1.7.0 |
ipykernel |
(latest) |
ipywidgets |
(latest) |
jupyterlab |
(latest) |
fairseq |
0.12.2 |
prefetch-generator |
(latest) |
tensorboard |
2.18.0 |
tensorboardX |
(latest) |
dgl |
1.0.0 |
pyyaml |
6.0.2 |
tqdm |
4.67.1 |
matplotlib |
3.9.3 |
networkx |
3.2.1 |
distributed |
2023.10.1 |
iterative-stratification |
0.1.9 |
msgpack |
(latest) |
Package Name |
Version |
|---|---|
torch |
1.13.1+cu117 |
torchaudio |
0.13.1+cu117 |
torchvision |
0.14.1+cu117 |
torchmetrics |
0.10.0 |
torch-geometric |
2.3.1 |
pytorch-lightning |
1.7.2 |
numpy |
1.23.5 |
zarr |
2.13.3 |
dask |
2023.10.1 |
scikit-learn |
1.5.2 |
pyarrow |
11.0.0 |
python |
3.9.21 |
pip |
23.2.1 |
setuptools |
75.1.0 |
wheel |
0.44.0 |
cuda-cudart |
11.7.99 |
cuda-cudart-dev |
11.7.99 |
cuda-cupti |
11.7.101 |
cuda-libraries |
11.7.1 |
cuda-libraries-dev |
11.7.1 |
cuda-nvrtc |
11.7.99 |
cuda-nvrtc-dev |
11.7.99 |
cuda-nvtx |
11.7.91 |
cuda-runtime |
11.7.1 |
cuda-version |
11.7 |
libcublas |
11.10.3.66 |
libcublas-dev |
11.10.3.66 |
libcufft |
10.7.2.124 |
libcufft-dev |
10.7.2.124 |
libcusolver |
11.4.0.1 |
libcusolver-dev |
11.4.0.1 |
libcusparse |
11.7.4.91 |
libcusparse-dev |
11.7.4.91 |
libnpp |
11.7.4.75 |
libnpp-dev |
11.7.4.75 |
libnvjpeg |
11.8.0.2 |
libnvjpeg-dev |
11.8.0.2 |
abseil-cpp |
20220623.0 |
aiobotocore |
2.4.2 |
aiohappyeyeballs |
2.4.4 |
aiohttp |
3.11.10 |
aioitertools |
0.7.1 |
arrow-cpp |
11.0.0 |
asciitree |
0.3.3 |
async-timeout |
5.0.1 |
aws-c-auth |
0.7.4 |
aws-c-cal |
0.6.2 |
aws-c-common |
0.9.3 |
aws-c-compression |
0.2.17 |
aws-c-event-stream |
0.3.2 |
aws-c-http |
0.7.13 |
aws-c-io |
0.13.33 |
aws-c-mqtt |
0.9.7 |
aws-c-s3 |
0.3.17 |
aws-c-sdkutils |
0.1.12 |
aws-checksums |
0.1.17 |
aws-crt-cpp |
0.24.2 |
aws-sdk-cpp |
1.10.57 |
blas |
1.0 |
blosc |
1.21.5 |
boost-cpp |
1.85.0 |
botocore |
1.27.59 |
bottleneck |
1.4.2 |
brotli-python |
1.0.9 |
bzip2 |
1.0.8 |
c-ares |
1.19.1 |
ca-certificates |
2024.12.14 |
cached-property |
1.5.2 |
cccl |
2.3.2 |
cffi |
1.17.1 |
cftime |
1.6.4 |
click |
8.1.7 |
cloudpickle |
3.0.0 |
colorama |
0.4.6 |
cryptography |
41.0.7 |
cytoolz |
0.12.2 |
exceptiongroup |
1.2.0 |
fasteners |
0.16.3 |
freetype |
2.12.1 |
frozenlist |
1.5.0 |
gflags |
2.2.2 |
giflib |
5.2.2 |
glog |
0.6.0 |
grpc-cpp |
1.51.1 |
hdf4 |
4.2.15 |
hdf5 |
1.14.3 |
heapdict |
1.0.1 |
importlib-metadata |
8.5.0 |
iniconfig |
1.1.1 |
intel-openmp |
2023.1.0 |
jinja2 |
3.1.4 |
jmespath |
1.0.1 |
jpeg |
9e |
krb5 |
1.21.3 |
lerc |
4.0.0 |
libabseil |
20220623.0 |
libaec |
1.1.3 |
libarrow |
11.0.0 |
libboost |
1.85.0 |
libboost-devel |
1.85.0 |
libboost-headers |
1.85.0 |
libbrotlicommon |
1.0.9 |
libbrotlidec |
1.0.9 |
libbrotlienc |
1.0.9 |
libcrc32c |
1.1.2 |
libcurl |
8.11.1 |
libdeflate |
1.22 |
libevent |
2.1.12 |
libffi |
3.4.2 |
libgoogle-cloud |
2.7.0 |
libgrpc |
1.51.1 |
libiconv |
1.17 |
liblzma |
5.6.3 |
libnetcdf |
4.9.2 |
libpng |
1.6.44 |
libprotobuf |
3.21.12 |
libsqlite |
3.47.2 |
libssh2 |
1.11.1 |
libthrift |
0.18.0 |
libtiff |
4.5.0 |
libutf8proc |
2.8.0 |
libuv |
1.48.0 |
libwebp |
1.3.2 |
libwebp-base |
1.3.2 |
libxml2 |
2.13.5 |
libzip |
1.11.2 |
libzlib |
1.3.1 |
locket |
1.0.0 |
lz4 |
4.3.2 |
lz4-c |
1.9.4 |
mkl |
2023.1.0 |
mkl-service |
2.4.0 |
mkl_fft |
1.3.11 |
mkl_random |
1.2.8 |
msgpack-python |
1.0.3 |
multidict |
6.1.0 |
netcdf4 |
1.7.2 |
numcodecs |
0.12.1 |
numexpr |
2.10.1 |
numpy-base |
1.26.4 |
openssl |
3.4.0 |
orc |
1.8.2 |
packaging |
24.2 |
pandas |
1.5.3 |
partd |
1.4.1 |
pluggy |
1.5.0 |
pyarrow |
11.0.0 |
pyarrow-hotfix |
0.6 |
pyopenssl |
23.2.0 |
pysocks |
1.7.1 |
pytest |
7.2.0 |
python |
3.9.21 |
python-dateutil |
2.9.0post0 |
python-lmdb |
1.4.1 |
python_abi |
3.9 |
pytz |
2024.1 |
pyyaml |
6.0.2 |
re2 |
2023.02.01 |
s3fs |
2023.1.0 |
setuptools |
75.1.0 |
snappy |
1.1.10 |
sortedcontainers |
2.4.0 |
sqlite |
3.41.1 |
tbb |
2021.8.0 |
tblib |
1.7.0 |
tk |
8.6.13 |
tomli |
2.0.1 |
toolz |
0.12.0 |
tornado |
6.4.2 |
typing-extensions |
4.11.0 |
typing_extensions |
4.11.0 |
tzdata |
2024b |
ucrt |
10.0.20348.0 |
utf8proc |
2.6.1 |
vc |
14.40 |
vc14_runtime |
14.42.34433 |
vs2015_runtime |
14.42.34433 |
wheel |
0.44.0 |
win_inet_pton |
1.1.0 |
wrapt |
1.14.1 |
xarray |
2024.3.0 |
xyzservices |
2022.9.0 |
yaml |
0.2.5 |
zarr |
2.13.3 |
zict |
3.0.0 |
zipp |
3.21.0 |
zlib |
1.3.1 |
zstd |
1.5.6 |
absl-py |
2.1.0 |
aiosignal |
1.3.1 |
antlr4-python3-runtime |
4.8 |
attrs |
24.2.0 |
bitarray |
3.0.0 |
bokeh |
3.3.4 |
certifi |
2024.8.30 |
charset-normalizer |
3.4.0 |
contourpy |
1.3.0 |
cycler |
0.12.1 |
cython |
3.0.11 |
dask |
2023.10.1 |
distributed |
2023.10.1 |
fairseq |
0.12.2 |
filelock |
3.16.1 |
fonttools |
4.55.3 |
fsspec |
2024.10.0 |
grpcio |
1.68.1 |
h5py |
3.12.1 |
hydra-core |
1.0.7 |
idna |
3.10 |
importlib-resources |
6.4.5 |
iterative-stratification |
0.1.9 |
joblib |
1.4.2 |
kiwisolver |
1.4.7 |
lxml |
5.3.0 |
markdown |
3.7 |
markupsafe |
3.0.2 |
matplotlib |
3.9.3 |
mpmath |
1.3.0 |
networkx |
3.2.1 |
numpy |
1.23.5 |
omegaconf |
2.0.6 |
pillow |
11.1.0 |
portalocker |
3.0.0 |
prefetch-generator |
1.0.3 |
propcache |
0.2.1 |
protobuf |
5.29.1 |
psutil |
6.1.0 |
pycparser |
2.22 |
pydeprecate |
0.3.2 |
pyparsing |
3.2.0 |
pywin32 |
308 |
regex |
2024.11.6 |
sacrebleu |
2.4.3 |
scikit-learn |
1.5.2 |
scipy |
1.13.1 |
six |
1.17.0 |
sympy |
1.13.1 |
tabulate |
0.9.0 |
tensorboard |
2.18.0 |
tensorboard-data-server |
0.7.2 |
tensorboardx |
2.6.2.2 |
threadpoolctl |
3.5.0 |
tqdm |
4.67.1 |
werkzeug |
3.1.3 |
yarl |
1.18.3 |
ipykernel |
(latest) |
jupyterlab |
(latest) |
Note
PyTorch packages (torch, torchaudio, torchvision, torch-geometric, pytorch-lightning, torchmetrics) for GPU mode are installed separately via pip with explicit CUDA 11.7 support to ensure compatibility.