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.1.3.tar.gz (8.2 MB view details)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 Windows x86-64

splinepy-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

splinepy-0.1.3-cp312-cp312-macosx_10_9_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

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

Uploaded CPython 3.11 Windows x86-64

splinepy-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 macOS 10.9+ x86-64

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

Uploaded CPython 3.10 Windows x86-64

splinepy-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 macOS 10.9+ x86-64

splinepy-0.1.3-cp39-cp39-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.9 Windows x86-64

splinepy-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 10.9+ x86-64

splinepy-0.1.3-cp38-cp38-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.8 Windows x86-64

splinepy-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (36.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

splinepy-0.1.3-cp38-cp38-macosx_11_0_arm64.whl (10.3 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

splinepy-0.1.3-cp38-cp38-macosx_10_9_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for splinepy-0.1.3.tar.gz
Algorithm Hash digest
SHA256 2714515d9cd709a68b7e860280156720673344e2a503b48168c636496d67a714
MD5 1e37f17d5d82b1299c0ca6fdc211616f
BLAKE2b-256 40b90f23b848119c43d0ac4a36b0e638b5b0b9fade9a0e5bd4d21192cdb1f7bd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: splinepy-0.1.3-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/5.1.0 CPython/3.12.5

File hashes

Hashes for splinepy-0.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 514e4a8a1c2d261ef68a4a1901830d1dd98d4e3736cbb7a1ab4106402b830c50
MD5 b3c78efbcb6322a55237a7fcd890cdb8
BLAKE2b-256 aadd3a0de722c2224ec174eb2d83b79c8fd65eabb41a1f900b569813d939e003

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d6baec29228504a7556538df3ffb567ed6be5ec512b0c666cfe706ba1b6d94b8
MD5 c340dea2fd1962886b21d476c1043fbc
BLAKE2b-256 130f29c9f61eabe6309448075876bde28b0ef374e0fa48cbd3673eb36418b076

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for splinepy-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3633f7c301e0d7150fb3a27417a5b25b5a3891f432446b8b2618f5078cbad72b
MD5 500f77ab373693acf2ed1486487cae24
BLAKE2b-256 3d543cd9429826115c5645723986b0709014d55e5b661646b5df727d54a92707

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.1.3-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c942ed5b9c65b354a93cce3a71512134399e94d8539fb67f2d87f46065d469c2
MD5 2dd1471546de870381901891c6e86bd6
BLAKE2b-256 452b232d4fa22ca000588a1ae001694c669e313ceb90bceb9b9f5708b4a3a1a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: splinepy-0.1.3-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/5.1.0 CPython/3.12.5

File hashes

Hashes for splinepy-0.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 42d069db198a686fac55241216d76179585dbaf26d0e4a72f0603bd3483a9e70
MD5 f2a2352c489fe86ec2c2e3b5c6ff30f4
BLAKE2b-256 d3274039a7f55236278bb407c233278d4f900b587cdc7d9a34dd5d0715894143

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f95e473d0f5aeed870ec51300acf1bdf707c1014fecfe6cb3972432891d6010
MD5 e90d21c5c5f3959641cd51cd329c82aa
BLAKE2b-256 0ec64274c037589f98969a876fc0826f176852a29007c3008115c2259cbc53e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for splinepy-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 69051476430124cc6d581623113bfc9ba02075ffcc240a6d29d111add939f4a9
MD5 072cb8bc8221d57bf484f0dc5c85abab
BLAKE2b-256 f23e18c37c05bd296d890f1a792b4a03d0898bfc2fdc773c5f657ef19fd0a8eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for splinepy-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 63bfe82ad5864db615421ecb0512d713ebaadb0b3705ff7692344e4ded26cfe9
MD5 bb0a33a578274be384cc25c8ac9e2241
BLAKE2b-256 052b8d811b1bdd9308cd9afe3b0179d7124e3e84e70659919b1ea34b4d3f575a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: splinepy-0.1.3-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/5.1.0 CPython/3.12.5

File hashes

Hashes for splinepy-0.1.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d98efe8478cfed253c4847ea6986e9241595b98912e263156daf392baf8a47b7
MD5 05f6a84a584a2468fadc782aaaf556c1
BLAKE2b-256 d92e9d2896965b6d407d99f3386888f0129e8d0e3ecc4fab5c09636abb3943de

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee1b5ffd35f4faf5b9fcf6863412a076465f227471d408a37bb7eb697af4a0f7
MD5 ffcefee8a8f02e44a2a7c1b017720130
BLAKE2b-256 6f23f4f088566797c80885cb9186f066da96642d5a527882915f72abc90c9a3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for splinepy-0.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c8d78c254cfb22335f01293940aedb3a8efbefddc1416ad7dd05b93644b46e2a
MD5 cf314f38a709b12ba29eb42e91b6ef0c
BLAKE2b-256 e7344d22b1a4ee2a993819b22ba07d767aa89ff5aecce14ccea9793af3f2b26a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for splinepy-0.1.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2e6739c3eb6a7ab9588ff90d7c5e7e5e3852bf1c5520d6b28094f7f79131d9dd
MD5 498c3cc3c8017337f221b93e93d133c5
BLAKE2b-256 b0fff7144fde877ffaad067efbbcd7c2077d0307f251dba3ab19e1276a231427

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: splinepy-0.1.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for splinepy-0.1.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 002382d15c851e0c36530b455c6c358c0a9a0ecb2182b72002c6d151123d80c8
MD5 bb529d7ebcd2014910e5648bc3e552c9
BLAKE2b-256 8323bea17f808e5ffeee5ca978b64dd06acd46317edec4965ddfd8dca1a72494

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e656b2de8ff394935fae02ec8c2a2de642525325b19880045e55d92f0f593d0a
MD5 10183fdfb3f4ab8dcb73e6063e2d17e3
BLAKE2b-256 c8871827724546137400976ed051d8758939f3a0733426e99afbfb66d62eddac

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.1.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e7b2cc6a6bd943b17346147d2eeca3ed61af2e3dbef9e773aa9f49ce3146fca5
MD5 7fcecb204c0f5099b75e341ac97f6ef0
BLAKE2b-256 9126400b4d77b2d505e6b5153a0d5acea72ff05c890983141f949ff1dfda26b2

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.1.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 996ebcefa6759446d5967e8ede7fb2ed57bd0d53e4d6b6106a5b4a5b8549a4b1
MD5 fa4e1461e740b3dae0c82e58215d7379
BLAKE2b-256 98bf81d9feb362e03636b614e6ad8fe25149fcfe28ab806c97a54d0203369c6d

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: splinepy-0.1.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for splinepy-0.1.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 5551e42580d46dd4bf10c4dc2521c561763ae433e2838d5300dfa605263b30eb
MD5 cf6e1ba81245ecf677d0d690f99a11db
BLAKE2b-256 70580ea22cae4eaf57568a75ae521b74a55c87e3bff3c1ce3d62735a47e97b83

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9aa802ecc90a64c042bf1fd8da715907aa02d0cd93a985e665d156039d2ddd6e
MD5 e225e45a8f517bd79eb55165f7c032a4
BLAKE2b-256 01abe7d9665df5bcbd4978aa79659e50903720df39a33acde40d0632d58d7424

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for splinepy-0.1.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1488112d2780d20aa07e20a2a4859fb5a65b370a23a21fe0531e40af32231b4
MD5 fd0396fb312517283e0313f8d229f544
BLAKE2b-256 4db7a7a1c6c8ffb50e0ce4c678f52fa6d67222356850a51f7b10ba7a4257fbad

See more details on using hashes here.

File details

Details for the file splinepy-0.1.3-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for splinepy-0.1.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c24e72dd5b71d3cb6c0658a8ea373f7b24a7154e2188376c915878bf5709983e
MD5 507fee64f42b91d6d89a92ae90fcd6ed
BLAKE2b-256 04ac5dc90dba5355a891d81c791fa433b9b76b1d78333cf585e258301a3364cc

See more details on using hashes here.

Supported by

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