Skip to main content

Library for prototyping spline geometries of arbitrary dimensions and degrees, and IGA

Project description

txt_logo splinepy - Library for prototyping spline geometries of arbitrary dimensions and degrees, and IGA

workflow PyPI version Binder

gallery

Install guide

splinepy wheels are available for python3.8+ for MacOS, Linux, and Windows:

# including all optional dependencies
pip install "splinepy[all]"  # quotation marks required for some shells
# or
pip install splinepy

You can install it directly from the source:

git clone git@github.com:isosuite/splinepy.git
cd splinepy
git submodule update --init --recursive
pip install -e .

Documentation

Here are links to related documentation for the library:

Quick start

1. Create a spline

Here, we will create a NURBS for the following example. Alternatively, we can also create Bezier, RationalBezier, and BSpline.

import splinepy

# Initialize nurbs with any array-like input
nurbs = splinepy.NURBS(
    degrees=[2, 1],
    knot_vectors=[
        [0, 0, 0, 1, 1, 1],
        [0, 0, 1, 1],
    ],
    control_points=[
        [-1.0, 0.0],
        [-1.0, 1.0],
        [0.0, 1.0],
        [-2.0, 0.0],
        [-2.0, 2.0],
        [0.0, 2.0],
    ],
    weights=[
        [1.0],
        [2**-0.5],
        [1.0],
        [1.0],
        [2**-0.5],
        [1.0],
    ],
)

# vizusalize
nurbs.show()

2. Modifications

All the splines can be modified. For example, by

  1. directly accessing properties,
  2. elevating degrees,
  3. inserting knots,
  4. reducing degrees and removing knots with a specified tolerance

Note: currently {3, 4} are limited to BSpline families.

# start with a copy of the original spline
modified = nurbs.copy()

# manipulate control points
# 1. all at once
modified.control_points /= 2.0
# 2. indexwise (flat indexing)
modified.control_points[[3, 4, 5]] *= [1.3, 2.0]
# 3. with grid-like indexing using multi_index helper
multi_index = modified.multi_index
modified.control_points[multi_index[0, 1]] = [-1.5, -0.3]
modified.control_points[multi_index[2, :]] += [2.0, 0.1]

modified.show()  # visualize Nr. 1

# elevate degrees and insert knots
modified.elevate_degrees([0, 1])
modified.show()  # visualize Nr. 2

modified.insert_knots(1, [0.5])
modified.show()  # visualize Nr. 3

modifications

3. Evaluate

You can evaluate spline's basis functions, mapping, and their derivatives by giving parametric coordinate queries. They should be 2D array-like objects and functions return 2D np.ndarray. evaluate

# first, create parametric coordinate queries
queries = [
    [0.1, 0.2],  # first query
    [0.4, 0.5],  # second query
    [0.1156, 0.9091],  # third query
]

# evaluate basis, spline and derivatives.
# for derivatives, specify order per parametric dimension.
basis = nurbs.basis(queries)
basis_derivative = nurbs.basis_derivative(queries, [1, 1])
physical_coordinates = nurbs.evaluate(queries)
physical_derivatives = nurbs.derivative(queries, [2, 0])

Many of splinepy's multi-query functions can be executed in parallel using multithread executions on c++ side. For that, set either the global flag or pass the nthreads argument.

p_basis0 = nurbs.basis(queries, nthreads=2)
# or
splinepy.settings.NTHREADS = 3
p_basis1 = nurbs.basis(queries)

We also implemented point inversion for splines.

# see docs for options
para_coordinates = nurbs.proximities(physical_coordinates)

import numpy as np

assert np.allclose(queries, para_coordinates)

In cases, where you may have to compute derivatives at the inverted locations or you just want to know more information about the search, you can set the keyword return_verbose=True:

(
    parametric_coordinates,
    physical_coordindates,
    physical_difference,
    distance,
    convergence_norm,
    first_derivatives,
    second_derivatives,
) = nurbs.proximities(physical_coordinates, return_verbose=True)

4. Helper Modules

