############################# 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/`` Publication ----------- 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 BibTeX Citation --------------- .. code-block:: bibtex @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} } Original Applications --------------------- - 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/`` Publication ----------- 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 BibTeX Citation --------------- .. code-block:: bibtex @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} } Original Applications --------------------- - 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 ========================================= Attribution and Compliance --------------------------- Tech Soft 3D's Position on Third-Party Code -------------------------------------------- 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 Modifications --------------------------- Our contributions are limited to: 1. **Interface Adaptation:** Implementing the ``FlowModel`` abstract interface for seamless integration with HOOPS AI workflows 2. **Storage Integration:** Connecting to HOOPS AI's data storage system (Zarr, DGL, etc.) 3. **Training Infrastructure:** Enabling use with ``FlowTrainer`` and ``FlowInference`` components 4. **Error Handling and Logging:** Enhanced debugging capabilities and error reporting 5. **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 Requirements --------------- - Include the original copyright notice - Include the MIT license text - Acknowledge modifications made by Tech Soft 3D How HOOPS AI Complies ----------------------- HOOPS AI complies with these requirements by: 1. Preserving original copyright notices in source files 2. Including LICENSE files in ``_thirdparty/`` subdirectories 3. Clearly documenting modifications in technical documents 4. Providing citation information in this documentation 5. Maintaining this dedicated Acknowledgements document Using These Models in Your Research ==================================== Citation Requirements ------------------------ If you publish research results using HOOPS AI's ``GraphClassification`` or ``GraphNodeClassification`` models, please cite: 1. **The original architecture paper** (see BibTeX citations above) 2. **HOOPS AI** (if relevant to your workflow): .. code-block:: text Tech Soft 3D. (2025). HOOPS AI - Machine Learning Framework for CAD Data Analysis. https://github.com/techsoft3d/hoops-ai Example Acknowledgement Text --------------------------- "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 ================= UV-Net MIT License ------------------ .. code-block:: text 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. BrepMFR MIT License ------------------- .. code-block:: text 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. Contact ------- 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. CPU Mode Dependencies --------------------- .. list-table:: :header-rows: 1 :widths: 40 20 * - 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) GPU Mode Dependencies ---------------------- .. list-table:: :header-rows: 1 :widths: 40 20 * - 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.