Skip to main content

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

gd_mesh_utils-0.0.4.tar.gz (178.8 kB view details)

Uploaded Source

Built Distribution

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

gd_mesh_utils-0.0.4-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file gd_mesh_utils-0.0.4.tar.gz.

File metadata

  • Download URL: gd_mesh_utils-0.0.4.tar.gz
  • Upload date:
  • Size: 178.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for gd_mesh_utils-0.0.4.tar.gz
Algorithm Hash digest
SHA256 5f41eaa22318f8f7cca11afb2f9b0906090b3d88969395c5e24e5940e7a4696f
MD5 716d61753a128fa0e99823c40ff4f188
BLAKE2b-256 9462397d643fe2115b61ee281ca45fd1f610347117a35f086b4f998e5faae73a

See more details on using hashes here.

File details

Details for the file gd_mesh_utils-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: gd_mesh_utils-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for gd_mesh_utils-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 02757fc295bdb1f8de2cb629e143109c7c9f71aa1ae8c18b232bdfa62fc0c42e
MD5 27039582f17b3e2c9a136ed4333b8177
BLAKE2b-256 adf505f250532a057faeaf71f3af36cbf01a9dd94ba2238bf3f6b11ea07692e6

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