NURBS-Python (geomdl) is an object-oriented B-Spline and NURBS surface and curve library for Python with implementations of advanced computation algorithms in an extensible way. It comes with various features, such as on-the-fly visualization options, knot vector and surface grid generators, tessellation, voxelization and more.
NURBS-Python is a pure Python library, therefore there are no external C/C++ or FORTRAN dependencies or any compilation steps during installation. A Cython-compiled option also is provided for better performance. Moreover, the core library is self-contained; and therefore, it can be easily used with systems using embedded Python.
NURBS-Python is tested with Python v2.7.x, Python v3.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} }
Please refer to the Citing section of the documentation for more details.
- 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
- rw3dm: https://github.com/orbingol/rw3dm
Please refer to the Installation and Testing section of the documentation for details.
All contributions are welcome. For details, please refer to the Issues and Reporting section of the documentation for details.
- Onur Rauf Bingol (@orbingol)
NURBS-Python (geomdl) is a free and open-source software and it is licensed under the MIT License.
I would like to thank my PhD adviser, Dr. Adarsh Krishnamurthy, for his guidance and supervision throughout the course of this project.
In addition, I would like to thank all NURBS-Python contributors for their time and effort in supporting this project.