skillfed

PyGEL3D

PyGEL 3D (Python Bindings for GEL) contains tools for polygonal mesh based geometry processing

pygel3d v0.7.0 87.8K downloads/30d#13,766 on PyPI120
Permissive license MIT Active released

What it is and what it does

PyGEL3D is a Python interface to GEL, a C++ geometry processing toolkit designed for computer graphics. It exposes a half-edge polygonal mesh data structure with extensive mesh modification methods, spatial data structures (BSP trees, bounding box hierarchies, kD-trees), voxel grids, and a linear algebra library for small vectors and matrices. The package includes specialized algorithms like Local Separator Skeletonization (for meshes, voxel data, and point clouds), Inverse Skeletonization via Face Extrusion Quad meshes, Garland-Heckbert mesh simplification, signed distance field computation, and topological analysis.

Visualization is built in: PyGEL3D can render 3D geometry using OpenGL in standalone mode or via plotly widgets in Jupyter notebooks, with exported HTML preserving the interactive 3D view. This makes it useful for teaching geometry processing and exploratory work in notebooks. The library depends on numpy, plotly, and scipy at runtime, and requires OpenGL and GLFW system libraries for graphics support.

Use it for:

  • Simplify and optimize triangle meshes using Garland-Heckbert simplification or edge-flipping optimization.
  • Extract skeletons from 3D meshes, voxel grids, or point clouds using Local Separator Skeletonization for shape analysis.
  • Compute signed distance fields from triangle meshes for level-set methods or collision detection.
  • Visualize mesh processing results in Jupyter notebooks with interactive plotly 3D views that persist in HTML exports.
  • Reconstruct surface geometry from point clouds using combinatorial Rotation System Reconstruction methods.
  • Analyze mesh topology by splitting into connected components and computing topological properties.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

PyGEL3D provides Python bindings for a C++ geometry processing library, offering mesh manipulation, spatial data structures, skeletonization, and 3D visualization tools for computer graphics applications.

Yes, if you need production-grade mesh processing with specialized algorithms (skeletonization, SDF, simplification) and Jupyter integration. Active maintenance, MIT license, and zero known vulnerabilities support adoption. Medium install friction (compiled bindings, OpenGL dependency) is acceptable for graphics-focused work. Not suitable if you cannot satisfy OpenGL and GLFW system requirements.

Install

pygel3d on PyPI

pip

pip install pygel3d

uv

uv add pygel3d

poetry

poetry add pygel3d

Installing PyGEL3D

Before you install

Medium install friction due to compiled C++ bindings; prebuilt wheels exist for macOS, Windows, and Linux but require a recent C++ compiler if building from source. Active maintenance with a recent release and no known vulnerabilities.

License in practice

MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.

Quickstart

pip install PyGEL3D
import PyGEL3D
# Create and manipulate mesh geometry
mesh = PyGEL3D.Manifold()

Requires OpenGL and GLFW libraries; on Ubuntu, install with `sudo apt-get install libglu1 libgl1`. For Jupyter visualization, numpy and plotly must be available.

Verify before relying

  • Performance characteristics on very large meshes (millions of polygons) with the half-edge data structure.
  • Completeness of Python binding coverage relative to the full C++ GEL library feature set.
  • Availability of worked examples for Local Separator Skeletonization and Rotation System Reconstruction.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.11)
Install friction medium — platform-specific wheel
Runtime dependencies 3 — numpy, plotly, scipy
Maintenance actively maintained — 0 days since the last release
Last repo commit
First released
Downloads 87,828/month — #13,766 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pygel3d-0.7.0-cp313-cp313-macosx_26_0_arm64.whl

License :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13

Tags

mesh processing python3d geometry manipulationpolygon mesh editingskeletonization algorithm3d visualization jupyterspatial data structures geometrymesh simplification
mesh-processinggeometry-3djupyter-visualization

More Graphics packages