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