Skip to main content

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

Rays shot off both sides of a wall: the side they escape from is the outside

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)

Source distribution for outie 0.1.12
File Size Uploaded
outie-0.1.12.tar.gz 40.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for outie 0.1.12
File
outie-0.1.12-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
outie-0.1.12-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
outie-0.1.12-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
outie-0.1.12-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
outie-0.1.12-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
outie-0.1.12-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
outie-0.1.12-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 abi3 Linux glibc 2.17+ x86-64 Details
outie-0.1.12-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 abi3 Linux glibc 2.17+ ARM64 Details
outie-0.1.12-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
outie-0.1.12-cp311-abi3-macosx_10_12_x86_64.whl CPython 3.11 abi3 macOS 10.12+ x86-64 Details

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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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

Release history Release notifications | RSS feed

0.2.2

13 release files

0.2.1

13 release files

0.2.0

13 release files

This release

0.1.12 This release

11 release files

0.1.9

6 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 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