Skip to content

pysi2mesh v0.4.2

Latest
Compare
Choose a tag to compare
@fangq fangq released this 31 Jul 06:04
· 6 commits to main since this release

pyiso2mesh - One-liner 3D Surface and Tetrahedral Mesh Generation Toolbox


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