Geode-Simplex

raw JSON →
11.1.5 verified Mon Apr 27 auth: no python

Geode-Simplex is a module of the OpenGeode framework by Geode-solutions, providing simplex (triangular/tetrahedral) remeshing algorithms for 3D mesh models. Version 11.1.5 requires Python 3.9-3.12. Released approximately every 2-3 months.

pip install geode-simplex
error ModuleNotFoundError: No module named 'geode'
cause Tried to import from 'geode.simplex' or 'geode_simplex' without installing the package.
fix
Run 'pip install geode-simplex' and also ensure 'opengeode-core' is installed.
error ImportError: cannot import name 'SimplexRemesher' from 'geode_simplex'
cause The class name might be different or the package version does not include it.
fix
Check the installed version (pip show geode-simplex). In older versions, the class might be named differently. Upgrade to latest: pip install --upgrade geode-simplex.
error TypeError: SimplexRemesher() missing 1 required positional argument: 'mesh'
cause Tried to instantiate SimplexRemesher without passing a mesh object.
fix
Create an opengeode mesh first: mesh = opengeode.load_mesh('file.mesh'); remesher = SimplexRemesher(mesh).
gotcha Import path uses underscore: import from geode_simplex NOT geode.simplex. Many users mistakenly use dots due to the package name containing a hyphen.
fix Use 'from geode_simplex import SimplexRemesher'.
deprecated Python 3.8 and below are not supported. Requires Python >=3.9.
fix Upgrade Python to 3.9 or later.
gotcha The remeshing algorithm expects a triangle or tetrahedral mesh. Passing other mesh types will raise an error without clear message.
fix Ensure your mesh is simplex (triangular/tetrahedral) using opengeode mesh conversion utilities.

Basic example: load a tetrahedral mesh, set target edge length, remesh, and save.

from geode_simplex import SimplexRemesher
import opengeode

# Load a tetrahedral mesh
mesh = opengeode.load_mesh('input.mesh')

# Initialize remesher
remesher = SimplexRemesher(mesh)
remesher.set_target_edge_length(0.5)

# Perform remeshing
new_mesh = remesher.remesh()
opengeode.save_mesh(new_mesh, 'output.mesh')