pyiso2mesh - One-liner 3D Surface and Tetrahedral Mesh Generation Toolbox
- Copyright: (C) Qianqian Fang (2024-2025) <q.fang at neu.edu>
- License: GNU Public License V3 or later
- Version: 0.4.2
- URL: https://pypi.org/project/iso2mesh/
- Homepage: https://iso2mesh.sf.net
- Github: https://github.com/NeuroJSON/pyiso2mesh
- Acknowledgement: This project is supported by the US National Institute of Health (NIH) grants U24-NS124027 and R01-CA204443
Click here to register and download pyiso2mesh 0.4.2 installer
What's new compared to 0.4.0
- 2025-07-28 [cc7727f] [feat] add jsonlab and easyh5 interfaces, bump to 0.4.2
- 2025-07-26 [f1ebb1d] [bug] remove unneeded off file
- 2025-07-26 [af338c1] [plot] port mcxplotvol as plotvolume, fix macos CI
- 2025-07-25 [76b524a] [brain2mesh] accelerate brain2mesh, binsurface avoid meshcheckrepair
- 2025-07-23 [6cb39f6] [volume] set border_value=1 to match matlab volshrink behavior
- 2025-07-23 [f359ee5] [test] add tests for volume processing, brain1020 is working
- 2025-07-22 [dc49d0e] [brain2mesh] initial port of brain2mesh, volume processing functions
What's new compared to 0.3.8
- 2025-07-13 [c259973] [port] add slicesurf3, update port function table
- 2025-07-13 [9b150ac] [test] migrate from round to assertAlmostEqual
- 2025-07-13 [5cf18e4] [test] add tests for m2v, mesh2vol, mesh2mask, mask has bias the bias is due to matplotlib rendering under antialiased=False is sensitive to patch orders, reported at matplotlib/matplotlib#26827
- 2025-07-13 [7650d96] [port] further debug m2v, mesh2vol, mesh2mask, edge/size are wrong
- 2025-07-12 [1ced258] [doc] add toc to README.md
- 2025-07-10 [935dbad] [ci] skip mac cgals2m test
- 2025-07-10 [893aa7d] [ci] fix ci error again
- 2025-07-10 [87a6f39] [ci] fix ci error
- 2025-07-10 [e352af0] [ci] add test cgals2m
- 2025-07-10 [644a909] [ci] fix broken macos test
- 2025-07-09 [00fe9b6] [ci] relax precision to pass win2022 test
- 2025-07-09 [b57cb08] [ci] move to windows-2022 runner as 2019 his retired
- 2025-07-09 [fba72e4] [ci] fix failed tests
- 2025-07-09 [15a567f] [test] add test for mergemesh
Iso2Mesh function port status
The progress of converting MATLAB-based Iso2Mesh functions to Python is
tracked in #1
Ported | Unit-tested | Ported | Unit-tested | |
---|---|---|---|---|
> All-in-one pipeline shortcuts | > File I/O | |||
✅ v2m.m |
✅ tested | ✅ saveasc.m |
⭕️ tested | |
✅ v2s.m |
✅ tested | ✅ savedxf.m |
⭕️ tested | |
✅ s2m.m |
✅ tested | ✅ savestl.m |
⭕️ tested | |
✅ s2v.m |
✅ tested | ✅ savebinstl.m |
⭕️ tested | |
✅ m2v.m |
✅ tested | ✅ saveinr.m |
⭕️ tested | |
✅ sms.m |
✅ tested | ✅ saveoff.m |
✅ tested | |
> Streamlined mesh generation | ⭕️ savesmf.m |
⭕️ tested | ||
✅ vol2mesh.m |
✅ tested | ✅ savesurfpoly.m |
✅ tested | |
✅ vol2surf.m |
✅ tested | ⭕️ savegts.m |
⭕️ tested | |
✅ surf2mesh.m |
✅ tested | ⭕️ readgts.m |
⭕️ tested | |
✅ surf2vol.m |
✅ tested | ⭕️ savemsh.m |
⭕️ tested | |
✅ mesh2vol.m |
✅ tested | ⭕️ savevrml.m |
⭕️ tested | |
> Iso2mesh main function backend | ✅ readasc.m |
⭕️ tested | ||
✅ binsurface.m |
✅ tested | ⭕️ readinr.m |
⭕️ tested | |
✅ cgalv2m.m |
✅ tested | ✅ readmedit.m |
⭕️ tested | |
✅ cgals2m.m |
✅ tested | ✅ readoff.m |
✅ tested | |
✅ vol2restrictedtri.m |
✅ tested | ⭕️ readsmf.m |
⭕️ tested | |
✅ surf2volz.m |
✅ tested | ✅ readtetgen.m |
✅ tested | |
✅ mesh2mask.m |
✅ tested | ✅ deletemeshfile.m |
✅ tested | |
> Iso2mesh primitive meshing | ✅ mcpath.m |
✅ tested | ||
✅ meshabox.m |
✅ tested | ✅ mwpath.m |
✅ tested | |
✅ meshasphere.m |
✅ tested | ✅ savemedit.m |
✅ tested | |
✅ meshanellip.m |
✅ tested | ✅ savejson.m |
⭕️ tested | |
✅ meshunitsphere.m |
✅ tested | ✅ loadjson.m |
⭕️ tested | |
✅ meshacylinder.m |
✅ tested | ✅ savejd.m |
⭕️ tested | |
✅ meshgrid5.m |
✅ tested | ✅ loadjd.m |
⭕️ tested | |
✅ meshgrid6.m |
✅ tested | ⭕️ loadmsgpack.m |
⭕️ tested | |
✅ latticegrid.m |
✅ tested | ⭕️ savemsgpack.m |
⭕️ tested | |
✅ extrudecurve.m |
⭕️ tested | ✅ savebj.m |
⭕️ tested | |
✅ meshcylinders.m |
✅ tested | ✅ loadbj.m |
⭕️ tested | |
> Mesh decomposition and query | ⭕️ savemphtxt.m |
⭕️ tested | ||
✅ finddisconnsurf.m |
✅ tested | ⭕️ savetetgenele.m |
⭕️ tested | |
✅ surfedge.m |
✅ tested | ⭕️ savetetgennode.m |
⭕️ tested | |
✅ volface.m |
✅ tested | ⭕️ saveabaqus.m |
⭕️ tested | |
✅ extractloops.m |
✅ tested | ⭕️ savenirfast.m |
⭕️ tested | |
✅ meshconn.m |
✅ tested | ⭕️ readnirfast.m |
⭕️ tested | |
✅ meshcentroid.m |
✅ tested | ✅ loadnifti.m |
⭕️ tested | |
✅ nodevolume.m |
✅ tested | ⭕️ readmptiff.m |
⭕️ tested | |
✅ elemvolume.m |
✅ tested | ⭕️ loadjsnirf.m |
⭕️ tested | |
✅ neighborelem.m |
✅ tested | ⭕️ savejsnirf.m |
⭕️ tested | |
✅ layersurf.m |
⭕️ tested | ⭕️ loadsnirf.m |
⭕️ tested | |
✅ faceneighbors.m |
✅ tested | ⭕️ savesnirf.m |
⭕️ tested | |
✅ edgeneighbors.m |
✅ tested | ⭕️ readobjmesh.m |
⭕️ tested | |
✅ maxsurf.m |
⭕️ tested | ⭕️ loadjmesh.m |
⭕️ tested | |
✅ flatsegment.m |
⭕️ tested | ⭕️ readobjmesh.m |
⭕️ tested | |
✅ orderloopedge.m |
⭕️ tested | > Volumetric image pre-processing | ||
✅ mesheuler.m |
✅ tested | ✅ volgrow.m |
✅ tested | |
✅ bbxflatsegment.m |
⭕️ tested | ✅ volshrink.m |
✅ tested | |
✅ surfplane.m |
⭕️ tested | ✅ volopen.m |
✅ tested | |
✅ surfinterior.m |
⭕️ tested | ✅ volclose.m |
✅ tested | |
✅ surfpart.m |
⭕️ tested | ✅ fillholes3d.m |
✅ tested | |
✅ surfseeds.m |
⭕️ tested | ⭕️ bwislands.m |
⭕️ tested | |
✅ meshquality.m |
✅ tested | ⭕️ laplacefill.m |
⭕️ tested | |
✅ meshedge.m |
✅ tested | ⭕️ deislands2d.m |
⭕️ tested | |
✅ meshface.m |
✅ tested | ⭕️ deislands3d.m |
⭕️ tested | |
✅ surfacenorm.m |
✅ tested | ⭕️ ndgaussian.m |
⭕️ tested | |
✅ nodesurfnorm.m |
✅ tested | ⭕️ ndimfilter.m |
⭕️ tested | |
✅ uniqedges.m |
✅ tested | ⭕️ imedge3d.m |
⭕️ tested | |
✅ uniqfaces.m |
✅ tested | ⭕️ internalpoint.m |
⭕️ tested | |
✅ advancefront.m |
⭕️ tested | ⭕️ smoothbinvol.m |
⭕️ tested | |
✅ innersurf.m |
⭕️ tested | ✅ thickenbinvol.m |
✅ tested | |
✅ outersurf.m |
⭕️ tested | ✅ thinbinvol.m |
✅ tested | |
✅ surfvolume.m |
✅ tested | ⭕️ maskdist.m |
⭕️ tested | |
✅ insurface.m |
✅ tested | > Mesh plotting | ||
> Mesh processing and reparing | ✅ plotmesh.m |
✅ tested | ||
✅ meshcheckrepair.m |
✅ tested | ✅ plotsurf.m |
✅ tested | |
✅ meshreorient.m |
✅ tested | ✅ plottetra.m |
✅ tested | |
✅ removedupelem.m |
✅ tested | ✅ plotedges.m |
✅ tested | |
✅ removedupnodes.m |
✅ tested | ✅ qmeshcut.m |
✅ tested | |
✅ removeisolatednode.m |
✅ tested | > Miscellaneous functions | ||
✅ removeisolatedsurf.m |
⭕️ tested | ⭕️ surfdiffuse.m |
⭕️ tested | |
✅ surfaceclean.m |
⭕️ tested | ⭕️ volmap2mesh.m |
⭕️ tested | |
✅ getintersecttri.m |
⭕️ tested | ⭕️ isoctavemesh.m |
⭕️ tested | |
✅ delendelem.m |
⭕️ tested | ⭕️ getvarfrom.m |
⭕️ tested | |
✅ surfreorient.m |
✅ tested | ✅ raytrace.m |
✅ tested | |
> Mesh registration | ⭕️ linextriangle.m |
⭕️ tested | ||
✅ proj2mesh.m |
⭕️ tested | ⭕️ getplanefrom3pt.m |
⭕️ tested | |
✅ dist2surf.m |
⭕️ tested | ✅ getexeext.m |
✅ tested | |
✅ regpt2surf.m |
⭕️ tested | ✅ fallbackexeext.m |
✅ tested | |
✅ affinemap.m |
⭕️ tested | ⭕️ iso2meshver.m |
⭕️ tested | |
> Polyline handling | ⭕️ raysurf.m |
⭕️ tested | ||
✅ slicesurf.m |
⭕️ tested | ⭕️ getoptkey.m |
⭕️ tested | |
✅ slicesurf3.m |
⭕️ tested | ✅ rotatevec3d.m |
⭕️ tested | |
✅ polylinelen.m |
⭕️ tested | ✅ rotmat2vec.m |
⭕️ tested | |
✅ polylinesimplify.m |
⭕️ tested | ✅ varargin2struct.m |
⭕️ tested | |
✅ polylineinterp.m |
⭕️ tested | ✅ jsonopt.m |
⭕️ tested | |
✅ closestnode.m |
⭕️ tested | ⭕️ mergestruct.m |
⭕️ tested | |
> Mesh resampling and optimization | ⭕️ orthdisk.m |
⭕️ tested | ||
✅ meshresample.m |
✅ tested | ⭕️ nestbracket2dim.m |
⭕️ tested | |
✅ remeshsurf.m |
✅ tested | ✅ memmapstream.m |
⭕️ tested | |
✅ smoothsurf.m |
✅ tested | ⭕️ aos2soa.m |
⭕️ tested | |
✅ sortmesh.m |
⭕️ tested | ⭕️ soa2aos.m |
⭕️ tested | |
✅ mergemesh.m |
✅ tested | > Brain2mesh toolbox | ||
✅ meshrefine.m |
✅ tested | ✅ brain2mesh.m |
⭕️ tested | |
✅ mergesurf.m |
⭕️ tested | ✅ brain1020.m |
⭕️ tested | |
✅ surfboolean.m |
✅ tested | ✅ intriangulation.m |
⭕️ tested | |
✅ fillsurf.m |
⭕️ tested | ✅ label2tpm.m |
⭕️ tested | |
✅ highordertet.m |
✅ tested | ✅ tpm2label.m |
⭕️ tested | |
✅ elemfacecenter.m |
✅ tested | > JSONLab toolbox | ||
✅ barydualmesh.m |
✅ tested | ✅ jdataencode.m |
⭕️ tested | |
✅ meshinterp.m |
⭕️ tested | ✅ jdatadecode.m |
⭕️ tested | |
✅ meshremap.m |
⭕️ tested | ✅ jsonpath.m |
⭕️ tested | |
✅ extrudesurf.m |
⭕️ tested | ✅ jdlink.m |
⭕️ tested |