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.13

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.13
File Size Uploaded
outie-0.1.13.tar.gz 33.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for outie 0.1.13
File
outie-0.1.13-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
outie-0.1.13-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.13-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.13-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
outie-0.1.13-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.13-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
outie-0.1.13-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 abi3 Linux glibc 2.17+ x86-64 Details
outie-0.1.13-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 abi3 Linux glibc 2.17+ ARM64 Details
outie-0.1.13-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details
outie-0.1.13-cp312-abi3-macosx_10_12_x86_64.whl CPython 3.12 abi3 macOS 10.12+ x86-64 Details

Total release size: 3.3 MB

Release files / outie-0.1.13.tar.gz

Download URL outie-0.1.13.tar.gz
Size 33.3 kB
Tags Source
SHA-256 checksum
How to use checksums
40ffd8837defba8104197db87f6bf700305aec49a72b61428f5bbadf889f77c9
BLAKE2b-256 checksum
How to use checksums
83bb6da2146ad463357b81f284f5cc6653ba83febe6206969d7dbdd23dc62bee
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 4, 2026.

Transparency log

Release files / outie-0.1.13-cp314-cp314t-win_amd64.whl

Download URL outie-0.1.13-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
9db4134cefb7017030efc499172277079c249974a6e8925b77e79feac0d977ff
BLAKE2b-256 checksum
How to use checksums
eb0d78dcaf256000a6e719739707160205cf20f87153ef0e02941717f80d8e2d
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 4, 2026.

Transparency log

Release files / outie-0.1.13-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL outie-0.1.13-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
e9201c104716e03ed66f5e639414ee68e4ce28e63316bb9e83e71f50fce62f01
BLAKE2b-256 checksum
How to use checksums
25239a9477aeabbf0b896dc8551670ca025ee21275fbdcba91d28c0af748bc7b
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 4, 2026.

Transparency log

Release files / outie-0.1.13-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL outie-0.1.13-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 356.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d0a678f2e95fa0ee9363ca10f06e4ea30e3ba15f9e657fc393d4ff69912cdb0b
BLAKE2b-256 checksum
How to use checksums
595a6c11f77e07a498127adf049bfaa40854dad2600004959adc7b2cfb15769c
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 4, 2026.

Transparency log

Release files / outie-0.1.13-cp314-cp314t-macosx_11_0_arm64.whl

Download URL outie-0.1.13-cp314-cp314t-macosx_11_0_arm64.whl
Size 324.4 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
dadfb2aa28b4d5a76b0214a1f33466dfc10f82c034f7ce92a3165750f8eaf3f8
BLAKE2b-256 checksum
How to use checksums
0e331fc81087fad105e71dbb54075f1f66453ec774ce6e7161b4b096641d8df8
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 4, 2026.

Transparency log

Release files / outie-0.1.13-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL outie-0.1.13-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
1e39f9c84fb49639391e57ba76d206bf07d50815f6a341751da58913d19eb072
BLAKE2b-256 checksum
How to use checksums
cc9502e8edcae2f85ac14c32565471227a30cf169b536e2ddc79074928535269
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 4, 2026.

Transparency log

Release files / outie-0.1.13-cp312-abi3-win_amd64.whl

Download URL outie-0.1.13-cp312-abi3-win_amd64.whl
Size 245.6 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
2ecf8e73bbf38dd01392b85fdb42e6d96b6762ff7c144c5a38327f217fcb4203
BLAKE2b-256 checksum
How to use checksums
b8ee2c9725a5d5823b5766b7d43e88a4fed0ae27948d9c1b9383a1cf8fdb9232
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 4, 2026.

Transparency log

Release files / outie-0.1.13-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL outie-0.1.13-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 365.0 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
9412699abe4421670d5d70919e834e90e340d314e10aa252ad2dbf5f2253b8f1
BLAKE2b-256 checksum
How to use checksums
c6b95f76b02208eb62a5cd064380f7645f750a5850a4dbbe1779873ec244dbb4
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 4, 2026.

Transparency log

Release files / outie-0.1.13-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL outie-0.1.13-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 356.8 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
99facb565bcd5de2ffb9f6fe85f2250c09423a3e702fc4bf0b00c9c3d39e7cf6
BLAKE2b-256 checksum
How to use checksums
d2651cced4fe79fc969c02a32b371b4ca70b893eeae208412578e09536e4a4cd
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 4, 2026.

Transparency log

Release files / outie-0.1.13-cp312-abi3-macosx_11_0_arm64.whl

Download URL outie-0.1.13-cp312-abi3-macosx_11_0_arm64.whl
Size 325.3 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b1292466c0c3e46ed928224ba861c6cba5f735edeaf362c8ed56a8c09d04d25d
BLAKE2b-256 checksum
How to use checksums
ba508737aa2487d39281c00998d7a36f12c322d1b4a0fd0ae0cf5940d7ff673d
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 4, 2026.

Transparency log

Release files / outie-0.1.13-cp312-abi3-macosx_10_12_x86_64.whl

Download URL outie-0.1.13-cp312-abi3-macosx_10_12_x86_64.whl
Size 340.6 kB
Tags CPython 3.12 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b204c8b43875ee4f1ef3730a513b2bea158291c5f1e2d64c983e7cb87a45f008
BLAKE2b-256 checksum
How to use checksums
4477bfef76f7ecde0604bd21cadacf32cdb74f5fa2730f0684d317e79eb1c6b6
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 4, 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.13 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