Skip to main content

iskra ✨ Modern Geometry Processing

Lightweight geometry processing library that is a one-stop shop for all your geometric needs. Iskra is:

  • modern and Python-first,
  • simple by default, powerful when needed,
  • fully differentiable and compatible with machine learning,
  • CPU and GPU enabled,
  • actievely maintained.

Support the project by starring it: GitHub stars

Example

Computing vertex normals in iskra is as simple as:

import torch

from iskra.geometry import triangle_normals
from iskra.mesh import Mesh
from iskra.topology import face_index, reduce_on_subface

mesh, _ = Mesh.from_path(
    "oded://objects/koala/koala_low_resolution.obj",
    device="cpu"
)
verts = mesh.vertices  # [V, 3]
faces = mesh.faces  # [F, 3]

tris = face_index(verts, faces)  # [F, 3, 3]

tri_normals = triangle_normals(tris)  # [F, 3]

vert_normals = reduce_on_subface(tri_normals, faces, verts.shape[0], "sum")  # [V, 3]
vert_normals = torch.nn.functional.normalize(vert_normals, dim=-1)  # [V, 3]

Obtaining iskra ✨

You will need PyTorch installed for iskra ✨ to work: see PyTorch installation instructions here.

pip install torch --index-url ... # your preferred PyTorch distribution

The code has been tested with torch==2.12, but will likely work with other versions too.

Finally, install iskra ✨ to your active environment using:

pip install -e git+https://github.com/anadodik/iskra/

Development

Lastly, if you plan on contributing, you will need the development dependencies and to compile the C++ extensions in editable mode. This can be done by running the following:

conda env create -f environment.yaml
conda env update -f environment-dev.yaml
conda activate iskra
pip install --no-build-isolation -Ceditable.rebuild=true -ve .

FAQ

  1. Why the name? Iskra means “spark” in Serbo-Croatian: a spark enables using (a) torch. We also expect our system to be the spark that ignites exciting research in geometry. Most importantly, it sounds cool.
  2. How much of iskra ✨ is LLM generated? Iskra started back in 2022 at the start of my PhD because I enjoy writing and learning geometry algorithms. It is therefore almost entirely good old fashioned free range human generated slop, except for a select few parts. These are clearly marked in the codebase. [As a side-note, doing it this way had some benefits beyond being fun: being deeply bonded with geometry code in PyTorch lead me to come up with the tensor-based scatter-gather abstraction and I do not think I would have done so had I computer-slopped it together!]

Metadata

Release files for iskra-graphics 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iskra-graphics 0.0.1
File Size Uploaded
iskra_graphics-0.0.1.tar.gz 1.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for iskra-graphics 0.0.1
File
iskra_graphics-0.0.1-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
iskra_graphics-0.0.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 abi3 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
iskra_graphics-0.0.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 abi3 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
iskra_graphics-0.0.1-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details
iskra_graphics-0.0.1-cp312-abi3-macosx_10_15_x86_64.whl CPython 3.12 abi3 macOS 10.15+ x86-64 Details

Total release size: 3.2 MB

Release files / iskra_graphics-0.0.1.tar.gz

Download URL iskra_graphics-0.0.1.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
8af9f97a25dda5ae31099ef4c5878c85708ff09778bc3c2ed65dca4d34016b91
BLAKE2b-256 checksum
How to use checksums
d8b94f4ac7aa350f41485d8b6f66f9c91b89044507bb15eb5d97810753fa34b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / iskra_graphics-0.0.1-cp312-abi3-win_amd64.whl

Download URL iskra_graphics-0.0.1-cp312-abi3-win_amd64.whl
Size 510.2 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
bc870b6a122dc7b6beaa6feae35ee1f0ac0504a7016c94860ff20659de8e697a
BLAKE2b-256 checksum
How to use checksums
04f3e6bdd7df092d7420ba5664a410680d4238cbdade5bd8dd70aa41edc08b0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / iskra_graphics-0.0.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL iskra_graphics-0.0.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 365.1 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
190b0c733676e38d7c7923f446c84553b097bf3be619cdf448a9fc9b94bbd314
BLAKE2b-256 checksum
How to use checksums
9b9f5729973e096f76d633b1525e12ddd73818dbe7fcef6004ee7615aaa20b19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / iskra_graphics-0.0.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL iskra_graphics-0.0.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 350.8 kB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
200c99ed16a6b91dbf1f50ead6768070d715972eafd82e4896e203ac42a0af8a
BLAKE2b-256 checksum
How to use checksums
4a069c28a43bf878ca829f61a7e54858f109a426255fb77ae8f6a7d90b1c8215
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / iskra_graphics-0.0.1-cp312-abi3-macosx_11_0_arm64.whl

Download URL iskra_graphics-0.0.1-cp312-abi3-macosx_11_0_arm64.whl
Size 275.9 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
712b3b328ff05f68d7435074f56f245d90af5089c40559fbcd0d2394832e7d9c
BLAKE2b-256 checksum
How to use checksums
178002fc843668fc32d33ae63ca07a2d7c1b3eb4994759871ecdf5f8682451f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / iskra_graphics-0.0.1-cp312-abi3-macosx_10_15_x86_64.whl

Download URL iskra_graphics-0.0.1-cp312-abi3-macosx_10_15_x86_64.whl
Size 280.5 kB
Tags CPython 3.12 abi3 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
2b0c050c09d480d848c288f7203946fcd7fb4f55a7b6336e36c3d60e61a8ba8b
BLAKE2b-256 checksum
How to use checksums
51806a7e036082d95236483714f3c382eff70968d1eca95f4848db8b1d14e679
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.1 This release

6 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page