Skip to main content

N-dimensional B-spline library for numerical mechanics and geometry

Project description

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

Using pip

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, not both.

Using conda (conda-forge)

Install the core library:

conda install -c conda-forge bsplyne

Optional: install PyVista to enable visualization features:

conda install -c conda-forge pyvista

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 or conda:

  • 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:

  1. B-spline basis functions
  2. Curve construction
  3. Surface generation
  4. Least-squares fitting
  5. Multi-patch geometries
  6. 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.

Project details


Download files

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

Source Distribution

bsplyne-1.0.2.tar.gz (60.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bsplyne-1.0.2-py3-none-any.whl (56.7 kB view details)

Uploaded Python 3

File details

Details for the file bsplyne-1.0.2.tar.gz.

File metadata

  • Download URL: bsplyne-1.0.2.tar.gz
  • Upload date:
  • Size: 60.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for bsplyne-1.0.2.tar.gz
Algorithm Hash digest
SHA256 e869956c3169729671a5fff389d08886fe7ece8f0370d15be7a60bd5d435be6f
MD5 1e11db55df0e1ccf7cc0a537d4955daa
BLAKE2b-256 bf502e909a2bcf2d0408ee4b99df95861c007a0a895dcebe8311c0cb11517beb

See more details on using hashes here.

File details

Details for the file bsplyne-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: bsplyne-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 56.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for bsplyne-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dc36c699c942b32244effb0948192fcaa7034a7e677412b38549bc43acad00e5
MD5 48f2da3deb446aee9821b02b2028d48a
BLAKE2b-256 35c2decf4476d78a8415d931d7792a6ee7ef04e462631345ee28ae35efcc292e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page