May 6, 2026

Release v3.1.2.192

MeshLib v3.1.2.192 release banner
Summary

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. listAllEntries returns the whole UI tree in one shot. pressButton / writeValue return 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 mimicPatch parameter for the Brush, Fix Degeneracies, and Fix Self-Intersections operations — 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 forceBoolean runs boolean operations on closed meshes while ignoring self-intersections inside operand regions, using a graph-cut to separate inconsistent contours.
  • uniteManyMeshes gains a forceCut option — cuts even where operands self-intersect in the intersecting area, then applies MeshBuilder::uniteCloseVertices + fillHoles for 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 to extractAllLoops, tracks open (non-closed) paths in addition to loops; ships with helper extractOppositePath.
  • postprocessMeshFromVoxels — the final stage of rebuildMesh exposed 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 metric edgeDihedralAngleMetric(), a Graph constructor that tolerates invalid vertex/edge ids, and a default constructor for Heap.
  • cutMesh regenerates fill plans to avoid multiple edges; MeshDecimate is now robust on degenerate cases and can overcome MultipleEdge while 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.