NURBS-Python Object-oriented NURBS library in Python

NURBS-Python is a pure Python object-oriented B-spline and NURBS library with convenient data structures and extensible algorithms. Please check our article on SoftwareX.

Some significant features of NURBS-Python:

  • 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
  • Knot vector and surface grid generators
  • Customizable visualization and animation options with Matplotlib, Plotly and VTK modules
  • Exporting curve, surface and volume data into various file formats, such as JSON, YAML, Libconfig, STL, OBJ and VTK
  • Examples repository containing over 50 scripts describing usage and integration scenarios
  • A complete documentation with references, examples and illustrations
  • Tested with Python versions 2.7.x and 3.4+
  • Pure Python; all implemented in Python, no external C/C++ or FORTRAN library dependencies
  • Compile with Cython option available via for higher performance
  • Convenient installation options: PyPI and Conda
  • Highly-configurable and extensible command-line application with a robust API
  • Export and import in Rhino .3dm format via rw3dm extension
  • Docker images available

Please see the documentation and the wiki pages for details on using the library.