There's a list of helper modules under the namespace splinepy.helpme to boost prototyping efficiencies. Please check out the full list here! Here are some highlights.

4.1 Create

splinepy.helpme.create module can help you create several primitive shapes and another spline based on the existing spline.

# basic splines
box = splinepy.helpme.create.box(1, 2, 3)  # length per dim
disk = splinepy.helpme.create.disk(
    outer_radius=3, inner_radius=2, angle=256
)
torus = splinepy.helpme.create.torus(
    torus_radius=3, section_outer_radius=1.5
)

splinepy.show(["box", box], ["disk", disk], ["torus", torus])

create_basic For the latter, you can directly access such functions through spline.create.

# based on existing splines
extruded = nurbs.create.extruded(extrusion_vector=[1, 2, 3])
revolved = nurbs.create.revolved(
    axis=[1, 0, 0], center=[-1, -1, 0], angle=50
)

splinepy.show(["extruded", extruded], ["revolved", revolved])

create_derived You can also create swept surfaces and solids along spline trajectories.

swept = splinepy.helpme.create.swept(
    cross_section=splinepy.helpme.create.circle(0.5).nurbs,
    trajectory=trajectory,
)

show_swept

4.2 Extract

Using splinepy.helpme.extract module, you can extract meshes (as a gustaf object)

# extract meshes as gustaf objects
control_mesh = nurbs.extract.control_mesh()
control_points = nurbs.extract.control_points()
mesh = nurbs.extract.faces([201, 33])  # specify sample resolutions

splinepy.show(
    ["control mesh", control_mesh.to_edges()],
    ["control points", control_points],
    ["spline", mesh],
)

extract_mesh or part of splines from an existing spline using spline.extract.

# extract splines
boundaries = nurbs.extract.boundaries()
partial = nurbs.extract.spline(0, [0.5, 0.78])
partial_partial = nurbs.extract.spline(0, [0.1, 0.3]).extract.spline(
    1, [0.65, 0.9]
)
bases = nurbs.extract.bases()  # basis functions as splines
# insert knots to increase number of bezier patches
inserted = nurbs.copy()
inserted.insert_knots(0, [0.13, 0.87])
beziers_patches = inserted.extract.beziers()

splinepy.show(
    [
        "boundaries and part of splines",
        boundaries,
        partial,
        partial_partial,
    ],
    ["beziers", beziers_patches],
    ["bases", bases],
)

extract_spline

4.3 Free-form deformation

Together with mesh types of gustaf, we can perform free-form deformation

import gustaf as gus

# create gustaf mesh using extract.spline()
# or use gustaf's io functions (gustaf.io)
mesh = splinepy.helpme.create.torus(2, 1).extract.faces([100, 100, 100])

# initialize ffd and move control points
ffd = splinepy.FFD(mesh=mesh)
multi_index = ffd.spline.multi_index
ffd.spline.control_points[multi_index[-1, :, -1]] += [3, 0.5, 0.1]

ffd.show()

# get deformed mesh - FFD.mesh attribute deforms mesh before returning
deformed = ffd.mesh

ffd

4.4 Fitting

You can fit your point data using splines.

data = [
    [-0.955, 0.293],
    [-0.707, 0.707],
    [-0.293, 0.955],
    [-1.911, 0.587],
    [-1.414, 1.414],
    [-0.587, 1.911],
]

curve, residual_curve = splinepy.helpme.fit.curve(data, degree=2)
# you can also use any existing spline's basis
surface, residual_surface = splinepy.helpme.fit.surface(
    data, size=[3, 2], fitting_spline=nurbs
)

# set visuals for data
d = gus.Vertices(data)
d.show_options.update(c="blue", r=15)

splinepy.show(
    ["curve fit", d, curve],
    ["surface fit", d, surface],
)

fit

4.5 Mapper

Mapper class is a geometric mapping helper that brings expression and derivatives into the physical domain. This is especially useful for trying collocation methods. Here, we show how you can create a left hand side matrix for a laplace problem - see this example for a full solution:

