https://github.com/hobezwe/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.
https://github.com/hobezwe/nurbs.jl
b-spline curves derivatives jacobians julia nurbs surfaces
Last synced: 5 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/hobezwe/nurbs.jl
- Owner: HoBeZwe
- License: mit
- Created: 2022-12-19T13:18:18.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-03T23:57:34.000Z (8 months ago)
- Last Synced: 2025-07-10T19:14:58.714Z (5 days ago)
- Topics: b-spline, curves, derivatives, jacobians, julia, nurbs, surfaces
- Language: Julia
- Homepage:
- Size: 11.6 MB
- Stars: 16
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.cff
Awesome Lists containing this project
README
[](https://hobezwe.github.io/NURBS.jl/stable/)
[](https://hobezwe.github.io/NURBS.jl/dev/)
[](https://github.com/hobezwe/NURBS.jl/blob/main/LICENSE)
[](https://github.com/hobezwe/NURBS.jl/actions/workflows/CI.yml?query=branch%3Amain)
[](https://codecov.io/gh/HoBeZwe/NURBS.jl)
[](https://zenodo.org/badge/latestdoi/579998043)## 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](https://zenodo.org/badge/latestdoi/579998043).
## Documentation
- Documentation for the [latest stable version](https://hobezwe.github.io/NURBS.jl/stable/).
- Documentation for the [development version](https://hobezwe.github.io/NURBS.jl/dev/).