NURBS.jl

This package provides functionality to define and evaluate B-spline and NURBS (non-uniform rational B-spline) basis functions, their derivatives, as well as curves and surfaces based on both considered basis functions.

MIT License

Stars
11

Introduction

This package provides functionality to define and evaluate B-spline, Curry-Schoenberg, and NURBS (non-uniform rational B-spline) basis functions, their derivatives, as well as curves and surfaces based on B-spline and NURBS basis functions.

The following aspects are implemented () and planned ():

B-spline, Curry-Schoenberg & NURBS evaluation
  • Basis & derivatives
  • Curves & derivatives
  • Surfaces & derivatives
Fundamental operations
  • File I/O (.step)
  • Knot manipulation
    • knot insertion / refinement
    • knot removal
    • splitting of curves and surfaces
  • Transformation of curves and surfaces
    • scaling
    • translating
    • rotating
    • mirroring
  • Degree elevation / reduction
  • Construction of common geometries
Connectivity
  • Determine patch connectivity
    • identify interfaces between patches
    • introduce per patch local numbering for vertices and edges
  • Virtual Bezier mesh connectivty (for FEM)
    • introduce on each patch a virtual Bezier mesh
    • determine adjacency information of mesh cells

Citation

Please cite this package following the information on Zenodo.

Documentation

Package Rankings
Top 38.36% on Juliahub.com
Badges
Extracted from project README
Docs-stable Docs-dev MIT license Build Status codecov DOI