# create solution spline
solution_field = nurbs.create.embedded(1)

# refine
solution_field.elevate_degrees([0, 1])
solution_field.uniform_refine(n_knots=[4, 4])

# create matrix using mapper
# collocation points at greville abcissae
mapper = solution_field.mapper(reference=nurbs)
laplacian, support = mapper.basis_laplacian_and_support(
    solution_field.greville_abscissae()
)
laplacian_matrix = splinepy.utils.data.make_matrix(
    laplacian,
    support,
    n_cols=solution_field.control_points.shape[0],
)

5. Microstructure

(Rational) Bezier splines in splinepy are capable of composition, where you can place a spline (inner spline/function) into another spline (outer spline/function) in an exact fashion. We can systematically perform this to create certain shapes that consist of multiple inner splines. The resulting shapes are called microstructures and the inner spline that serves as a basis shape is called tile.

splinepy has several tiles that are ready to use. Implementations of available tiles can be found here. However, it is easier to access them through module functions:

splinepy.microstructure.tiles.show()

tiles

You can also filter the available tiles by their parametric and geometric dimensions:

# get specific dimensions as dict
para_2_dim_2 = splinepy.microstructure.tiles.by_dim(para_dim=2, dim=2)

dim_2 = splinepy.microstructure.tiles.by_dim(dim=2)

The composition can then be created as follows:

# create microstructure generator
microstructure = splinepy.Microstructure()
# set outer spline and a (micro) tile
microstructure.deformation_function = nurbs
microstructure.microtile = splinepy.microstructure.tiles.get("Cross2D")
# tiling determines tile resolutions within each bezier patch
microstructure.tiling = [5, 3]

microstructure.show()

# extract only generated parts as multipatch
generated = microstructure.create()

microstructures

Please take a look at this example for a broad overview of what microstructures can do!

6. Multipatch

In practice, including Microstructures, it is common to work with multiple patches. For that, we provide a Multipatch class, equipped with various useful functionalities:

  • patch interface identification
  • boundary patch identification
  • boundary assignment with various options
  • subpatch / boundary patch extraction
# use previously generated microtiles
interface_info_array = generated.interfaces


# Mark boundaries to set boundary conditions
# In case of micro structure, you can use outer spline's boundary
def is_left_bdr(x):
    left = nurbs.extract.boundaries()[3]
    return (left.proximities(x, return_verbose=True)[3] < 1e-8).ravel()


generated.boundary_from_function(is_left_bdr, boundary_id=5)

splinepy.show(
    ["All", generated],
    ["Boundaries", generated.boundary_multipatch()],
    ["Boundary 5", generated.boundary_multipatch(5)],
)

# export for the solver
splinepy.io.gismo.export("microstructure.xml", generated)

multipatch

7. Input/output and vector graphics

splinepy supports various IO formats. Most notably, gismo and mfem formats allow a seamless transition to analysis. In addition splinepy is also able to import and export the iges format. Specifically, Type 126 (B-Spline curve) and Type 128 (B-Spline surface).

# export
splinepy.io.mfem.export("quarter_circle.mesh", nurbs)

# load
quarter_circle = splinepy.io.mfem.load("quarter_circle.mesh")

svg format enables true vector graphic export which preserves the smoothness of splines for publications/documentation. Try to zoom in!

splinepy.io.svg.export("nurbs.svg", nurbs)

Try online

You can also try splinepy online by clicking the Binder badge above!

Contributing

splinepy welcomes any form of contributions! Feel free to write us an issue or start a discussion. Contribution guidelines can be found here.

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

splinepy-0.2.1.tar.gz (8.3 MB view details)

Uploaded Source

Built Distributions

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

splinepy-0.2.1-cp314-cp314-win_amd64.whl (5.9 MB view details)

Uploaded CPython 3.14Windows x86-64

