Skip to main content

SolidSKeleton tessellation and format tools

Project description

SolidSKeleton Python

Python 3.10+.

pip install ssk

Commands

ssk validate model.ssk
ssk convert model.ssk model.sskb
ssk convert model.ssk model.glb
ssk convert model.ssk model.glb --resolution 64
ssk convert model.sskb model.glb
ssk convert model.glb model.ssk
ssk convert model.glb model.sskb --expected-piece-count 42
ssk inspect model.sskb

From this directory without installing:

python -m ssk validate model.ssk

Library

from ssklib import convert, inspect_file, load, validate_file

convert("model.ssk", "model.glb", resolution=64)
result = convert("model.glb", "model.ssk", expected_piece_count=42)
print(result.coverage_percent, result.overfill_percent)

Lower-level GLTF import:

from ssklib import import_gltf_to_ssk

result = import_gltf_to_ssk(
    "model.glb",
    expected_piece_count=42,  # soft guide
    infill_weight=1.18,
    outfill_weight=1.05,
    complexity_weight=1.0,
)
print(result.coverage_percent, result.overfill_percent)

quality = result.score_document(some_doc)

Lower-level functions:

from ssklib import parse_ssk, parse_sskb, resolve, validate, write_sskb

Notes

  • Mesh output defaults to resolution 32.
  • GLTF/GLB import reconstructs (estimated) SSK-native primitives where practical and reports sampled volume coverage and overfill percentages. expected_piece_count / --expected-piece-count is a soft guide, not an exact target. Import weight options (--infill-weight, --outfill-weight, --complexity-weight) tune the scoring between candidates on a normalised 0–1 scale. Expect slightly different results from the TypeScript package due to numpy vs. JavaScript math differences.
  • CSG uses trimesh with Manifold.
  • glTF output uses unindexed meshes with flat per-face normals.

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

ssk-1.1.1.tar.gz (36.6 kB view details)

Uploaded Source

Built Distribution

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

ssk-1.1.1-py3-none-any.whl (35.2 kB view details)

Uploaded Python 3

File details

Details for the file ssk-1.1.1.tar.gz.

File metadata

  • Download URL: ssk-1.1.1.tar.gz
  • Upload date:
  • Size: 36.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ssk-1.1.1.tar.gz
Algorithm Hash digest
SHA256 3011d918e8eb2f0a67d7a452bbafb770fb088c524ef24e81812799bbabf86934
MD5 8361f9207031b58baa3ab51b2e8999c6
BLAKE2b-256 93adf7f6de585431510afb1ceedfd953ffc53be14b3095b5bab7c8fd4614ab2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ssk-1.1.1.tar.gz:

Publisher: publish-pypi.yml on FerroIT/SolidSKeleton

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

File details

Details for the file ssk-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: ssk-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 35.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ssk-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2dbbdd66d8d5a2933ab52a028370e5ab48c72a943b7ed3fffc3f017ff0a0f51e
MD5 68f2b04e93618c225b966a4ee88078cb
BLAKE2b-256 753b4f172bd85e90855bee130e0403e332358505431cef3b7955e773ece8d199

See more details on using hashes here.

Provenance

The following attestation bundles were made for ssk-1.1.1-py3-none-any.whl:

Publisher: publish-pypi.yml on FerroIT/SolidSKeleton

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