bsplyne
bsplyne is a Python library for working with N-dimensional B-splines, with a focus on numerical mechanics and geometry. It implements the Cox–de Boor algorithm for basis evaluation, order elevation, knot insertion, and provides tools for handling multi-patch B-spline structures. Visualization and export utilities (e.g. Paraview) are also included.
Installation
From PyPI (recommended method)
Install the core library:
pip install bsplyne
Install the library with recommended visualization features (additionally install pyvista):
pip install bsplyne[viz]
Note: choose either the core (
bsplyne) or the visualization (bsplyne[viz]) installation.
From source (development mode)
Clone the repository and install:
git clone https://github.com/Dorian210/bsplyne
cd bsplyne
pip install -e . # core
pip install -e .[viz] # with visualization
Dependencies
Core dependencies are handled automatically by pip:
- numpy
- numba
- scipy
- matplotlib
- meshio
- tqdm
Optional visualization:
- pyvista (for 3D visualization)
Main Modules
-
BSplineBasis
Evaluation of B-spline basis functions using the Cox–de Boor recursion formula. -
BSpline
Construction and manipulation of N-dimensional B-splines, including order elevation and knot insertion. -
MultiPatchBSplineConnectivity
Management of connectivity between multiple B-spline patches. -
CouplesBSplineBorder
Utilities for coupling B-spline borders (experimental / less documented).
Tutorials
A step-by-step introduction to bsplyne is provided in:
examples/tutorial/
These scripts are designed as a progressive entry point to the library and cover:
- B-spline basis functions
- Curve construction
- Surface generation
- Least-squares fitting
- Multi-patch geometries
- Export to Paraview
In addition, a comprehensive PDF guide (tp_bsplyne.pdf) is included in the tutorials directory, providing a hands-on introduction to the library for new users.
It explains the workflow, the main modules, and practical usage examples.
Examples
Additional standalone examples are available in the examples/ directory, including:
- Curves and surfaces
- Order elevation and knot insertion
- Visualization with Matplotlib
- Export to Paraview
Documentation
The full API documentation is available online:
https://dorian210.github.io/bsplyne/
The documentation is generated from the source code docstrings and reflects the latest published version.
Contributions
This project is primarily developed for research purposes. While I am not actively reviewing external contributions, bug reports and suggestions are welcome via the issue tracker.
License
This project is licensed under the CeCILL License.
See LICENSE.txt for details.
Metadata
Release files for bsplyne 1.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bsplyne-1.0.9.tar.gz | 60.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bsplyne-1.0.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 117.0 kB
Release files / bsplyne-1.0.9.tar.gz
| Download URL | bsplyne-1.0.9.tar.gz |
|---|---|
| Size | 60.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4b3f2b9625ef3ddf9645761b12ec02cdbb2c298cb753c9dae78e73b5fde4ca12
|
|
BLAKE2b-256 checksum How to use checksums |
da0744476bf9383927be6e4da11a3e123822fb6ea3da56c98ed4d3120c31af87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.23
|
Release files / bsplyne-1.0.9-py3-none-any.whl
| Download URL | bsplyne-1.0.9-py3-none-any.whl |
|---|---|
| Size | 56.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b3773a85092e29fd455fec5f766c84fe4ad74128622f99ed40629c40db56c85
|
|
BLAKE2b-256 checksum How to use checksums |
4cca9285d674f2cc7e4efcb2d5b36755643b3ec1cf6ae7ecdbd00d941a8ba98d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.23
|