# pymmg - Surface and volume remeshers
[![Build](https://github.com/gnikit/pymmg/actions/workflows/main.yml/badge.svg)](https://github.com/gnikit/pymmg/actions/workflows/main.yml)
Bringing [MMG](https://www.mmgtools.org/) surface and volume remeshers to Python.
This package is a wrapper around the MMG tools
## Features
- Surface remeshing
- Volume remeshing
- Area remeshing
- Adaptive mesh refinement
- Load multiple file formats using [`meshio`](https://github.com/nschloe/meshio)
> [Abaqus](http://abaqus.software.polimi.it/v6.14/index.html) (`.inp`),
> ANSYS msh (`.msh`),
> [AVS-UCD](https://lanl.github.io/LaGriT/pages/docs/read_avs.html) (`.avs`),
> [CGNS](https://cgns.github.io/) (`.cgns`),
> [DOLFIN XML](https://manpages.ubuntu.com/manpages/jammy/en/man1/dolfin-convert.1.html) (`.xml`),
> [Exodus](https://nschloe.github.io/meshio/exodus.pdf) (`.e`, `.exo`),
> [FLAC3D](https://www.itascacg.com/software/flac3d) (`.f3grid`),
> [H5M](https://www.mcs.anl.gov/~fathom/moab-docs/h5mmain.html) (`.h5m`),
> [Kratos/MDPA](https://github.com/KratosMultiphysics/Kratos/wiki/Input-data) (`.mdpa`),
> [Medit](https://people.sc.fsu.edu/~jburkardt/data/medit/medit.html) (`.mesh`, `.meshb`),
> [MED/Salome](https://docs.salome-platform.org/latest/dev/MEDCoupling/developer/med-file.html) (`.med`),
> [Nastran](https://help.autodesk.com/view/NSTRN/2019/ENU/?guid=GUID-42B54ACB-FBE3-47CA-B8FE-475E7AD91A00) (bulk data, `.bdf`, `.fem`, `.nas`),
> [Netgen](https://github.com/ngsolve/netgen) (`.vol`, `.vol.gz`),
> [Neuroglancer precomputed format](https://github.com/google/neuroglancer/tree/master/src/neuroglancer/datasource/precomputed#mesh-representation-of-segmented-object-surfaces),
> [Gmsh](https://gmsh.info/doc/texinfo/gmsh.html#File-formats) (format versions 2.2, 4.0, and 4.1, `.msh`),
> [OBJ](https://en.wikipedia.org/wiki/Wavefront_.obj_file) (`.obj`),
> [OFF](https://segeval.cs.princeton.edu/public/off_format.html) (`.off`),
> [PERMAS](https://www.intes.de) (`.post`, `.post.gz`, `.dato`, `.dato.gz`),
> [PLY](<https://en.wikipedia.org/wiki/PLY_(file_format)>) (`.ply`),
> [STL](<https://en.wikipedia.org/wiki/STL_(file_format)>) (`.stl`),
> [Tecplot .dat](http://paulbourke.net/dataformats/tp/),
> [TetGen .node/.ele](https://wias-berlin.de/software/tetgen/fformats.html),
> [SVG](https://www.w3.org/TR/SVG/) (2D output only) (`.svg`),
> [SU2](https://su2code.github.io/docs_v7/Mesh-File/) (`.su2`),
> [UGRID](https://www.simcenter.msstate.edu/software/documentation/ug_io/3d_grid_file_type_ugrid.html) (`.ugrid`),
> [VTK](https://vtk.org/wp-content/uploads/2015/04/file-formats.pdf) (`.vtk`),
> [VTU](https://vtk.org/Wiki/VTK_XML_Formats) (`.vtu`),
> [WKT](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) ([TIN](https://en.wikipedia.org/wiki/Triangulated_irregular_network)) (`.wkt`),
> [XDMF](https://xdmf.org/index.php/XDMF_Model_and_Format) (`.xdmf`, `.xmf`).
## Installation
```bash
pip install pymmg
```
> NOTE: you can use the full-blown `pymmg` converter with `netcdf4` and `h5py` by doing:
> `pip install pymmg[all]`
## Usage
### Surface remeshing
```bash
python -m mmgs input.mesh output.mesh
```
### Volume remeshing
```bash
python -m mmg3d input.mesh output.mesh
```
### 2D remeshing
```bash
python -m mmg2d input.mesh output.mesh
```
Raw data
{
"_id": null,
"home_page": null,
"name": "pymmg",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "mesh, remesh, mesh generation, unstructured",
"author": "gnikit",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/e3/58/00664f089c0d3c5cdad3740b2b6aca3a9dd31aef751b3431ec7937954ba4/pymmg-1.0.0.tar.gz",
"platform": null,
"description": "# pymmg - Surface and volume remeshers\n\n[![Build](https://github.com/gnikit/pymmg/actions/workflows/main.yml/badge.svg)](https://github.com/gnikit/pymmg/actions/workflows/main.yml)\n\nBringing [MMG](https://www.mmgtools.org/) surface and volume remeshers to Python.\nThis package is a wrapper around the MMG tools\n\n## Features\n\n- Surface remeshing\n- Volume remeshing\n- Area remeshing\n- Adaptive mesh refinement\n- Load multiple file formats using [`meshio`](https://github.com/nschloe/meshio)\n > [Abaqus](http://abaqus.software.polimi.it/v6.14/index.html) (`.inp`),\n > ANSYS msh (`.msh`),\n > [AVS-UCD](https://lanl.github.io/LaGriT/pages/docs/read_avs.html) (`.avs`),\n > [CGNS](https://cgns.github.io/) (`.cgns`),\n > [DOLFIN XML](https://manpages.ubuntu.com/manpages/jammy/en/man1/dolfin-convert.1.html) (`.xml`),\n > [Exodus](https://nschloe.github.io/meshio/exodus.pdf) (`.e`, `.exo`),\n > [FLAC3D](https://www.itascacg.com/software/flac3d) (`.f3grid`),\n > [H5M](https://www.mcs.anl.gov/~fathom/moab-docs/h5mmain.html) (`.h5m`),\n > [Kratos/MDPA](https://github.com/KratosMultiphysics/Kratos/wiki/Input-data) (`.mdpa`),\n > [Medit](https://people.sc.fsu.edu/~jburkardt/data/medit/medit.html) (`.mesh`, `.meshb`),\n > [MED/Salome](https://docs.salome-platform.org/latest/dev/MEDCoupling/developer/med-file.html) (`.med`),\n > [Nastran](https://help.autodesk.com/view/NSTRN/2019/ENU/?guid=GUID-42B54ACB-FBE3-47CA-B8FE-475E7AD91A00) (bulk data, `.bdf`, `.fem`, `.nas`),\n > [Netgen](https://github.com/ngsolve/netgen) (`.vol`, `.vol.gz`),\n > [Neuroglancer precomputed format](https://github.com/google/neuroglancer/tree/master/src/neuroglancer/datasource/precomputed#mesh-representation-of-segmented-object-surfaces),\n > [Gmsh](https://gmsh.info/doc/texinfo/gmsh.html#File-formats) (format versions 2.2, 4.0, and 4.1, `.msh`),\n > [OBJ](https://en.wikipedia.org/wiki/Wavefront_.obj_file) (`.obj`),\n > [OFF](https://segeval.cs.princeton.edu/public/off_format.html) (`.off`),\n > [PERMAS](https://www.intes.de) (`.post`, `.post.gz`, `.dato`, `.dato.gz`),\n > [PLY](<https://en.wikipedia.org/wiki/PLY_(file_format)>) (`.ply`),\n > [STL](<https://en.wikipedia.org/wiki/STL_(file_format)>) (`.stl`),\n > [Tecplot .dat](http://paulbourke.net/dataformats/tp/),\n > [TetGen .node/.ele](https://wias-berlin.de/software/tetgen/fformats.html),\n > [SVG](https://www.w3.org/TR/SVG/) (2D output only) (`.svg`),\n > [SU2](https://su2code.github.io/docs_v7/Mesh-File/) (`.su2`),\n > [UGRID](https://www.simcenter.msstate.edu/software/documentation/ug_io/3d_grid_file_type_ugrid.html) (`.ugrid`),\n > [VTK](https://vtk.org/wp-content/uploads/2015/04/file-formats.pdf) (`.vtk`),\n > [VTU](https://vtk.org/Wiki/VTK_XML_Formats) (`.vtu`),\n > [WKT](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) ([TIN](https://en.wikipedia.org/wiki/Triangulated_irregular_network)) (`.wkt`),\n > [XDMF](https://xdmf.org/index.php/XDMF_Model_and_Format) (`.xdmf`, `.xmf`).\n\n## Installation\n\n```bash\npip install pymmg\n```\n\n> NOTE: you can use the full-blown `pymmg` converter with `netcdf4` and `h5py` by doing:\n> `pip install pymmg[all]`\n\n## Usage\n\n### Surface remeshing\n\n```bash\npython -m mmgs input.mesh output.mesh\n```\n\n### Volume remeshing\n\n```bash\npython -m mmg3d input.mesh output.mesh\n```\n\n### 2D remeshing\n\n```bash\npython -m mmg2d input.mesh output.mesh\n```\n",
"bugtrack_url": null,
"license": "LGPL-3.0-or-later",
"summary": "Surface and volume mesh and remesh generators based on MMG library",
"version": "1.0.0",
"project_urls": {
"Bugs": "https://github.com/gnikit/pymmg/issues",
"Dicsussions": "https://forum.mmgtools.org/",
"Homepage": "https://www.mmgtools.org/",
"Source Code": "https://github.com/gnikit/pymmg"
},
"split_keywords": [
"mesh",
" remesh",
" mesh generation",
" unstructured"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cc150a40ca30694f85c81c9479dbe456aa6bc7edfede3fc1a259b52b67e0f202",
"md5": "c1a3b9a7e2b2ca1a4557023ac3b20cc9",
"sha256": "6de50269202c8a009f0595697eaa1a791d114df0414156f07205f846784136ad"
},
"downloads": -1,
"filename": "pymmg-1.0.0-py3-none-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "c1a3b9a7e2b2ca1a4557023ac3b20cc9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 889752,
"upload_time": "2024-04-01T15:13:33",
"upload_time_iso_8601": "2024-04-01T15:13:33.795190Z",
"url": "https://files.pythonhosted.org/packages/cc/15/0a40ca30694f85c81c9479dbe456aa6bc7edfede3fc1a259b52b67e0f202/pymmg-1.0.0-py3-none-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ad63f6965f10a9cb85a0d84b1713e9b11fc7df604708774e3ce0ad71542bb580",
"md5": "c9dec3e33e9952d04270f238dc4feaa7",
"sha256": "18d8b01ab1c72d69168a1a24e2356f071b46010eedb827f1fb6b5919d46fe1e3"
},
"downloads": -1,
"filename": "pymmg-1.0.0-py3-none-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "c9dec3e33e9952d04270f238dc4feaa7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 891774,
"upload_time": "2024-04-01T15:13:35",
"upload_time_iso_8601": "2024-04-01T15:13:35.837256Z",
"url": "https://files.pythonhosted.org/packages/ad/63/f6965f10a9cb85a0d84b1713e9b11fc7df604708774e3ce0ad71542bb580/pymmg-1.0.0-py3-none-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6a53c5b54a9686ac0ae80f375bcc6b1dc30b40fd954467e1c6c262f7d44be1be",
"md5": "0c6e4de16f97a606ce5e45d1b780a7e6",
"sha256": "c71fe3a1df71a40125b106a08bde214f28c389eec65e413dfe1dbd5829b86ad3"
},
"downloads": -1,
"filename": "pymmg-1.0.0-py3-none-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl",
"has_sig": false,
"md5_digest": "0c6e4de16f97a606ce5e45d1b780a7e6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 986775,
"upload_time": "2024-04-01T15:13:37",
"upload_time_iso_8601": "2024-04-01T15:13:37.128400Z",
"url": "https://files.pythonhosted.org/packages/6a/53/c5b54a9686ac0ae80f375bcc6b1dc30b40fd954467e1c6c262f7d44be1be/pymmg-1.0.0-py3-none-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "832ae131d4d5258f7103b8b23cfc76950d6ee8cd2ed7323b70016347d947d974",
"md5": "d351d8e8bce006cf3eab3a5c81e2495a",
"sha256": "82a4504c8ab0a6c0925cba3a9302d8b66ec72c7695e42f5f26ea6de3d2756dff"
},
"downloads": -1,
"filename": "pymmg-1.0.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"has_sig": false,
"md5_digest": "d351d8e8bce006cf3eab3a5c81e2495a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1012980,
"upload_time": "2024-04-01T15:13:38",
"upload_time_iso_8601": "2024-04-01T15:13:38.867462Z",
"url": "https://files.pythonhosted.org/packages/83/2a/e131d4d5258f7103b8b23cfc76950d6ee8cd2ed7323b70016347d947d974/pymmg-1.0.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fbff5bab3899cf35d2e7f677169883c0e948d3e92449e9f5d68fa4dcb9bf270e",
"md5": "350508f2a7bee64158896f3d93b6eb72",
"sha256": "4ba2704d43aa0b28e0be9f188e2eb155e3ca33e0df3a4cccb5482702d666068e"
},
"downloads": -1,
"filename": "pymmg-1.0.0-py3-none-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "350508f2a7bee64158896f3d93b6eb72",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1089028,
"upload_time": "2024-04-01T15:13:40",
"upload_time_iso_8601": "2024-04-01T15:13:40.343843Z",
"url": "https://files.pythonhosted.org/packages/fb/ff/5bab3899cf35d2e7f677169883c0e948d3e92449e9f5d68fa4dcb9bf270e/pymmg-1.0.0-py3-none-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e97764acd083c64214cf7f36b7552497623dbab2cd6a539e0a7850eb91f94033",
"md5": "516b82dac557954237966f0c24edc6f9",
"sha256": "266c84f9f288e645bf333b0cb14d66601833d9c11793a34bc6047a9751b36648"
},
"downloads": -1,
"filename": "pymmg-1.0.0-py3-none-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "516b82dac557954237966f0c24edc6f9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1069546,
"upload_time": "2024-04-01T15:13:42",
"upload_time_iso_8601": "2024-04-01T15:13:42.045349Z",
"url": "https://files.pythonhosted.org/packages/e9/77/64acd083c64214cf7f36b7552497623dbab2cd6a539e0a7850eb91f94033/pymmg-1.0.0-py3-none-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b46ccd9df1fa5fd9b72b2edda7ac00fca1174c85482ee152de98000862e00cf7",
"md5": "460b48b659f624755a3694fbb4a35f57",
"sha256": "c26ed62f050932e5b77ea1249f9636d5440524290042af923b2d5c262cc0a216"
},
"downloads": -1,
"filename": "pymmg-1.0.0-py3-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "460b48b659f624755a3694fbb4a35f57",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 678838,
"upload_time": "2024-04-01T15:13:43",
"upload_time_iso_8601": "2024-04-01T15:13:43.857581Z",
"url": "https://files.pythonhosted.org/packages/b4/6c/cd9df1fa5fd9b72b2edda7ac00fca1174c85482ee152de98000862e00cf7/pymmg-1.0.0-py3-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e35800664f089c0d3c5cdad3740b2b6aca3a9dd31aef751b3431ec7937954ba4",
"md5": "c8d4fa6963439b319bb3c45f8261451c",
"sha256": "dbdb657f5aee9442d591c1961aa2ea957ca6d1ba370296eebc31c63289713861"
},
"downloads": -1,
"filename": "pymmg-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "c8d4fa6963439b319bb3c45f8261451c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 1075357,
"upload_time": "2024-04-01T15:13:45",
"upload_time_iso_8601": "2024-04-01T15:13:45.725064Z",
"url": "https://files.pythonhosted.org/packages/e3/58/00664f089c0d3c5cdad3740b2b6aca3a9dd31aef751b3431ec7937954ba4/pymmg-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-01 15:13:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "gnikit",
"github_project": "pymmg",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pymmg"
}