splinepy-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (38.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

splinepy-0.2.1-cp314-cp314-macosx_11_0_arm64.whl (10.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

splinepy-0.2.1-cp314-cp314-macosx_10_15_x86_64.whl (12.0 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

splinepy-0.2.1-cp313-cp313-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.13Windows x86-64

splinepy-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (38.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

splinepy-0.2.1-cp313-cp313-macosx_11_0_arm64.whl (10.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

splinepy-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl (12.0 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

splinepy-0.2.1-cp312-cp312-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.12Windows x86-64

splinepy-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (38.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

splinepy-0.2.1-cp312-cp312-macosx_11_0_arm64.whl (10.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

splinepy-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl (12.0 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

splinepy-0.2.1-cp311-cp311-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.11Windows x86-64

splinepy-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (38.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

splinepy-0.2.1-cp311-cp311-macosx_11_0_arm64.whl (10.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

splinepy-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl (12.0 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

splinepy-0.2.1-cp310-cp310-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.10Windows x86-64

splinepy-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (38.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

splinepy-0.2.1-cp310-cp310-macosx_11_0_arm64.whl (10.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

splinepy-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl (12.0 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file splinepy-0.2.1.tar.gz.

File metadata

  • Download URL: splinepy-0.2.1.tar.gz
  • Upload date:
  • Size: 8.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for splinepy-0.2.1.tar.gz
Algorithm Hash digest
SHA256 6f30fe722470bb88f9d787527e0df6fa1e31abb45e4fe1c662681da236dddedb
MD5 f7a774558cbac30f51f56fe8269ad03b
BLAKE2b-256 ccca7181782226e0f79f09f9888d9b2bdb5afd694f61258cdca78a202c5b9532

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1.tar.gz:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: splinepy-0.2.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 5.9 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for splinepy-0.2.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 54668b120ab93e99174947ddbb187c18a1d6b12a49361c9ae396401cf56f20d1
MD5 d746225a4b10fa90fee2bad33b44856d
BLAKE2b-256 7aaaf9d2b390316fac38f2c226d30909f72e7203294d936448ade7833d166270

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp314-cp314-win_amd64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a4f50aad3b1d1071e5b74c77429f092b87c1a35e2124005056c49bee938541f8
MD5 3a53c7340e9602d1d113ece9dd51c7d0
BLAKE2b-256 e3d5e0f518c303dddda9bcbb599ae04a462c97efb21f1d2dc79d888de9f9d9b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe08faf56df802753c39fbe38808a791bfa47179c4416713f996d0a15d16930b
MD5 1bd78f556f579775e2fcc1b46ff4b371
BLAKE2b-256 ae783ce036a34d72fbfe0964c34b202829c275e5f9b7428b999ac9d6bcca3f63

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 37de46a9168a10212d58095d87c1dfd21f602b3806a65f4674e08486995befd7
MD5 c58bf51ef8686bc6a3f5056c8f67c397
BLAKE2b-256 fe2b37f96b9d794f74d876cd67d2cb6f6f3be823fa1d23454115554046b1d1d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: splinepy-0.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for splinepy-0.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e8b5be44fbdde1a973f18e1824aad4e89839f5eb344610e1600d27c355a2b628
MD5 f839f956ac19e8854fcfd1bd8e442002
BLAKE2b-256 87f30f87cf3a10e7f083d60904129af9feea8063aedd140b78f9ad2bae18851d

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp313-cp313-win_amd64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5d116836d6fcdea3f98aac0b26071548c33cb18eb645b738509a599ff499e042
MD5 8c01f2a427f11caeef909f04a0bfe049
BLAKE2b-256 1e88909c558c370223a2cc72e051e472dc88768ffc0ea23407b2d4be9731cb77

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 90a77f11e8e6e8088f51faa606287cfb711322128bc5a1e753863059b41122d5
MD5 481696ede3852ac78e8badd1c51c5b5f
BLAKE2b-256 d497f93d7de638b75e579db57987cfafb224c296daa215729b395523ede5857c

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b06bb4528921f22b515ec62f081702ca5a846047c7b205c190d74b981afb8217
MD5 5733248d831ecda40474ac4b973e5e78
BLAKE2b-256 6201eada41a06e30198ccd0f7667e63e1261b52d496dbfa3da99cdacf7903aa0

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: splinepy-0.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for splinepy-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 535fca352939a0406b050d2baf22d159d76ef9e5c7588ddef3754c1067782438
MD5 53c778c0d899c3f787616eb74d7cb8be
BLAKE2b-256 57683d71e49254a3fe3ceb45551e6cfc77107ab5fc47cbe3748790a204752e47

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp312-cp312-win_amd64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0f5d7a89c3f16b1df3cc19d2966c5d15c5cff4babcb30bc47d3d3fa5b157f173
MD5 0452d9670123e1c0910194b735098deb
BLAKE2b-256 87775e3615007dd977b4e6adfe4a335ecff201741f841c3dbe9d193cd505de9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c6b1cef58f8ff0dd1e63a652a0bddc1c46f5516512af752f1c09f4a387c9f546
MD5 a3660dad1c834c5ad3a6bf882258be39
BLAKE2b-256 540f37abddcd8708e311c8b166aedbf061c582ae4064e833ee9b1f0989b1969f

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d82d4bcb092a2116864c712426302cd15d248661180fbb4314fe01488b15c5c2
MD5 911a5c23732ab16d11cc2bbf994d79f3
BLAKE2b-256 8a15df0a48295ee58211e3714ba43a4ae2d2ca4db2318df6ed873089d1b966a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: splinepy-0.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for splinepy-0.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e674cf3ca76e6818c7239054318cb68890e3206fdf4495a9c04ec7961b4177e7
MD5 9d075c23106c9c1daf0f88fb86f5aca6
BLAKE2b-256 64a93b5cd3d190aedd983874fcd8c614ca1417acf1db97f8158b8ed23c390971

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp311-cp311-win_amd64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4eeec5d02c98d2dcbdf87a889e28a0cc3865fc4397e895edc41d6bb0f5d982d4
MD5 73928519b50905a5ff35d5afe43c7704
BLAKE2b-256 c256681c667669a5d1d14855fca8cc69d8b5afda395ddefdb6faada98643b0cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 43db89c5a9083b3755fe778f7b07ce4b509456154c7e0edecce28928ff79d5e7
MD5 9bfb6358e8482dde54270b6b43eced0f
BLAKE2b-256 fb541dbf7e349787fbae1b8a3d861155d38a48dddfe30c52cb50803235025410

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ee74f9b05ff2580e0cb01fad962bfd1801dcea2c6320beddb093af86299c38b9
MD5 a56fd75c93fa7834254528693514b929
BLAKE2b-256 81f7d1b4050917413b9d007529e67e82d834293394bc7291854f0785280d31cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: splinepy-0.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for splinepy-0.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4231954e47184a76457ba7cd0cbf328d22a62a643a62add47f96d1b63f6e9993
MD5 f34d4703b32b25702db3dfa25c16e58b
BLAKE2b-256 97b86746b7f6a7690a1d6e034e250290b09f945aa6d52f1a330b3a1f30035004

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp310-cp310-win_amd64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b137e1f5ecf460723418ea7f3504e01ee34a63bb07ee7624d687b15305e05092
MD5 3a52f61d5acce5ae8313b78072756517
BLAKE2b-256 dd56f3b03b047740f0c0051cc1bbf76b35df404bb27095df16ea408ccd763da4

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6e8ecf1800bbc89fa55677c0186351cf6ab58ed214e28bbb4aa08c674b64f16
MD5 cdb712600b56f0ef9ec7bf897c5f8d52
BLAKE2b-256 1d19c3daa625a4d741aa3c9b93cec66edb392f13daf23f95d90bcc907fdfd3ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splinepy-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0e367ce87450ef3f8d456aee4ee3ce1e1ef5e5249200d058185ddc30bbff960f
MD5 1cfd5486f2d30b367fa64b05fb34d915
BLAKE2b-256 cab17a7c7f58409694524330efb7baf3b3938afa775b407175941bd29f341b83

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: main.yml on isosuite/splinepy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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