Skip to main content

Complete mesh generation and manipulation package with GUI

Project description

PyMeshIt

Python 3.8+ License: GPL v3 Code style: black

PyMeshIt is a complete Python package for mesh generation and manipulation with a full-featured Qt-based GUI. It provides a comprehensive workflow to process point clouds and polylines into conforming surface meshes and tetrahedral meshes.

Note: This version runs entirely in Python without C++ dependencies, making it easier to install and deploy.

Highlights (GUI-driven workflow)

The included GUI (main.py) implements a full MeshIt workflow with the following main tabs:

    1. Load Data — load points, wells (polylines) or VTU/Poly formats; manage multiple datasets and colors.
    1. Convex Hull — compute dataset boundaries (convex or rim for/quasi-planar sheets) with corner detection.
    1. Segmentation — refine hulls by target feature size and per-surface length tables (RefineByLength).
    1. Triangulation — generate surface triangulations with gradient, min-angle, interpolation and uniform options.
    1. Intersections — compute & visualize global surface–surface and polyline–surface intersections; triple point detection.
    1. Refine & Mesh — refine intersection/hull lines, generate conforming surface meshes, constraint selection UI, per-surface mesh density table.
    1. Pre‑Tetramesh — select conforming surfaces, validate for TetGen, manage selection tree for tetrahedralization.
    1. Tetra Mesh — generate and visualize tetrahedral meshes, assign materials, export results.

Installation

From Release (Recommended)

PyMeshIt provides standalone executables for Windows 10/11 and Ubuntu (22.04+). These do not require Python to be installed.

  1. Go to the Releases page.
  2. Download the appropriate file for your OS:
    • Windows: PyMeshit-vX.X.X-win64.zip
    • Ubuntu: PyMeshit-vX.X.X-linux.zip
    • MacOS: PyMeshit-vX.X.X-macos.zip
  3. Extract the archive.
  4. On Linux, you may need to make the file executable:
    chmod +x PyMeshIt
    
  5. Run the executable (./PyMeshIt on Linux, double-click PyMeshIt.exe on Windows).

Note: macOS support is planned for future releases.

From PyPI (Cross-Platform)

If you prefer to run from source or use the Python API, you can install via pip:

pip install triangle
pip install pymeshit

From Source

If you want to install from source:

git clone https://github.com/waqashussain117/PyMeshit
cd PyMeshit
pip install -e .

Requirements

The package will automatically install all required dependencies:

  • numpy
  • scipy
  • matplotlib
  • PySide6
  • pyvista
  • tetgen
  • triangle (optional)

Linux Users: You may need to install system libraries for Qt. On Ubuntu:

sudo apt-get install libxcb-cursor0 libxkbcommon-x11-0 libegl1 libopengl0 libgl1

Quick start (GUI)

For installation either install the Requirements and then open through Python. After installation, run the GUI:

meshit-gui

Or from Python:

import Pymeshit
Pymeshit.main_wrapper()

Typical workflow:

  1. Load one or more point or VTU files (File → Load).
  2. Compute hulls (Convex Hull tab).
  3. Compute segmentation (Segmentation tab) — set "Target Feature Size" or per-surface values.
  4. Run triangulation (Triangulation tab), choose interpolation and quality settings.
  5. Compute intersections (Intersections tab) to extract shared constraints and triple points.
  6. Refine intersection lines and generate conforming meshes (Refine & Mesh tab).
  7. Select conforming surfaces and validate for TetGen (Pre‑Tetramesh tab).
  8. Generate and visualize tetrahedral mesh (Tetra Mesh tab) and export.

Programmatic Usage

Troubleshooting

Linux / Virtual Machine Issues

If you encounter an error like X Error of failed request: BadWindow or the application crashes on startup, it is likely due to graphics driver compatibility, especially in Virtual Machines (VirtualBox, VMware).

Try running the application with software rendering forced:

export LIBGL_ALWAYS_SOFTWARE=1
./PyMeshIt

Or force the Qt platform to X11:

export QT_QPA_PLATFORM=xcb
./PyMeshIt

Contributing

Contributions are welcome. Please open an issue for discussion and submit PRs for fixes and features. Keep GUI behavior consistent with the tab-based workflow.

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

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

pymeshit-0.7.7.tar.gz (3.7 MB view details)

Uploaded Source

Built Distribution

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

pymeshit-0.7.7-py3-none-any.whl (306.5 kB view details)

Uploaded Python 3

File details

Details for the file pymeshit-0.7.7.tar.gz.

File metadata

  • Download URL: pymeshit-0.7.7.tar.gz
  • Upload date:
  • Size: 3.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pymeshit-0.7.7.tar.gz
Algorithm Hash digest
SHA256 ada4f7c292e1d52f923876d57fd4d51acd13a23b252307dafc0de8811aab8aaa
MD5 f7cc4ee0f5e2deac2f98f3683f23c089
BLAKE2b-256 6978160df0bd58dc81c31e521455da4f05dddb0a21feb4e3f59c3146c7496a77

See more details on using hashes here.

File details

Details for the file pymeshit-0.7.7-py3-none-any.whl.

File metadata

  • Download URL: pymeshit-0.7.7-py3-none-any.whl
  • Upload date:
  • Size: 306.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pymeshit-0.7.7-py3-none-any.whl
Algorithm Hash digest
SHA256 94afd46162939cc98d4fa1bd604da65f0b544e741dda7e22d3388ad1962bec4f
MD5 f34ac99d3da006ee3f76a817d36d83b2
BLAKE2b-256 0f4b6472d0e6d91ef021d5e2830b3de2fbe13c73fc0ce2240e1701c94c326d80

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