1NURBS-Python (geomdl) 2^^^^^^^^^^^^^^^^^^^^^ 3 4|DOI|_ |PYPI|_ |PYPIDL|_ |ANACONDA|_ 5 6|RTD|_ |TRAVISCI|_ |APPVEYOR|_ |CIRCLECI|_ |CODECOV|_ 7 8Introduction 9============ 10 11NURBS-Python (geomdl) is a pure Python, self-contained, object-oriented B-Spline and NURBS spline library for Python 12versions 2.7.x, 3.4.x and later. 13 14The `following article <https://doi.org/10.1016/j.softx.2018.12.005>`_ outlines the design and features of NURBS-Python 15(geomdl). I would be glad if you would cite it if you have used NURBS-Python (geomdl) in your research:: 16 17 @article{bingol2019geomdl, 18 title={{NURBS-Python}: An open-source object-oriented {NURBS} modeling framework in {Python}}, 19 author={Bingol, Onur Rauf and Krishnamurthy, Adarsh}, 20 journal={{SoftwareX}}, 21 volume={9}, 22 pages={85--94}, 23 year={2019}, 24 publisher={Elsevier}, 25 doi={https://doi.org/10.1016/j.softx.2018.12.005} 26 } 27 28Features 29======== 30 31NURBS-Python (geomdl) provides convenient data structures and highly customizable API for rational and non-rational 32splines along with the efficient and extensible implementations of the following algorithms: 33 34* Spline evaluation 35* Derivative evaluation 36* Knot insertion 37* Knot removal 38* Knot vector refinement 39* Degree elevation 40* Degree reduction 41* Curve and surface fitting via interpolation and least squares approximation 42 43NURBS-Python (geomdl) also provides customizable visualization and animation options via Matplotlib, Plotly and VTK 44libraries. Please refer to the `documentation <http://nurbs-python.readthedocs.io/>`_ for more details. 45 46Installation 47============ 48 49The easiest way to install NURBS-Python (geomdl) is using ``pip``: 50 51.. code-block:: console 52 53 $ pip install --user geomdl 54 55It is also possible to install NURBS-Python (geomdl) using ``conda``: 56 57.. code-block:: console 58 59 $ conda install -c orbingol geomdl 60 61Please refer to the `Installation and Testing <http://nurbs-python.readthedocs.io/en/latest/install.html>`_ section 62of the documentation for alternative installation methods. 63 64Examples and Documentation 65========================== 66 67* **Examples**: https://github.com/orbingol/NURBS-Python_Examples 68* **Documentation**: http://nurbs-python.readthedocs.io/ 69* **Wiki**: https://github.com/orbingol/NURBS-Python/wiki 70 71Extra Modules 72============= 73 74* **Command-line application**: https://github.com/orbingol/geomdl-cli 75* **Shapes module**: https://github.com/orbingol/geomdl-shapes 76* **Rhino importer/exporter**: https://github.com/orbingol/rw3dm 77* **ACIS exporter**: https://github.com/orbingol/rwsat 78 79Author 80====== 81 82* Onur R. Bingol (`@orbingol <https://github.com/orbingol>`_) 83 84Acknowledgments 85=============== 86 87Please see `CONTRIBUTORS.rst <CONTRIBUTORS.rst>`_ file for the acknowledgements. 88 89License 90======= 91 92NURBS-Python (geomdl) is licensed under the terms of `MIT License <LICENSE>`_ and it contains the following modules: 93 94* ``six`` is licensed under the terms of `MIT License <https://github.com/benjaminp/six/blob/1.12.0/LICENSE>`_ 95* ``backports.functools_lru_cache`` is licensed under the terms of `MIT License <https://github.com/jaraco/backports.functools_lru_cache/blob/1.5/LICENSE>`_ 96 97 98.. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.815010.svg 99.. _DOI: https://doi.org/10.5281/zenodo.815010 100 101.. |RTD| image:: https://readthedocs.org/projects/nurbs-python/badge/?version=latest 102.. _RTD: https://nurbs-python.readthedocs.io/en/latest/?badge=latest 103 104.. |TRAVISCI| image:: https://travis-ci.org/orbingol/NURBS-Python.svg?branch=master 105.. _TRAVISCI: https://travis-ci.org/orbingol/NURBS-Python 106 107.. |APPVEYOR| image:: https://ci.appveyor.com/api/projects/status/github/orbingol/nurbs-python?branch=master&svg=true 108.. _APPVEYOR: https://ci.appveyor.com/project/orbingol/nurbs-python 109 110.. |CIRCLECI| image:: https://circleci.com/gh/orbingol/NURBS-Python/tree/master.svg?style=shield 111.. _CIRCLECI: https://circleci.com/gh/orbingol/NURBS-Python/tree/master 112 113.. |PYPI| image:: https://img.shields.io/pypi/v/geomdl.svg 114.. _PYPI: https://pypi.org/project/geomdl/ 115 116.. |PYPIDL| image:: https://img.shields.io/pypi/dm/geomdl.svg 117.. _PYPIDL: https://pypi.org/project/geomdl/ 118 119.. |ANACONDA| image:: https://anaconda.org/orbingol/geomdl/badges/version.svg 120.. _ANACONDA: https://anaconda.org/orbingol/geomdl 121 122.. |CODECOV| image:: https://codecov.io/gh/orbingol/NURBS-Python/branch/master/graph/badge.svg 123.. _CODECOV: https://codecov.io/gh/orbingol/NURBS-Python 124