Skip to main content

Object-oriented B-Spline and NURBS evaluation library

Project description

NURBS-Python (geomdl)
^^^^^^^^^^^^^^^^^^^^^

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

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

|WAFFLEIO|_

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

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 on-the-fly shape visualization options,
knot vector and surface grid generators, and more.

NURBS-Python (geomdl) is a pure Python library, therefore there are no external C/C++ or FORTRAN dependencies or any
compilation steps during installation. It is tested with Python v2.7.x, Python v3.4.x and later versions. The Python 2
and 3 compatibility library ``six`` will be automatically installed during NURBS-Python setup.

Please see the `Examples Repository <https://github.com/orbingol/NURBS-Python_Examples>`_ for details on library usage
and integration scenarios.

**Note:** This package replaces the old `NURBS-Python <https://pypi.org/project/NURBS-Python/>`_ with new and improved
features. Please see the `Installation <https://nurbs-python.readthedocs.io/en/latest/install.html>`_ documentation
page on removing the old package and installing the new package.

Features
========

Core Library
------------

The core library is responsible for data storage and evaluation. It is capable of handling B-Spline (NUBS) and NURBS
curves and surfaces (single via ``geomdl.BSpline`` and ``geomdl.NURBS``, multiple via ``geomdl.Multi`` modules).
It provides an abstraction layer for easy extensibility (``geomdl.Abstract``), allows a variety of customizations and
helper functionality, such as surface (``geomdl.CPGen`` module) and uniform knot vector
(``geomdl.utilities.generate_knot_vector``) generators.

The Core Library module of NURBS-Python is self-contained. It implements all the necessary maths and linear algebra
operations without needing any other external modules.

Exchange Module
---------------

``geomdl.exchange`` module can export control points and evaluated points of the ``Curve``, ``Surface`` and ``Multi``
objects in common formats such as CSV, VTK, OBJ, OFF and STL.

Visualization Component
-----------------------

``geomdl.visualization`` component contains extensible and customizable classes for plotting curves and surfaces
on-the-fly. The users have options to use Matplotlib and/or Plotly visualization libraries. These libraries are not
automatically installed during NURBS-Python setup and they are left for users' discretion.

More Features
-------------

NURBS-Python (geomdl) is more than a simple NURBS library. It has many features and they are customizable for your
needs. Please see the `Modules <https://nurbs-python.readthedocs.io/en/latest/modules.html>`_ documentation page
for the list of modules and features.

Further Reading
===============

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

License
=======

NURBS-Python is licensed under the MIT 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=4.x
.. _RTD: https://nurbs-python.readthedocs.io/en/4.x/?badge=4.x

.. |WAFFLEIO| image:: https://badge.waffle.io/orbingol/NURBS-Python.svg?columns=all
.. _WAFFLEIO: https://waffle.io/orbingol/NURBS-Python

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

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


Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geomdl-4.4.3.tar.gz (88.1 kB view hashes)

Uploaded Source

Built Distribution

geomdl-4.4.3-py2.py3-none-any.whl (82.0 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page