NURBS-Python

Object-oriented B-spline and NURBS library in Python with convenient data structures and extensible algorithms.

NURBS-Python (geomdl) is a pure Python object-oriented B-spline and NURBS library with convenient data structures and extensible algorithms. The work is described in our SoftwareX article.

Features

  • Self-contained, object-oriented, extensible, and highly customizable API
  • Convenient data structures for storing curve, surface, and volume descriptions
  • Surface and curve fitting with interpolation and least squares approximation
  • Surface trimming
  • Knot vector and surface grid generators
  • Customizable visualization and animation with Matplotlib, Plotly, and VTK
  • Export to JSON, YAML, Libconfig, STL, OBJ, and VTK
  • Complete documentation with references, examples, and illustrations
  • Pure Python implementation (no C/C++ or Fortran dependencies required); optional Cython build for higher performance
  • Install from PyPI
  • Rhino .3dm import/export via rw3dm

References