All Projects → orbingol → Nurbs Python

orbingol / Nurbs Python

Licence: mit
Object-oriented pure Python B-Spline and NURBS library

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Nurbs Python

Cavaliercontours
2D polyline library for offsetting, combining, etc.
Stars: ✭ 135 (-54.24%)
Mutual labels:  cad, geometry, computational-geometry
MidcurveNN
Computation of Midcurve of Thin Polygons using Neural Networks
Stars: ✭ 19 (-93.56%)
Mutual labels:  geometry, cad, computational-geometry
Elm Geometry
2D/3D geometry package for Elm
Stars: ✭ 162 (-45.08%)
Mutual labels:  cad, curve, geometry
Maker.js
📐⚙ 2D vector line drawing and shape modeling for CNC and laser cutters.
Stars: ✭ 1,185 (+301.69%)
Mutual labels:  cad, geometry, bezier
Gismo
G+Smo (pronounced gismo or gizmo) is a C++ library for isogeometric analysis (IGA). Geometry plus simulation modules aims at the seamless integration of Computer-aided Design (CAD) and Finite Element Analysis (FEA).
Stars: ✭ 152 (-48.47%)
Mutual labels:  cad, geometry, bezier
Phidl
Python GDS layout and CAD geometry creation
Stars: ✭ 56 (-81.02%)
Mutual labels:  cad, geometry
Dotscad
Reduce the burden of mathematics when playing OpenSCAD
Stars: ✭ 344 (+16.61%)
Mutual labels:  cad, geometry
paramak
Create parametric 3D fusion reactor CAD models
Stars: ✭ 36 (-87.8%)
Mutual labels:  geometry, cad
topo
A Geometry library for Elixir that calculates spatial relationships between two geometries
Stars: ✭ 125 (-57.63%)
Mutual labels:  geometry, computational-geometry
Naughtybeziercurves
Bezier Curve Game Object for Unity
Stars: ✭ 195 (-33.9%)
Mutual labels:  curve, bezier
SplashGeom
Open-source C++ library for geometry and linear algebra
Stars: ✭ 22 (-92.54%)
Mutual labels:  geometry, computational-geometry
polliwog
2D and 3D computational geometry library
Stars: ✭ 22 (-92.54%)
Mutual labels:  geometry, computational-geometry
BezierKit
Bezier curves and paths in Swift for building vector applications
Stars: ✭ 190 (-35.59%)
Mutual labels:  bezier, curve
Geometry
Boost.Geometry - Generic Geometry Library | Requires C++14 since Boost 1.75
Stars: ✭ 282 (-4.41%)
Mutual labels:  geometry, computational-geometry
pymadcad
Simple yet powerful CAD (Computer Aided Design) library, written with Python.
Stars: ✭ 63 (-78.64%)
Mutual labels:  geometry, cad
paramak
Create parametric 3D fusion reactor CAD and neutronics models
Stars: ✭ 40 (-86.44%)
Mutual labels:  geometry, cad
Beziercurve
Bezier curve master
Stars: ✭ 43 (-85.42%)
Mutual labels:  curve, bezier
Curvejs
Made curve a dancer in HTML5 canvas - 魔幻线条
Stars: ✭ 1,251 (+324.07%)
Mutual labels:  curve, bezier
polygon-splitter
A small (<10kb minified) javascript library for splitting polygons by a polyline.
Stars: ✭ 20 (-93.22%)
Mutual labels:  geometry, computational-geometry
PGS
Processing Geometry Suite
Stars: ✭ 39 (-86.78%)
Mutual labels:  geometry, computational-geometry

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 <https://doi.org/10.1016/j.softx.2018.12.005>_ 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 <http://nurbs-python.readthedocs.io/>_ for more details.

Installation

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

.. code-block:: console

$ pip install --user geomdl

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

.. code-block:: console

$ conda install -c orbingol geomdl

Please refer to the Installation and Testing <http://nurbs-python.readthedocs.io/en/latest/install.html>_ section of the documentation for alternative installation methods.

Examples and Documentation

Extra Modules

Author

  • Onur R. Bingol (@orbingol <https://github.com/orbingol>_)

Acknowledgments

Please see CONTRIBUTORS.rst <CONTRIBUTORS.rst>_ file for the acknowledgements.

License

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

  • six is licensed under the terms of MIT License <https://github.com/benjaminp/six/blob/1.12.0/LICENSE>_
  • backports.functools_lru_cache is licensed under the terms of MIT License <https://github.com/jaraco/backports.functools_lru_cache/blob/1.5/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=5.x .. _RTD: https://nurbs-python.readthedocs.io/en/5.x/?badge=5.x

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

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

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

.. |PYPI| image:: https://img.shields.io/pypi/v/geomdl.svg .. _PYPI: https://pypi.org/project/geomdl/

.. |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/5.x/graph/badge.svg .. _CODECOV: https://codecov.io/gh/orbingol/NURBS-Python

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].