Skip to main content

Geogram texturing (atlas) bindings

Project description

GeoTex: UV Unwrapping for Python via Geogram

GeoTex is a minimal Python wrapper that exposes the UV atlas generation functions from Geogram. Given a triangulated 3D mesh, it produces per-corner UV coordinates packed into a texture atlas, ready to be used for texture mapping or baking.

Installation

Install from PyPI:

pip install geotex

Or install the latest version directly from GitHub:

pip install git+https://github.com/vork/geotex.git

Usage

Basic example

import numpy as np
import geotex

# Define a simple mesh (a single triangle here, but any triangulated mesh works)
vertices = np.array([
    [0.0, 0.0, 0.0],
    [1.0, 0.0, 0.0],
    [0.0, 1.0, 0.0],
], dtype=np.float64)

faces = np.array([
    [0, 1, 2],
], dtype=np.uint32)

# Generate UV atlas with default settings
uv = geotex.make_atlas(vertices, faces)

# uv has shape (len(faces) * 3, 2):
# one (u, v) coordinate per face corner, in [0, 1] x [0, 1]
print(uv.shape)   # (3, 2)
print(uv)

Cube mesh example

import numpy as np
import geotex

vertices = np.array([
    [0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0],  # bottom face
    [0, 0, 1], [1, 0, 1], [1, 1, 1], [0, 1, 1],  # top face
], dtype=np.float64)

faces = np.array([
    [0, 1, 2], [0, 2, 3],  # bottom
    [4, 5, 6], [4, 6, 7],  # top
    [0, 1, 5], [0, 5, 4],  # front
    [2, 3, 7], [2, 7, 6],  # back
    [0, 3, 7], [0, 7, 4],  # left
    [1, 2, 6], [1, 6, 5],  # right
], dtype=np.uint32)

uv = geotex.make_atlas(vertices, faces)
print(uv.shape)   # (36, 2)  — 12 triangles × 3 corners

Choosing a parameterizer and packer

# Use LSCM parameterization with the tetris packer
uv = geotex.make_atlas(
    vertices, faces,
    parameterizer="lscm",
    packer="tetris",
)

# Control the hard-angle threshold (in degrees) used to split charts
uv = geotex.make_atlas(vertices, faces, hard_angles_threshold=60.0)

API Reference

geotex.make_atlas

geotex.make_atlas(
    vertices,
    faces,
    hard_angles_threshold=45.0,
    parameterizer="abf",
    packer="xatlas",
    verbose=False,
) -> np.ndarray

Parameters

Parameter Type Default Description
vertices np.ndarray (N, 3), float64 3D vertex positions of the mesh.
faces np.ndarray (M, 3), uint32 Triangle indices into vertices.
hard_angles_threshold float 45.0 Dihedral angle threshold (degrees) above which an edge is treated as a hard seam, splitting the atlas into separate charts.
parameterizer str "abf" Algorithm used to flatten each chart. One of "abf" (Angle-Based Flattening), "lscm" (Least-Squares Conformal Maps), or "spectral_lscm".
packer str "xatlas" Algorithm used to pack the flattened charts into the unit square. One of "xatlas" or "tetris".
verbose bool False Print Geogram progress information to stdout.

Returns

np.ndarray of shape (M * 3, 2) and dtype float64 — one (u, v) coordinate per face corner, with values in [0, 1].

License

The project is licensed under BSD 3.

Geogram is also licensed under BSD 3.

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

geotex-0.1.3.tar.gz (40.9 kB view details)

Uploaded Source

Built Distributions

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

geotex-0.1.3-cp313-cp313-win_amd64.whl (7.0 MB view details)

Uploaded CPython 3.13Windows x86-64

geotex-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

