# NURBS-Diff: A Differentiable Programming Module for NURBS

arXiv: https://arxiv.org/abs/2104.14547 · HTML: https://mlsanity.com/paper/2104.14547/

## Key facts

- Cited by 11 papers in the map (data through 14 Oct 2026).
- Builds on 23 of its 52 references that are in the map.
- First posted on arXiv 29 Apr 2021.

## Builds on (most cited first, 23 of 23)

- [Adam: A Method for Stochastic Optimization](https://mlsanity.com/paper/1412.6980/) (2014)
- [PyTorch: An Imperative Style, High-Performance Deep Learning Library](https://mlsanity.com/paper/1912.01703/) (2019)
- [PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation](https://mlsanity.com/paper/1612.00593/) (2016)
- [DeepSDF: Learning Continuous Signed Distance Functions for Shape Representation](https://mlsanity.com/paper/1901.05103/) (2019)
- [Occupancy Networks: Learning 3D Reconstruction in Function Space](https://mlsanity.com/paper/1812.03828/) (2018)
- [Automatic differentiation in machine learning: a survey](https://mlsanity.com/paper/1502.05767/) (2015)
- [Convolutional Occupancy Networks](https://mlsanity.com/paper/2003.04618/) (2020)
- [Differentiable Volumetric Rendering: Learning Implicit 3D Representations without 3D Supervision](https://mlsanity.com/paper/1912.07372/) (2019)
- [AtlasNet: A Papier-Mach'e Approach to Learning 3D Surface Generation](https://mlsanity.com/paper/1802.05384/) (2018)
- [SAL: Sign Agnostic Learning of Shapes from Raw Data](https://mlsanity.com/paper/1911.10414/) (2019)
- [Differentiation of Blackbox Combinatorial Solvers](https://mlsanity.com/paper/1912.02175/) (2019)
- [Learning to Predict 3D Objects with an Interpolation-based Differentiable Renderer](https://mlsanity.com/paper/1908.01210/) (2019)
- [BSP-Net: Generating Compact Meshes via Binary Space Partitioning](https://mlsanity.com/paper/1911.06971/) (2019)
- [Fast Differentiable Sorting and Ranking](https://mlsanity.com/paper/2002.08871/) (2020)
- [CvxNet: Learnable Convex Decomposition](https://mlsanity.com/paper/1909.05736/) (2019)
- [SplineCNN: Fast Geometric Deep Learning with Continuous B-Spline Kernels](https://mlsanity.com/paper/1711.08920/) (2017)
- [Differentiable Ranks and Sorting using Optimal Transport](https://mlsanity.com/paper/1905.11885/) (2019)
- [A Differentiable Physics Engine for Deep Learning in Robotics](https://mlsanity.com/paper/1611.01652/) (2016)
- [ParSeNet: A Parametric Surface Fitting Network for 3D Point Clouds](https://mlsanity.com/paper/2003.12181/) (2020)
- [A Differentiable Programming System to Bridge Machine Learning and Scientific Computing](https://mlsanity.com/paper/1907.07587/) (2019)
- [On the Effectiveness of Weight-Encoded Neural Implicit 3D Shapes](https://mlsanity.com/paper/2009.09808/) (2020)
- [SkelNetOn 2019: Dataset and Challenge on Deep Learning for Geometric Shape Understanding](https://mlsanity.com/paper/1903.09233/) (2019)
- [Accelerating PDE-constrained Inverse Solutions with Deep Learning and Reduced Order Models](https://mlsanity.com/paper/1912.08864/) (2019)

## Built on by (most cited first, 11 of 11)

- [NeuroNURBS: Learning Efficient Surface Representations for 3D Solids](https://mlsanity.com/paper/2411.10848/) (2024)
- [NURBGen: High-Fidelity Text-to-CAD Generation through LLM-Driven NURBS Modeling](https://mlsanity.com/paper/2511.06194/) (2025)
- [Procedural Generation of 3D Maize Plant Architecture from LIDAR Data](https://mlsanity.com/paper/2501.13963/) (2025)
- [Shape Your Ground: Refining Road Surfaces Beyond Planar Representations](https://mlsanity.com/paper/2504.16103/) (2025)
- [Differentiable Uncalibrated Imaging](https://mlsanity.com/paper/2211.10525/) (2022)
- [Unwarping Screen Content Images via Structure-texture Enhancement Network and Transformation Self-estimation](https://mlsanity.com/paper/2504.15108/) (2025)
- [Multi-patch isogeometric neural solver for partial differential equations on computer-aided design domains](https://mlsanity.com/paper/2509.25450/) (2025)
- [GLUE: Coordinating Pre-Trained Generative Models for System-Level Design](https://mlsanity.com/paper/2512.19469/) (2025)
- [NURBS Splatting: A Unified Differentiable Rendering Framework for Vector Graphics](https://mlsanity.com/paper/2606.31764/) (2026)
- [CANTO: CAD-Native Transformer Operators for AI-Aided Engineering](https://mlsanity.com/paper/2609.36806/) (2026)
- [A Vision-Language Model (VLM)-based Pipeline for End-to-End Procedural Modeling of Field-Grown Maize from Point Clouds](https://mlsanity.com/paper/2610.03468/) (2026)

## Abstract (arXiv)

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.
