No project description provided
Project description
gdmesh
gdmesh is a lightweight Python mesh utility library. It provides tools for mesh management, format-agnostic I/O, and remeshing capabilities, built on top of pyvista.
Installation
pip install gd-mesh-utils
Quick Start
1. Creating Meshes
Create meshes from points and cells:
import numpy as np
import gdmesh as gm
# Create a triangle mesh
points = np.array([
[0, 0, 0],
[1, 0, 0],
[0.5, 1, 0],
])
cells = {"triangle": np.array([[0, 1, 2]])}
mesh = gm.Mesh(points=points, cells=cells)
2. Loading and Saving Meshes
Load and save meshes in various formats using meshio:
import gdmesh as gm
# Load mesh from file
mesh = gm.Mesh.load("input.stl")
# Or use convenience function
mesh = gm.load_mesh("input.vtk")
# Save mesh to file
mesh.save("output.obj")
3. Accessing Mesh Data
Access mesh components as numpy arrays:
# Get point coordinates
points = mesh.points # Shape: (n_points, 3)
# Get cells
cells = mesh.cells # Dict: {"triangle": array, ...}
# Get point and cell data
point_data = mesh.point_data # Dict of arrays
cell_data = mesh.cell_data # Dict of arrays
4. Remeshing
Remesh surfaces and volumes using pymmg (mmgs/mmg3d under the hood):
# Surface remeshing
remeshed = mesh.remesh_surface()
# Volume remeshing
remeshed = mesh.remesh_volume()
# Optional: provide MMG options
from gdmesh.remesh import MmgOptions
opts = MmgOptions(hmax=0.3, hmin=0.05, hausd=0.01, hgrad=1.3)
remeshed = mesh.remesh_surface(mmg_args=opts)
5. PyVista Integration
Access underlying pyvista mesh for advanced operations:
# Direct access to pyvista mesh
pv_mesh = mesh.pv_mesh
# Use any pyvista functionality
pv_mesh.plot()
pv_mesh.compute_normals()
6. Plotter
Use the built-in Plotter wrapper for quick visualization while accepting
gdmesh.Mesh instances directly:
import gdmesh as gm
mesh = gm.Mesh.load("input.vtk")
with gm.Plotter(off_screen=True) as pl:
pl.add_mesh(mesh)
pl.save("preview.png")
7. Integration with gdutils
Use with gdutils Container for organized mesh management:
import gdutils as gd
import gdmesh as gm
out = gd.fPath(__file__, "out")
with gd.Container(out / "meshes") as ct:
# Load mesh
mesh = gm.Mesh.load("input.stl")
# Remesh
remeshed = mesh.remesh_surface()
# Save to container
remeshed.save(ct / "remeshed.stl")
# Access later
print(ct.remeshed) # Path to remeshed mesh
Features
- Mesh Types: Support for points, lines, triangles, and tetrahedra in 3D
- Format Agnostic: Read/write many formats via meshio (STL, OBJ, VTK, PLY, etc.)
- Remeshing: Surface and volume remeshing using pymmg
- PyVista Wrapper: Full access to pyvista functionality
- Clean API: Simple, intuitive interface similar to gdutils
Supported Mesh Types
- Points: Point clouds
- Lines: Line segments
- Triangles: Triangular surface meshes
- Tetrahedra: Tetrahedral volume meshes
Supported Formats
All formats supported by meshio, including:
- STL, OBJ, PLY
- VTK, VTP, VTU
- Gmsh (.msh)
- Abaqus (.inp)
- And many more...
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gd_mesh_utils-0.0.5.tar.gz.
File metadata
- Download URL: gd_mesh_utils-0.0.5.tar.gz
- Upload date:
- Size: 251.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42e0676350108ce403502b52f3a317aab112f6c39efed5186795c90a51399da0
|
|
| MD5 |
6a40ce96decb003071ea27688dd319a8
|
|
| BLAKE2b-256 |
3c2a3f43cc2bb39c08cf06baa579e40cdb7807b371af0b1484b703bbf58de65e
|
File details
Details for the file gd_mesh_utils-0.0.5-py3-none-any.whl.
File metadata
- Download URL: gd_mesh_utils-0.0.5-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a5b24971bd3708b0858bdefeefc04acb77bcd7292289538adaba6babb1f3b6b
|
|
| MD5 |
182e0e18d23191abe06cd1437d92ef75
|
|
| BLAKE2b-256 |
e15e7be11aecab277124da714acd5b764e47dd2a2fc2e5977496d97b6097944e
|