geotex-0.1.3-cp313-cp313-macosx_11_0_arm64.whl (7.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

geotex-0.1.3-cp312-cp312-win_amd64.whl (7.0 MB view details)

Uploaded CPython 3.12Windows x86-64

geotex-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

geotex-0.1.3-cp312-cp312-macosx_11_0_arm64.whl (7.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

geotex-0.1.3-cp311-cp311-win_amd64.whl (7.0 MB view details)

Uploaded CPython 3.11Windows x86-64

geotex-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

geotex-0.1.3-cp311-cp311-macosx_11_0_arm64.whl (7.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

geotex-0.1.3-cp310-cp310-win_amd64.whl (7.0 MB view details)

Uploaded CPython 3.10Windows x86-64

geotex-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

geotex-0.1.3-cp310-cp310-macosx_11_0_arm64.whl (7.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

geotex-0.1.3-cp39-cp39-win_amd64.whl (7.0 MB view details)

Uploaded CPython 3.9Windows x86-64

geotex-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

geotex-0.1.3-cp39-cp39-macosx_11_0_arm64.whl (7.8 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

geotex-0.1.3-cp38-cp38-win_amd64.whl (7.0 MB view details)

Uploaded CPython 3.8Windows x86-64

geotex-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

geotex-0.1.3-cp38-cp38-macosx_11_0_arm64.whl (7.8 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file geotex-0.1.3.tar.gz.

File metadata

  • Download URL: geotex-0.1.3.tar.gz
  • Upload date:
  • Size: 40.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for geotex-0.1.3.tar.gz
Algorithm Hash digest
SHA256 1a56afda16e40390c7f31f584bdf25ba6297d463a5ff14329785f64da2e6421b
MD5 c4489b172aaf4dfd424b514423a56b08
BLAKE2b-256 c15724b288479bc11684b14c514001b3b4f5d8414a3954390690051d0b7375be

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: geotex-0.1.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for geotex-0.1.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 383b9775e8cf33fb1142de80ccf1248e91182041213bf9fe3229adec3eb1bc07
MD5 f74718af04c811f6a2b59ffb81a96b0d
BLAKE2b-256 c4801c5950873c60372b1f846e4d783301e9323e093318448262a1280e3455a2

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d89e73e4997a05f8b2664127cb171eb013ade0e38efc0f7d967bea1eda1a2eb7
MD5 a59fc5b40f2352c0e653b7b5ee11087b
BLAKE2b-256 4a69d2849b4e769e91eee098415e63a6476be34235d34e6b484dfffa0b6c5955

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eea08546090ed15dd7662d413efc9a62f6d7e5d78e2069654a8f96d4ed379aad
MD5 7676318982f3e5beeb577c099cdd00c7
BLAKE2b-256 bc2d6e2f8f100bcf8ebb85241cd2574295ad21c646bb231b4c8ce953a534c94d

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: geotex-0.1.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for geotex-0.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8e20bcb3c58a137ed11e4e5b8ddeb2c5ffbdbcf8556ab8e167e406bc52d3a5a3
MD5 c5d346fe05e63e9ba657cbf5e92301e8
BLAKE2b-256 47769d05c99257702ca6bc8953f65e1001eb39d3e654d4868e95e4614d1439e3

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 77874d75e34f17f088e014b4cfd549a0d77a9a00c4b26a2a6e9d9a8ab81c7be1
MD5 2a6d7218929ffbb0a7c30aabd5fb670a
BLAKE2b-256 e5ceafcd8633e5ba3a38160ef49ca112ccd07ba49efaefaf220a151adcdf5960

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 685a7c0aef820544f9dea875bad2c836828e775462bcdd41ceef09aa708665d7
MD5 641c724e5a3d695ce1caab719ca42e4f
BLAKE2b-256 cab33162e34d274433036ef1f8c1311882660d9fc638f0981564639ae9b6325c

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: geotex-0.1.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for geotex-0.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 176abf87bd3e15e7bc1356ef34afac514c74fe3b44b2009847859f2dbb9b2ee1
MD5 cdc1aec6d8ee115695f784a8eef99001
BLAKE2b-256 a8cc1cd30a71b20d2de738aed2b49cf1f041c16c5228b794eb1eb91ad8b9fba9

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 469a4c656433f725b6ffc3f87a35d740dd6ed4329a803bf8e5cee6e2a88a670d
MD5 c1160098f0f21dd27e2631a37822ef7a
BLAKE2b-256 fc3349eefaffb2d1d39df354527cfb2b7c83d9834e7310472097e5d4c9832661

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9a66543cdf1af6d444aa505a384b354244d8a9fd3251676b99825302a4a91e92
MD5 e21f49ef309594ee268ca4a83a3adcb0
BLAKE2b-256 6b44eb90eea9522c1cbd68e3b5b9a6c154b691c7e117077073a52929f04f2d77

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: geotex-0.1.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for geotex-0.1.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bf2fcdf943745210b59e9c0ae4d6ff47671dfe0a090e31ae0919c0ab97620c52
MD5 d4ab85062405856afdceeed241a14bb0
BLAKE2b-256 5aa65fa26cce81983df59e953dacf605585acd54cad1db59b2680055ded9611a

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 61c555988664ea26aefbc43b1f7db7c0837d9e8743b87f405ed8a19f16cb4c20
MD5 1c0d7eb27e0ddd6665b4413f5d2568cf
BLAKE2b-256 8a73f4067a6a8d3a66904357715b968b5b01fc280b8b21720b3966c75022b134

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23945a845d3c24ed9274dc7082f8a329625a8afca8071fd2f6d8578e47b4d45c
MD5 5608687c76908b64d98bb6da5f478900
BLAKE2b-256 e3bdd99778221deb1ce4173f27809c33100be50279a0069725ee778fa58b1539

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: geotex-0.1.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for geotex-0.1.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a3be84720f354a0fdc2be3bf583b4f13255c9d996e8410d5cbf96c418c0de48c
MD5 b8d446254accec597097cbbe46b401b0
BLAKE2b-256 1ccb8b8241abcd7b7f7f720295117a76aa7d551e51e14ee713019ac121e1d910

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 750791605117777a51cb4c6619270be54dd7290c64c0c6f12ab15bdf75dfb58c
MD5 bdf178890fdba7b22ff74fe715452c54
BLAKE2b-256 f0c90f869a89d28ae60989305c2793ea3c1560219c5d6e8dcb156635673731c7

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 14ebdc52259e7f3153cb7908c74e74991b4699c2d3a15bb3da244bb1ff0bfd37
MD5 3f3d469014f02cd0624a70fc3b3f23dd
BLAKE2b-256 7f34fb970a9ad7f46632cb7a1cd5f762fe88ff1a6d5088e7e357f7a1b5317285

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: geotex-0.1.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for geotex-0.1.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8d4511ba843c9a7739ff7772924eef6a6d2cb2c366f277aa7117025209445ef7
MD5 833a932ccbfd94fc36d6bbe236e8cfdf
BLAKE2b-256 26ec13f13b6cea903891d9983aa35e4ca11406fd93fc6121e439e4380caec690

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67288bdc5dbf50a653cc0cc8badbf239c83a71d288637d0a40237856e8009d51
MD5 feee173a94f132e1ac003f0ba7d3f236
BLAKE2b-256 f03e8a40662b99c4d58052577ce3cf2211e6aa05996f65ee6134b52528b48ca9

See more details on using hashes here.

File details

Details for the file geotex-0.1.3-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geotex-0.1.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bddf385876c9ad309473ede56d54df4cb4c005ca8d8c1e8853d26a976a5ddad6
MD5 2eaaae1c45f04a4bc12ec3fb5d172707
BLAKE2b-256 d06f07d092c4059eeaa4369b5f535c48e95a911a30d141041fa6c77742b340ce

See more details on using hashes here.

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