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:tataratat/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.]
# 3. with grid-like indexing using multi_index helper
multi_index = modified.multi_index
modified.control_points[multi_index[0, 1]] = [-1.5, -.3]
modified.control_points[multi_index[2, :]] += [2., .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, [.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

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, [.5, .78])
partial_partial = nurbs.extract.spline(0, [.1, .3]).extract.spline(1, [.65, .9])
bases = nurbs.extract.bases() # basis functions as splines
# insert knots to increase number of bezier patches
inserted = nurbs.copy()
inserted.insert_knots(0, [.13, .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, .5, .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.0.tar.gz (8.2 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.0-cp313-cp313-win_amd64.whl (5.4 MB view details)

Uploaded CPython 3.13Windows x86-64

splinepy-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

splinepy-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (10.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

splinepy-0.2.0-cp313-cp313-macosx_10_13_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

splinepy-0.2.0-cp312-cp312-win_amd64.whl (5.4 MB view details)

Uploaded CPython 3.12Windows x86-64

splinepy-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

splinepy-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (10.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

splinepy-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

splinepy-0.2.0-cp311-cp311-win_amd64.whl (5.4 MB view details)

Uploaded CPython 3.11Windows x86-64

splinepy-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

splinepy-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (10.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

splinepy-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

splinepy-0.2.0-cp310-cp310-win_amd64.whl (5.4 MB view details)

Uploaded CPython 3.10Windows x86-64

splinepy-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

splinepy-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (10.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

splinepy-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

splinepy-0.2.0-cp39-cp39-win_amd64.whl (5.4 MB view details)

Uploaded CPython 3.9Windows x86-64

splinepy-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

splinepy-0.2.0-cp39-cp39-macosx_11_0_arm64.whl (10.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

splinepy-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for splinepy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 765902a73b649b385eabfdccb71f3ed1b9434b5981fd71730f1e712c3129a755
MD5 cc352c883dcd3faf47114396556ee9e0
BLAKE2b-256 03d4bf9bb63707add23dff3b301a3ff5e90d8c2485cacc01fc1d17de95a1c4e6

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp313-cp313-win_amd64.whl.

File metadata

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

File hashes

Hashes for splinepy-0.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8304cd1f6aaa8bc5a376e73a303f50162e4be67dbac8c9304fa8f0bfd82fb9c4
MD5 c686d55426a8e6529746f03ba85bf322
BLAKE2b-256 5375c51cf7cb97b36c812ede5ccc4b535f45f7cf4da0675f4ae603a2428feb4f

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c19885e620efedc9b1a6cf549cee479ec60e59e0d8884f1bd18551f52be1f0e3
MD5 94b975f1e5747fb5bbb1d65ea79dba09
BLAKE2b-256 80ff4a1cfb2d23e8175c993a2471f2c9d3580bd69ccc2fa740acf0f0405e6a50

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: main.yml on tataratat/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.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ac34b79ba0b73575151dfeaf60795a3639bfa90faf3e1e126aa4a12fb28692e3
MD5 74fe2d73fde1d3f101fa50e01433c7f4
BLAKE2b-256 208e07ef3f49618e3f57054c9dc8a83cffeea54b0dca404c7b1b9a40ac2de601

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7bb81c9229841edaea396140ff57216561c48f7937a2557c374ec171aa01f788
MD5 ed0ad551c9e0a4a8e6e0c85f80dda241
BLAKE2b-256 8a4205e64ab58180da625bf953a95bcdb6ef6756e2e0d9c300c9bbd786494bde

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp312-cp312-win_amd64.whl.

File metadata

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

File hashes

Hashes for splinepy-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 323019cbd6440e2f2598b58fbb5f2826ffa34b521596ba3a7ca053eb6b944d26
MD5 57e8ec5d295af20aef010850562ffa69
BLAKE2b-256 5c76a55a5c1d3eb4db39fcac88fd079a3319e04d851f848ec6c6c0cb2b66d7f1

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 34dc94535808b83ed0a81bf3521913de289a2d45689a0c2de6fbb06e6736d312
MD5 eba3ee048ca3ef53c998c1423bb0649c
BLAKE2b-256 d4aad73b7c7949eadf165637936ea926f83652eb33f54a66959d2472ce462767

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: main.yml on tataratat/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.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a199a00926da9ae592361c978d080d6566ab08e2c05cc94d1257c8f7d451f6b
MD5 1dd566df2e0d17fd040c5280f094e5e3
BLAKE2b-256 b5d1d21361ae8de7d8d3120cebbed6885291cafbc46021448fbaa5263bd354be

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 24180387226d9340ad2d5583b05c27ef02dbf8577316f7b8da9eb6f1bb150232
MD5 bdba6127970dcbbcab6a669e112ea86e
BLAKE2b-256 7ec009b64025b02c6fad675d5072743751ffa6cb7a020bff50ced2e6bea72bc1

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp311-cp311-win_amd64.whl.

File metadata

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

File hashes

Hashes for splinepy-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6e05a4852ca8bfbdfaeb00cf23f975c3c2edaec3ebfa1f332ac4fe15a2daae44
MD5 541ed8640df27358974c964b4d72c511
BLAKE2b-256 c03208d9d8ec29efda8aa703f28a65d7c85fca6c9d042d3efcbb78ac4e2e3e4f

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f80156246001cd335f0b525748f8995fc8fe467e8b52e2f92b4f411e3e96663
MD5 81d2fdb7078eb371afb8ef8e64a4e5b7
BLAKE2b-256 fda89a8d79b7059f3ec975718791594bd34e501e72b282c6a3317e5df3949ea3

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: main.yml on tataratat/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.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 732ff3f0ba17485299e3dca8cd79d24cb60dd84c39852e3173f197af8c7f0062
MD5 01d5231b866f9af66772f90f01f41fc4
BLAKE2b-256 a4f11d9d16433042e3c227e01914d5e199d38ad609f4a5bc8e48d76947998e99

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 181d378f72e2588b2a1feed2de34dd79c6d6f142b84520185fd4a7b4eee777b4
MD5 b9c43931e74ec5dc0aa3c02d2cfe01bf
BLAKE2b-256 36ba2c0b6741938f0d28454d8cff59cde9820ceda0329f27c0c290f86603945a

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp310-cp310-win_amd64.whl.

File metadata

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

File hashes

Hashes for splinepy-0.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 897ff8675e99704f6a45cf06d96eca9b720f1303bc91dfdc20e4e14cf4b5c5ea
MD5 7fcb74f844fcb1be1cc6d49b8d71c5f1
BLAKE2b-256 213e841383f27c57cdf929c05dc08f6d96045e087929632b544aec5b1552bd20

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c8a5b5351f446025ef8c64029dc3e89a79da2aa8dc2b1e287842118b0f7bcb6f
MD5 f4a2853dee2a5d13a1c9b579c084023f
BLAKE2b-256 f28f192856ceb3beaf931b9a714e099baf8d504c4891ecb4810453e6f8825d68

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: main.yml on tataratat/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.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f639b52c8e5b3d13d028b255af3243b5e7e6c9d018b1cdeb503ed3d41b5774b
MD5 a3de722b25aae945deed3d22669e8694
BLAKE2b-256 7e6892e8df060ca3c5e6c327e87f81e8315e688b53cd4ff48e8d45074cb9aa23

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 06b8cd2c222b3cf4e6ea55be5aa73db2a0bbd8c581a44d08e98361ba9a45a8c9
MD5 43a621493898d4d69a0cf696db00fdee
BLAKE2b-256 c305732376cad54c2ff52ca6b2f8fa4c113a04bf7018998696218a77f0a818dc

See more details on using hashes here.

Provenance

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

Publisher: main.yml on tataratat/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.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: splinepy-0.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 5.4 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for splinepy-0.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f3421ae4d4d23762b9b5e0640c3ea40b0eb99dce5c26e1676a3fc184bb59ec9e
MD5 4fce449fe1c140602ea8aaa9457510aa
BLAKE2b-256 f691ec91f747a4dd2754bb35b5d069b074599ff8b534390efbfd8324756c2b2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.0-cp39-cp39-win_amd64.whl:

Publisher: main.yml on tataratat/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.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cd585494112ed5b30bccfe354e83fb9d037b87f70090110b991085b8027fe6dd
MD5 c8c2b891e5310f26bd69ec1aacb1b150
BLAKE2b-256 64c0e2e109acbd864d9af14dd4aefd40b9f0f1a3485be2a9dac63a62cc2fa43e

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: main.yml on tataratat/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.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26c23f49dec928d84024a3fd3900a5350a5b0a2b44851b5cdff6569ae685824d
MD5 b2dd3b5420b637c87696c7b0880b7951
BLAKE2b-256 f02bcbcf7414ec5f0a51625244fc7eed266cb513d0af8c9ce0c9de782d7bdfd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: main.yml on tataratat/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.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c19ecd837161ac6f8fda9d3f31fb17e9ef6e5c9c4a99ebe353e27170601e4cbe
MD5 9087635d1ffda6187ea0807af0ff781a
BLAKE2b-256 11f63d29aa6a793ebe135334c1939e8413351bff9b0d1fa37821d964da1179dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for splinepy-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: main.yml on tataratat/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