Release v3.1.2.192
Updates
This release ships a built-in MCP server for AI-controllable apps, full UI internationalization with CJK font support, experimental sharp-edge preservation in mesh repair, and 2× faster zip compression across all I/O paths.
MCP server for MeshLib developers 🔥
If your product embeds MeshLib or MRViewer, your application is now controllable by AI agents (Claude Code, Cursor, Codex, etc.) out of the box — no glue code required. The full server infrastructure surfaces across five namespaces:
ui.*— list, click, read, and write UI entries by path.listAllEntriesreturns the whole UI tree in one shot.pressButton/writeValuereturn a precise status (disabled: Nothing to undo,disabled: blocked by modal 'New scene') so agents branch on real UI state rather than guessing.scene.*— CRUD on scene objects by opaque id.getObjectInfo/setObjectState/addObject(from file or base64 bytes) /removeObject/serialize. All mutations push undo-redo history entries, so a single Ctrl+Z reverts multi-field changes atomically.viewer.*,system.*,tools.*— viewer state, system info, and tool invocation namespaces.
The HTTP MCP server and /api/* REST endpoints are built-in — HTTP-native clients connect directly. For stdio-based agents (Claude Code, Cursor, Codex), ship the MRMCPGateway alongside your app: a small stdio↔HTTP proxy that bridges the agent’s stdio MCP transport to the application’s HTTP server. End-user setup is covered in the MCP configuration guide for MeshInspector users.
Internationalization & CJK support 🌏
MRView is now fully localizable:
- Every UI string is exposed through the translation catalog.
- Language selector is always visible in the Ribbon Menu.
- Fonts upgraded for full Chinese / Japanese / Korean coverage.
Mesh Repair
- New
mimicPatchparameter for theBrush,Fix Degeneracies, andFix Self-Intersectionsoperations — an experimental option that aims to preserve sharp corner edges during local repairs. Improves results in many cases, can regress in others. (docs ·FixMeshDegeneraciesParams· self-intersections)
Mesh Boolean
- New
forceBooleanruns boolean operations on closed meshes while ignoring self-intersections inside operand regions, using a graph-cut to separate inconsistent contours. uniteManyMeshesgains aforceCutoption — cuts even where operands self-intersect in the intersecting area, then appliesMeshBuilder::uniteCloseVertices+fillHolesfor a clean union. (docs)
Algorithms & new API
reduceTotalAngle— minimize summed deviation of triangle-triangle angles from a reference plane across a mesh or region.extractAllPaths— companion toextractAllLoops, tracks open (non-closed) paths in addition to loops; ships with helperextractOppositePath.postprocessMeshFromVoxels— the final stage ofrebuildMeshexposed as a standalone function, runnable after any voxel-to-mesh algorithm.mincircleDiameterSq— squared diameter of the minimum enclosing circle for a 2D point set.- Hierarchical mesh segmentation — new
segmentMesh()returns a merge order (GroupOrder) such that the boundaries of the N-segment partition are a strict subset of those of N+1;findSegmentBoundaries()extracts the boundary edge set for any chosen N. Ships with a recommended curvature metricedgeDihedralAngleMetric(), aGraphconstructor that tolerates invalid vertex/edge ids, and a default constructor forHeap. cutMeshregenerates fill plans to avoid multiple edges;MeshDecimateis now robust on degenerate cases and can overcomeMultipleEdgewhile fixing degeneracies, prevent never-ending flip loops, and restore initial flips correctly.
Performance: zip 2× faster
MeshLib switched its zlib backend to zlib-ng, lifting deflate by ~1.5–2× and inflate by ~2–3× with no API changes. The speedup flows through compressZip, decompressZip, and every scene loader that touches .mlsc / zip archives.
Downloads
Binaries for Windows x64, Ubuntu 22/24 LTS (x64 + arm64), Linux vcpkg (glibc 2.28, x64 + arm64), macOS Intel and Apple Silicon, and Emscripten (single-thread, multi-thread, Wasm64). macOS Clang builds now use system libc++; Linux ABI compatibility refined.
Full changelog: GitHub release v3.1.2.192.