NURBS-Python (geomdl) is a pure Python, self-contained, object-oriented B-Spline and NURBS spline library for Python versions 2.7.x, 3.4.x and later.
The following article outlines the design and features of NURBS-Python (geomdl). I would be glad if you would cite it if you have used NURBS-Python (geomdl) in your research:
@article{bingol2019geomdl, title={{NURBS-Python}: An open-source object-oriented {NURBS} modeling framework in {Python}}, author={Bingol, Onur Rauf and Krishnamurthy, Adarsh}, journal={{SoftwareX}}, volume={9}, pages={85--94}, year={2019}, publisher={Elsevier}, doi={https://doi.org/10.1016/j.softx.2018.12.005} }
NURBS-Python (geomdl) provides convenient data structures and highly customizable API for rational and non-rational splines along with the efficient and extensible implementations of the following algorithms:
- Spline evaluation
- Derivative evaluation
- Knot insertion
- Knot removal
- Knot vector refinement
- Degree elevation
- Degree reduction
- Curve and surface fitting via interpolation and least squares approximation
NURBS-Python (geomdl) also provides customizable visualization and animation options via Matplotlib, Plotly and VTK libraries. Please refer to the documentation for more details.
The easiest way to install NURBS-Python (geomdl) is using pip
:
$ pip install --user geomdl
It is also possible to install NURBS-Python (geomdl) using conda
:
$ conda install -c orbingol geomdl
Please refer to the Installation and Testing section of the documentation for alternative installation methods.
- Examples: https://github.com/orbingol/NURBS-Python_Examples
- Documentation: http://nurbs-python.readthedocs.io/
- Wiki: https://github.com/orbingol/NURBS-Python/wiki
- Command-line application: https://github.com/orbingol/geomdl-cli
- Shapes module: https://github.com/orbingol/geomdl-shapes
- Rhino importer/exporter: https://github.com/orbingol/rw3dm
- ACIS exporter: https://github.com/orbingol/rwsat
- Onur R. Bingol (@orbingol)
Please see CONTRIBUTORS.rst file for the acknowledgements.
NURBS-Python (geomdl) is licensed under the terms of MIT License and it contains the following modules:
six
is licensed under the terms of MIT Licensebackports.functools_lru_cache
is licensed under the terms of MIT License