Metadata-Version: 2.4
Name: bsplyne
Version: 1.0.0
Summary: A package for N dimensions B-splines.
Home-page: https://github.com/Dorian210/bsplyne
Author: Dorian Bichet
Author-email: dbichet@insa-toulouse.fr
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: CEA CNRS Inria Logiciel Libre License, version 2.1 (CeCILL-2.1)
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: numpy
Requires-Dist: numba
Requires-Dist: scipy
Requires-Dist: matplotlib
Requires-Dist: meshio
Requires-Dist: tqdm
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: summary

# bsplyne

<p align="center">
  <img src=docs/logo.png width="500" />
</p>

**bsplyne** is a Python library for working with N-dimensional B-splines. It implements the Cox-de Boor algorithm for basis evaluation, order elevation, knot insertion, and provides a connectivity class for multi-patch structures. Additionally, it includes visualization tools with export capabilities to Paraview.

## Installation

Since **bsplyne** is not yet on PyPI, you can install it locally as follows:

```bash
git clone https://github.com/Dorian210/bsplyne
cd bsplyne
pip install -e .
```

### Dependencies
Make sure you have the following dependencies installed:
- `numpy`
- `numba`
- `scipy`
- `matplotlib`
- `meshio`
- `tqdm`

## Main Modules

- **BSplineBasis**  
  Implements B-spline basis function evaluation using the Cox-de Boor recursion formula.
  
- **BSpline**  
  Provides methods for creating and manipulating N-dimensional B-splines, including order elevation and knot insertion.
  
- **MultiPatchBSplineConnectivity**  
  Manages the connectivity between multiple N-dimensional B-spline patches.
  
- **CouplesBSplineBorder** (less documented)  
  Handles coupling between B-spline borders.

## Examples

Several example scripts demonstrating the usage of **bsplyne** can be found in the `examples/` directory. These scripts cover:
- Basis evaluation on a curved line
- Plotting with Matplotlib
- Order elevation
- Knot insertion
- Surface examples
- Exporting to Paraview

## Documentation

The full API documentation is available in the `docs/` directory of the project or via the [online documentation portal](https://dorian210.github.io/bsplyne/).

## Contributions

At the moment, I am not actively reviewing contributions. However, if you encounter issues or have suggestions, feel free to open an issue.

## License

This project is licensed under the [CeCILL License](LICENSE.txt).

