Releases: NeuroJSON/pyiso2mesh
Releases · NeuroJSON/pyiso2mesh
pysi2mesh v0.4.2
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 | ... |
pyiso2mesh v0.3.8
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.3.8
- 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.3.8 installer
What's new compared to 0.3.7
- 2025-07-10 [935dbad] [ci] skip mac cgals2m test
- 2025-07-10 [e352af0] [ci] add test cgals2m
- 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 [15a567f] [test] add test for mergemesh
- 2025-07-09 [cf2f359] [port] test surf2vol, surf2volz, s2v
- 2025-07-09 [2f6e21a] [port] tested surf2vol and remeshsurf
What's new compared to 0.3.0
- 2025-06-29 [3319628] [feat] add meshrefine test, use keywords in meshrefine, 0.3.7
- 2025-06-29 [78cedea] [feat] meshrefine is partially working
- 2025-06-26 [30a8f7c] [feat] add line.py for polyline, fix missing import, fix circular dependency
- 2025-06-25 [fd06a01] [test] tested and fixed meshacylinders
- 2025-06-25 [757769e] [doc] format function table
- 2025-06-25 [7c2e701] [doc] add figures to tutorial jupyter notebook, bump to 0.3.6
- 2025-06-25 [252130d] [bug] fix qmeshcut slicer expression bug, add tutorial, 0.3.5
- 2025-06-24 [034e261] [doc] update README, accept subplot/parent/hold in plotmesh, 0.3.4
- 2025-06-24 [d21839e] [plot] fix plotting hold on, return fig/ax/obj dict, 0.3.3
- 2025-06-23 [76d8a4c] [bug] fix plot hold on bug
- 2025-06-23 [515fec6] [test] skip Test_plot if matplotlib is older than 3.6
- 2025-06-23 [a073c39] [test] skip Test_plot if matplotlib is older than 3.6
- 2025-06-23 [e5727ce] [test] debug test error on matplotlib 3.5
- 2025-06-23 [e5369e0] [test] add plotmesh tests, add hide option to plotmesh, bump 0.3.2
- 2025-06-22 [a2a5d4e] [ci] fix test error in ci
- 2025-06-22 [9fc478d] [feat] tested direct PLC meshing, fix plotedges error
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 | ⭕️ saveubjson.m |
⭕️ tested | |
✅ meshgrid5.m |
✅ tested | ⭕️ loadubjson.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 | ⭕️ readnifti.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 | ⭕️ bwislands.m |
⭕️ tested | |
✅ bbxflatsegment.m |
⭕️ tested | ⭕️ fillholes3d.m |
⭕️ tested | |
✅ surfplane.m |
⭕️ tested | ⭕️ deislands2d.m |
⭕️ tested | |
✅ surfinterior.m |
⭕️ tested | ⭕️ deislands3d.m |
⭕️ tested | |
✅ surfpart.m |
⭕️ tested | ⭕️ ndgaussian.m |
⭕️ tested | |
✅ surfseeds.m |
⭕️ tested | ⭕️ ndimfilter.m |
⭕️ tested | |
✅ meshquality.m |
✅ tested | ⭕️ imedge3d.m |
⭕️ tested | |
✅ meshedge.m |
✅ tested | ⭕️ internalpoint.m |
⭕️ tested | |
✅ meshface.m |
✅ tested | ⭕️ smoothbinvol.m |
⭕️ tested | |
✅ surfacenorm.m |
✅ tested | ⭕️ thickenbinvol.m |
⭕️ tested | |
✅ nodesurfnorm.m |
✅ tested | ⭕️ thinbinvol.m |
⭕️ tested | |
✅ uniqedges.m |
✅ tested | ⭕️ maskdist.m |
⭕️ tested | |
✅ uniqfaces.m |
✅ tested | > Mesh plotting | ||
✅ advancefront.m |
⭕️ tested | ✅ plotmesh.m |
✅ tested | |
✅ innersurf.m |
⭕️ tested | ✅ plotsurf.m |
✅ tested | |
✅ outersurf.m |
⭕️ tested | ✅ plottetra.m |
✅ tested | |
✅ surfvolume.m |
✅ tested | ✅ plotedges.m |
✅ tested | |
✅ insurface.m |
✅ tested | ✅ qmeshcut.m |
✅ tested | |
| > Mesh processing and reparing | > Miscellaneous functions | |||
✅ meshcheckrepair.m |
✅ tested | ⭕️ surfdiffuse.m |
⭕️ tested | |
✅ meshreorient.m |
✅ tested | ⭕️ volmap2mesh.m |
⭕️ tested | |
✅ removedupelem.m |
✅ tested | ⭕️ isoctavemesh.m |
⭕️ tested | |
✅ removedupnodes.m |
✅ tested | ⭕️ getvarfrom.m |
⭕️ tested | |
✅ removeisolatednode.m |
✅ tested | ✅ raytrace.m |
✅ tested | |
✅ removeisolatedsurf.m |
⭕️ tested | ⭕️ linextriangle.m |
⭕️ tested | |
✅ surfaceclean.m |
⭕️ tested | ⭕️ getplanefrom3pt.m |
⭕️ tested | |
✅ getintersecttri.m |
⭕️ tested | ✅ getexeext.m |
✅ tested | |
✅ delendelem.m |
⭕️ tested | ✅ fallbackexeext.m |
✅ tested | |
✅ surfreorient.m |
✅ tested | ⭕️ iso2meshver.m |
⭕️ tested | |
| > Mesh registration | ⭕️ raysurf.m |
⭕️ tested | ||
✅ proj2mesh.m |
⭕️ tested | ⭕️ getoptkey.m |
⭕️ tested | |
✅ dist2surf.m |
⭕️ tested | ✅ rotatevec3d.m |
⭕️ tested | |
✅ regpt2surf.m |
⭕️ tested | ✅ rotmat2vec.m |
⭕️ tested | |
✅ affinemap.m |
⭕️ tested | ✅ varargin2struct.m |
⭕️ tested | |
| > Polyline handling | ✅ jsonopt.m |
⭕️ tested | ||
⭕️ slicesurf.m |
⭕️ tested | ⭕️ mergestruct.m |
⭕️ tested | |
⭕️ slicesurf3.m |
⭕️ tested | ⭕️ orthdisk.m |
⭕️ tested | |
⭕️ polylinelen.m |
⭕️ tested | ⭕️ nestbracket2dim.m |
⭕️ tested | |
⭕️ polylinesimplify.m |
⭕️ tested | ⭕️ memmapstream.m |
⭕️ tested | |
⭕️ polylineinterp.m |
⭕️ tested | ⭕️ aos2soa.m |
⭕️ tested | |
⭕️ closestnode.m |
⭕️ tested | ⭕️ soa2aos.m |
⭕️ tested | |
| > Mesh resampling and optimization | ||||
✅ meshresample.m |
✅ tested | |||
✅ remeshsurf.m |
✅ tested | |||
✅ smoothsurf.m |
✅ tested | |||
✅ sortmesh.m |
⭕... |
