NURBS-Python Object-oriented NURBS library in Python

NURBS-Python (geomdl) 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 (geomdl):

  • 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 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 for higher performance
  • Convenient installation options: PyPI and Conda
  • Highly-configurable and extensible command-line application with a robust API
  • Extension module to generate common spline geometries with shapes module
  • Export and import in Rhino .3dm format via rw3dm module
  • Docker images available

Please refer to the documentation and the wiki pages for details.