Outie
Turns every face of a polygon mesh to point out, like an outie, even when the mesh is not closed.
A port of libigl's reorient_facets_raycast, written in Rust and used from Python, the reference code for Takayama, Jacobson, Kavan and
Sorkine-Hornung, A Simple Method for Correcting Facet Orientations in Polygon Meshes Based on Ray Casting, 2014.
How
Faces that share edges are gathered into patches first, so a patch is decided as one. Rays are traced in Rust by parry, in parallel on every core, and numpy arrays pass in without being copied.
Use
import outie
flip, patch = outie.reorient_facets_raycast(vertices, faces) # vertices n by 3; faces rings of corner numbers
faces = [f[::-1] if turn else f for f, turn in zip(faces, flip)]
libigl's function, with its name, arguments and outputs: per face, whether to turn it, and the patch it belongs to. The
paper's faces are polygons, and so are outie's: a face is a ring of corners, any number of them, or its outer ring and
then its holes, each a ring; faces are given as a list of them or an m by k array; given triangles, it is libigl's function exactly. Each face is cut into triangles only to
cast rays from, and is decided whole, with its patch. The settings are keyword arguments with libigl's defaults:
rays_total, rays_minimum, facet_wise, use_parity, and seed so a run repeats.
One addition: occluders, triangles as corners, k by 3 by 3, that rays can hit but that are never turned: the ground a
model stands on, or the things around it. A model with no floor is otherwise as open below as above. The ground belongs
exactly at the model's lowest point, not below it.
Mending a face that crosses itself is the caller's.
Build
The core is Rust, in src/lib.rs, bound to Python by PyO3 and built by maturin; uv sync builds it, and
uv run pytest tests it. Releases are a wheel for each system, so installing needs no Rust.
Licence
MPL-2.0, as libigl is: this is a port of its code, taken at libigl commit 7100764. The method is its authors'.
Metadata
Release files for outie 0.1.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| outie-0.1.12.tar.gz | 40.1 kB | Details |
Built distributions (wheels)
Total release size: 3.3 MB
Release files / outie-0.1.12.tar.gz
| Download URL | outie-0.1.12.tar.gz |
|---|---|
| Size | 40.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
556332e5302163d5cfc147d5f60ee5345d98202de17f0ab9e52fd07aaef816a5
|
|
BLAKE2b-256 checksum How to use checksums |
d011e58e5adb514e8d8420fa054bbf3cf3d4dc42f237192ded65aad62cd521d9
|
| 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 Oct 3, 2026.
Transparency logRelease files / outie-0.1.12-cp314-cp314t-win_amd64.whl
| Download URL | outie-0.1.12-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 244.0 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
fc6acdfeb7fc858b4f086162c6d124ecc7d3fcc540a7a57cc4c2514897cbe3e4
|
|
BLAKE2b-256 checksum How to use checksums |
4a767c67a522340dc35cc024c3be16d7e71ce1a144955001df66c49b32a31e0c
|
| 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 Oct 3, 2026.
Transparency logRelease files / outie-0.1.12-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | outie-0.1.12-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 364.2 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1d8f6e297906105284858807c5708e205391043d3b7c4190165b8247f2efc27a
|
|
BLAKE2b-256 checksum How to use checksums |
ba55f98ec34c825ed5deb6bb786f070af68ecca23fa254e95feb236b9e4ce150
|
| 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 Oct 3, 2026.
Transparency logRelease files / outie-0.1.12-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | outie-0.1.12-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 356.6 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
fdbb2e87b5fe93f288b1e22c2dd9f40b41a71e31b90509de70e0eb0550937db5
|
|
BLAKE2b-256 checksum How to use checksums |
7fc2ab786b338a920b91ee0f45f2f0336b436fe557fc096c72bc694e4546f305
|
| 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 Oct 3, 2026.
Transparency logRelease files / outie-0.1.12-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | outie-0.1.12-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 324.7 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8ec5ab2f12321a90b1a3cf3b4f2f562062cfd064fd7a24ffa77f8057f582064f
|
|
BLAKE2b-256 checksum How to use checksums |
cff975d1c19f1c57f64b9f2f0d930d9c1cbb4d335a4cb07a22b4c85086e2cc58
|
| 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 Oct 3, 2026.
Transparency logRelease files / outie-0.1.12-cp314-cp314t-macosx_10_12_x86_64.whl
| Download URL | outie-0.1.12-cp314-cp314t-macosx_10_12_x86_64.whl |
|---|---|
| Size | 339.9 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
aebd48f86721b36b333c638232386c91446a44b22384d1382f6e1f0a14166848
|
|
BLAKE2b-256 checksum How to use checksums |
986bf00cf70f9a1d382a9d734cd751a9039d479d9eb37f1b8b3474a54517acae
|
| 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 Oct 3, 2026.
Transparency logRelease files / outie-0.1.12-cp311-abi3-win_amd64.whl
| Download URL | outie-0.1.12-cp311-abi3-win_amd64.whl |
|---|---|
| Size | 247.7 kB |
| Tags | CPython 3.11 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
aa804174e71d8541daeddaa72064c82994ba81737164f7bf247f5c900770c13a
|
|
BLAKE2b-256 checksum How to use checksums |
bc11098356061ef7a6d38ba166f0d201022703e8747f8bd407618580fc8c268b
|
| 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 Oct 3, 2026.
Transparency logRelease files / outie-0.1.12-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | outie-0.1.12-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 366.5 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
c35a6e75c25125be58116982670df3cac666b705f3ca965f39e523125e25d3c3
|
|
BLAKE2b-256 checksum How to use checksums |
1417c01a868b96a42873c4962e0f8b0a6f1b8bc1455093cff187db2bd29f0e9e
|
| 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 Oct 3, 2026.
Transparency logRelease files / outie-0.1.12-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | outie-0.1.12-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 359.0 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
ec06e6a5421a5e688dfb6d00b6ee900a027b947ec258365aef1962794883ac6d
|
|
BLAKE2b-256 checksum How to use checksums |
9e3fbcbd2203176167a6595ca15ec9429a4ba522294d8d4ecc6ed3af5e6de8ee
|
| 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 Oct 3, 2026.
Transparency logRelease files / outie-0.1.12-cp311-abi3-macosx_11_0_arm64.whl
| Download URL | outie-0.1.12-cp311-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 328.6 kB |
| Tags | CPython 3.11 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cd65540446bc3e8c5dade8258506f1495923c289815243c393cf65e235479f53
|
|
BLAKE2b-256 checksum How to use checksums |
d334905d7632114e9e8bf530a240466019c52da2ff92d5f953413872c49744e5
|
| 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 Oct 3, 2026.
Transparency logRelease files / outie-0.1.12-cp311-abi3-macosx_10_12_x86_64.whl
| Download URL | outie-0.1.12-cp311-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 340.8 kB |
| Tags | CPython 3.11 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
1a01a7c2a93f6301b85ae71e61369433df52738d8041c6c97d43bdffa7a08b64
|
|
BLAKE2b-256 checksum How to use checksums |
89d17378b59e802b545072820976534c0dc4f25a69c82dc4a324daa6c3037112
|
| 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 Oct 3, 2026.
Transparency log