cytriangle
Object-oriented Cython wrapper of Shewchuk's Triangle Library
Decision gist · record as of 2026-08-14
Yes, if you need Delaunay triangulation or mesh generation for finite element analysis or computational geometry. The package is stable (beta status, no known vulnerabilities), supports current Python versions, and wraps a mature underlying library. Install friction is moderate due to compiled wheels. The copyleft LGPL 3.0 license requires attention if you plan to distribute derivative work. Maintenance is aging but the repository remains active.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or later; compiled wheels are provided for common platforms but source builds may require a C compiler.
- Medium install friction due to compiled wheels for Python 3.11–3.14 on macOS, Linux, and Windows.
- Maintenance is aging—last commit was 2026-01-22—but the repository remains active and unarchived.
License · maintenance · safety
LGPL 3.0 (copyleft) — Licensed under LGPL 3.0 (copyleft). Any derivative work or modification must be distributed under compatible terms; static linking or proprietary use may require legal review.
last release 2026-01-22 (204 days) · last repo commit 2026-01-22 · 11 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 74,192 downloads/mo, #14,863 on PyPI
Alternatives
Verify before relying
pip install cytriangle
import cytriangle
# Create a Triangle instance and generate a mesh
tri = cytriangle.Triangle()
tri.triangulate()- Whether the object-oriented interface supports direct inspection and modification of triangle mesh properties beyond what the underlying Triangle library exposes.
- Performance characteristics and memory overhead of the Cython wrapper compared to direct Triangle library calls.
- Availability and completeness of documentation for the wrapper's API.
What it is and what it does
CyTriangle is a Cython-based wrapper around Jonathan Shewchuk's Triangle library, a well-established tool for generating Delaunay triangulations, constrained Delaunay triangulations, Voronoi diagrams, and high-quality triangular meshes. The wrapper provides an object-oriented Python interface to make Triangle's functionality more accessible and easier to inspect and modify within Python workflows.
The package targets scientific and engineering applications, particularly finite element analysis where mesh quality is critical. It depends on numpy and is distributed as compiled wheels for Python 3.11–3.14 across macOS, Linux, and Windows. The project is in beta status with aging maintenance, but remains unarchived and has received no reported security vulnerabilities.
Use it for
- Generate high-quality triangular meshes for finite element analysis simulations.
- Compute Delaunay triangulations and Voronoi diagrams for computational geometry tasks.
- Create constrained triangulations where certain edges or regions must be preserved in the mesh.
- Build mesh preprocessing pipelines in Python that require quality control and angle constraints.
- Inspect and modify triangle mesh objects programmatically after generation.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need Delaunay triangulation or mesh generation for finite element analysis or computational geometry.
The package is stable (beta status, no known vulnerabilities), supports current Python versions, and wraps a mature underlying library. Install friction is moderate due to compiled wheels. The copyleft LGPL 3.0 license requires attention if you plan to distribute derivative work. Maintenance is aging but the repository remains active.
Install
cytriangle on PyPI
Before you install
Medium install friction due to compiled wheels for Python 3.11–3.14 on macOS, Linux, and Windows. Maintenance is aging—last commit was 2026-01-22—but the repository remains active and unarchived.
Requires Python 3.11 or later; compiled wheels are provided for common platforms but source builds may require a C compiler.
License in practice
Licensed under LGPL 3.0 (copyleft). Any derivative work or modification must be distributed under compatible terms; static linking or proprietary use may require legal review.
Quickstart
pip install cytriangle
import cytriangle
# Create a Triangle instance and generate a mesh
tri = cytriangle.Triangle()
tri.triangulate()
Verify before relying
- Whether the object-oriented interface supports direct inspection and modification of triangle mesh properties beyond what the underlying Triangle library exposes.
- Performance characteristics and memory overhead of the Cython wrapper compared to direct Triangle library calls.
- Availability and completeness of documentation for the wrapper's API.
Package facts
| License | LGPL 3.0 copyleft |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagenumpy |
| Maintenance | Aging 204 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 74,192 / month, #14,863 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaEnvironment :: ConsoleLicense :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)License :: Other/Proprietary LicenseNatural Language :: EnglishProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/Engineering |
Evidence: cytriangle-3.0.2-cp311-cp311-macosx_15_0_arm64.whl; cytriangle-3.0.2-cp311-cp311-macosx_15_0_x86_64.whl; cytriangle-3.0.2-cp311-cp311-manylinux_2_39_x86_64.whl; cytriangle-3.0.2-cp311-cp311-win_amd64.whl; cytriangle-3.0.2-cp312-cp312-macosx_15_0_arm64.whl; cytriangle-3.0.2-cp312-cp312-macosx_15_0_x86_64.whl; cytriangle-3.0.2-cp312-cp312-manylinux_2_39_x86_64.whl; cytriangle-3.0.2-cp312-cp312-win_amd64.whl; cytriangle-3.0.2-cp313-cp313-macosx_15_0_arm64.whl; cytriangle-3.0.2-cp313-cp313-macosx_15_0_x86_64.whl; cytriangle-3.0.2-cp313-cp313-manylinux_2_39_x86_64.whl; cytriangle-3.0.2-cp313-cp313-win_amd64.whl; cytriangle-3.0.2-cp314-cp314-macosx_15_0_arm64.whl; cytriangle-3.0.2-cp314-cp314-macosx_15_0_x86_64.whl; cytriangle-3.0.2-cp314-cp314-manylinux_2_39_x86_64.whl; cytriangle-3.0.2-cp314-cp314-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “triangular mesh generation”
- cytriangleCyTriangle wraps Jonathan Shewchuk's Triangle library via Cython to…
- pymeshfixPyMeshFix repairs triangular meshes by removing defects like…
- tetgentetgen wraps the TetGen C++ library to generate tetrahedral meshes…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also cmeel-qhull · tetgen · triangle · trianglesolver · PyNiteFEA · pymeshfix · scikit-fem · gmsh · mapbox-earcut · xatlas