Skip to main content

NURBS 2D/3D curve and surface evaluation library in native Python

Project description

DOI RTFD WAFFLEIO

Introduction

This project aims to implement Non-Uniform Rational B-Spline (NURBS) curve and surface computation algorithms in native Python with minimum possible dependencies. The library is fully object-oriented and does not depend on any external C/C++ libraries.

The package contains 3 modules:

  • BSpline contains Non-Uniform B-Spline (NUBS) evaluation and storage functionality

  • NURBS contains Non-Uniform Rational B-Spline (NURBS) evaluation and storage functionality

  • CPGen contains simple control points grid generation algorithms

BSpline and NURBS modules contain 3 classes for geometric evaluation:

  • Curve for evaluating 3D curves

  • Curve2D for evaluating 2D curves

  • Surface for evaluating surfaces

CPGen module contains 2 classes for grid generation:

  • Grid for generating inputs for BSpline.Surface class

  • GridWeighted for generating inputs for NURBS.Surface class

Information for Researchers

I would be glad if you cite this repository using the DOI provided as a badge at the top.

Library Versions

  • master branch contains the latest version of NURBS-Python (currently v3.x series).

  • 2.x branch contains the code for NURBS-Python v2.x series.

There are some API changes between v2.x and v3.x series and all updates will be added to the latest version. Old versions won’t be receiving any new features and updates.

Installation

Included setup.py script will take care of the installation and automatically copy the required files to site-packages directory. Please run the following from the command line:

python setup.py install

If you don’t want to put the files into your Python distribution’s site-packages directory for some reason, you can run

python setup.py develop

from the command line to generate a link to the package directory inside site-packages.

Example Scripts

Please see NURBS-Python Examples repository for examples.

Implementation

NURBS-Python is a high-level Python library following the object-oriented design principles. In its core, it implements the algorithms from The NURBS Book (2nd Edition) by Piegl & Tiller and combines these algorithms with other useful features. Please see the documentation for function reference and how to use the library: http://nurbs-python.rtfd.org

Issues and Reporting

Bugs and Issues

Please use the issue tracker for reporting bugs and other related issues.

Comments and Questions

If you have any questions or comments related to the NURBS-Python package, please don’t hesitate to contact the developers by email.

Author

Contributors

I would like to thank all contributors for their help and support in testing, bug fixing and improvement of the NURBS-Python project.

License

NURBS-Python is licensed under The MIT License.

Acknowledgments

I would like to thank my PhD adviser, Dr. Adarsh Krishnamurthy, for his guidance and supervision throughout the course of this project.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

NURBS_Python-3.0.00-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

NURBS_Python-3.0.00-py2-none-any.whl (31.0 kB view details)

Uploaded Python 2

File details

Details for the file NURBS_Python-3.0.00-py3-none-any.whl.

File metadata

File hashes

Hashes for NURBS_Python-3.0.00-py3-none-any.whl
Algorithm Hash digest
SHA256 1a72cf752ec752a251ce9fa1d05887acd7d747431883d96bf681286f2ffa17d5
MD5 cfe2e2afe3e1c531db6aebe27892f5ab
BLAKE2b-256 d3a84e2096b4bb83bded7e4be7551475655b314c680b696006ae5681106fe3fa

See more details on using hashes here.

File details

Details for the file NURBS_Python-3.0.00-py2-none-any.whl.

File metadata

File hashes

Hashes for NURBS_Python-3.0.00-py2-none-any.whl
Algorithm Hash digest
SHA256 9a65bf56a30e4dd54e93ff0d44552f83da1102df8db37138043a7473ea4e4169
MD5 fc8fb16924907d99249a352de2509622
BLAKE2b-256 02f08d700a89a182d19dc92e5856ee92767dd674028d49d6c78af8170347bbd7

See more details on using hashes here.

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