NURBS-Diff: A Differentiable Programming Module for NURBS

Anjana Deva Prasad, Aditya Balu, Harshil Shah, Soumik Sarkar, Chinmay Hegde, Adarsh Krishnamurthy

    Research output: Contribution to journalArticlepeer-review


    Boundary representations (B-reps) using Non-Uniform Rational B-splines (NURBS) are the de facto standard used in CAD, but their utility in deep learning-based approaches is not well researched. We propose a differentiable NURBS module to integrate NURBS representations of CAD models with deep learning methods. We mathematically define the derivatives of the NURBS curves or surfaces with respect to the input parameters (control points, weights, and the knot vector). These derivatives are used to define an approximate Jacobian used for performing the “backward” evaluation to train the deep learning models. We have implemented our NURBS module using GPU-accelerated algorithms and integrated it with PyTorch, a popular deep learning framework. We demonstrate the efficacy of our NURBS module in performing CAD operations such as curve or surface fitting and surface offsetting. Further, we show its utility in deep learning for unsupervised point cloud reconstruction and enforce analysis constraints. These examples show that our module performs better for certain deep learning frameworks and can be directly integrated with any deep-learning framework requiring NURBS.

    Original languageEnglish (US)
    Article number103199
    JournalCAD Computer Aided Design
    StatePublished - May 2022


    • Differentiable NURBS module
    • Geometric deep learning
    • NURBS
    • Surface modeling

    ASJC Scopus subject areas

    • Computer Science Applications
    • Computer Graphics and Computer-Aided Design
    • Industrial and Manufacturing Engineering


    Dive into the research topics of 'NURBS-Diff: A Differentiable Programming Module for NURBS'. Together they form a unique fingerprint.

    Cite this