Skip to content
Object-oriented pure Python B-Spline and NURBS library
Branch: master
Clone or download
Latest commit a8a8b79 May 23, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Add Alpine Linux building options to CircleCI config Jan 13, 2019
.github Minor updates in contribution guidelines May 20, 2019
.travisci Add performance testing to TravisCI Jan 7, 2019
conda
docker Update libpng package name Apr 17, 2019
docs Minor documentation updates and fixes [skip ci] May 22, 2019
geomdl Fix typo in indentation May 24, 2019
tests Deprecate load and save methods in favor of JSON Apr 19, 2019
.appveyor.yml Update AppVeyor CI config for build numbering May 22, 2019
.coveragerc Update coverage config May 2, 2018
.gitignore Fix sphinx warning May 22, 2019
.readthedocs.yml [skip ci] mock plotly in sphinx config and define specific py version Jan 9, 2019
.travis.yml
CHANGELOG.md Release v5.2.7 May 24, 2019
CONTRIBUTORS.rst Update contributors text Feb 3, 2019
DESCRIPTION.rst Update pypi description [skip ci] May 17, 2019
LICENSE Move six and functools_lru_cache inside the package Mar 3, 2019
MANIFEST.in Add pip requirements to sdist manifest file Nov 15, 2018
README.rst Add ACIS exporter Mar 22, 2019
build_manylinux1_32.sh Add bash scripts for building manylinux1 packages Apr 10, 2019
build_manylinux1_64.sh Add bash scripts for building manylinux1 packages Apr 10, 2019
requirements.txt Move six and functools_lru_cache inside the package Mar 3, 2019
setup.cfg Added optional cython compile options Aug 9, 2018
setup.py Add license text to setup.py May 20, 2019
tox.ini Remove pytest version pinning in tox.ini Jan 7, 2019

README.rst

NURBS-Python (geomdl)

DOI PYPI PYPIDL ANACONDA

RTD TRAVISCI APPVEYOR CIRCLECI CODECOV

Introduction

NURBS-Python (geomdl) is a pure Python, self-contained, object-oriented B-Spline and NURBS spline library for Python versions 2.7.x, 3.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}
}

Features

NURBS-Python (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

NURBS-Python (geomdl) also provides customizable visualization and animation options via Matplotlib, Plotly and VTK libraries. Please refer to the documentation for more details.

Installation

The easiest way to install NURBS-Python (geomdl) is using pip:

$ pip install --user geomdl

It is also possible to install NURBS-Python (geomdl) using conda:

$ conda install -c orbingol geomdl

Please refer to the Installation and Testing section of the documentation for alternative installation methods.

Examples and Documentation

Extra Modules

Author

Acknowledgments

Please see CONTRIBUTORS.rst file for the acknowledgements.

License

NURBS-Python (geomdl) is licensed under the terms of MIT License and it contains the following modules:

  • six is licensed under the terms of MIT License
  • backports.functools_lru_cache is licensed under the terms of MIT License
You can’t perform that action at this time.