PyGEL3D
PyGEL 3D (Python Bindings for GEL) contains tools for polygonal mesh based geometry processing
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 pygel3duv
uv add pygel3dpoetry
poetry add pygel3dInstalling 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
Tags
More Graphics packages
Pillow adds image processing capabilities to…
permissive · top 100 on PyPI
fonttoolsfonttools manipulates font files in multiple…
permissive · top 1,000 on PyPI
matplotlib-inlineEnables matplotlib figures to display inline…
permissive · top 1,000 on PyPI
pymupdfPyMuPDF extracts, renders, converts, and…
agpl · top 1,000 on PyPI
pypdfium2pypdfium2 is a Python binding to PDFium that…
permissive · top 1,000 on PyPI
altairAltair is a declarative Python library for…
permissive · top 1,000 on PyPI
pymeshlabPyMeshLab provides Python bindings to MeshLab,…
copyleft · top 15,000 on PyPI
rhino3dmrhino3dm provides Python bindings to OpenNURBS…
permissive · top 15,000 on PyPI
open3dOpen3D provides data structures and algorithms…
permissive · top 5,000 on PyPI
open3d-cpuOpen3D-cpu provides CPU-based 3D data…
permissive · top 15,000 on PyPI
manifold3dManifold3d creates and operates on manifold…
permissive · top 5,000 on PyPI
pyglmPyGLM provides Python bindings to OpenGL…
permissive · top 15,000 on PyPI
plyfileplyfile reads and writes ASCII and binary PLY…
copyleft · top 5,000 on PyPI
pipablepytorch3dPyTorch3D provides reusable components for 3D…
permissive · top 5,000 on PyPI
py-lib3mfProvides Python bindings to Lib3MF, enabling…
permissive · top 15,000 on PyPI
fast-simplificationSimplifies 3D meshes by reducing the number of…
permissive · top 15,000 on PyPI