geomdl
^^^^^^

|DOI|_ |PYPIDL|_ |ANACONDA|_

|RTD|_ |TRAVISCI|_ |APPVEYOR|_ |CIRCLECI|_ |CODECOV|_

Introduction
============

**geomdl** is a pure Python, object-oriented B-Spline and NURBS library. It is compatible with Python versions 2.7.x,
3.4.x and later.

Features
========

**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

**geomdl** also provides customizable visualization and animation options via Matplotlib, Plotly and VTK libraries.
Please refer to the `documentation <http://nurbs-python.readthedocs.io/>`_ for more details.

Further reading
===============

* Documentation: https://nurbs-python.readthedocs.io/
* Examples: https://github.com/orbingol/NURBS-Python_Examples
* Wiki: https://github.com/orbingol/NURBS-Python/wiki
* Development: https://github.com/orbingol/NURBS-Python

Modules extending geomdl
========================

* `geomdl-cli <https://pypi.org/project/geomdl.cli>`_
* `geomdl-shapes <https://pypi.org/project/geomdl.shapes>`_

Additional file format support
==============================

* `rw3dm <https://github.com/orbingol/rw3dm>`_
* `rwsat <https://github.com/orbingol/rwsat>`_

License
=======

**geomdl** is licensed under the terms of the `MIT License <https://github.com/orbingol/NURBS-Python/blob/master/LICENSE>`_.


.. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.815010.svg
.. _DOI: https://doi.org/10.5281/zenodo.815010

.. |RTD| image:: https://readthedocs.org/projects/nurbs-python/badge/?version=latest
.. _RTD: https://nurbs-python.readthedocs.io/en/latest/?badge=latest

.. |TRAVISCI| image:: https://travis-ci.org/orbingol/NURBS-Python.svg?branch=master
.. _TRAVISCI: https://travis-ci.org/orbingol/NURBS-Python

.. |APPVEYOR| image:: https://ci.appveyor.com/api/projects/status/github/orbingol/nurbs-python?branch=master&svg=true
.. _APPVEYOR: https://ci.appveyor.com/project/orbingol/nurbs-python

.. |CIRCLECI| image:: https://circleci.com/gh/orbingol/NURBS-Python/tree/master.svg?style=shield
.. _CIRCLECI: https://circleci.com/gh/orbingol/NURBS-Python/tree/master

.. |PYPIDL| image:: https://img.shields.io/pypi/dm/geomdl.svg
.. _PYPIDL: https://pypi.org/project/geomdl/

.. |ANACONDA| image:: https://anaconda.org/orbingol/geomdl/badges/version.svg
.. _ANACONDA: https://anaconda.org/orbingol/geomdl

.. |CODECOV| image:: https://codecov.io/gh/orbingol/NURBS-Python/branch/master/graph/badge.svg
.. _CODECOV: https://codecov.io/gh/orbingol/NURBS-Python
