Skip to content

3.25.0

Choose a tag to compare

@fernandotonon fernandotonon released this 30 Jul 01:06

QtMeshEditor 3.25.0

This release completes the Paint v2 layer stack, adds stamp/tiling texture brushes, extends PartOps with explode/join, and cleans up AI segmentation splits for print-ready parts.

🎨 Paint v2 — texture layers (#546)

Replace the single-buffer MVP with a proper layer stack for texture painting.

  • Named, reorderable layers with 8 blend modes (Normal, Multiply, Screen, Overlay, Add, Subtract, Soft Light, Hue), per-layer opacity, visibility, solo, and lock
  • Inspector Layers panel with thumbnails, add / duplicate / move / merge / flatten / delete
  • Live composite during strokes; per-layer stroke undo + structural layer-op undo
  • MVP migration: existing painted textures become Layer 0 on first use — no data loss
  • Export prompts to flatten multi-layer sessions before writing the texture to disk
  • Fixes UV preview multi-stroke lag (stamp spacing reset + immediate GPU upload in the 2D editor)

🖌️ Paint v2 — stamp & tiling brushes (#545)

Builds on Slice A gradient ramps with image-based brush footprints.

  • Stamp mode: spacing, scatter, size/opacity jitter, rotation; 6 bundled stamp PNGs under media/paint/
  • Tiling mode: Wood, Brick, and other repeating sources with scale, rotation, and UV offset
  • Custom stamp/tiling import via drag-and-drop into <AppData>/paint/; rename and delete supported
  • Gradient ramps can modulate stamp colour in the brush portal

🧩 PartOps — explode & join (#862)

Blender-style workflow for segmented meshes (after Split into Parts from 3.24.0).

  • Explode: split a multi-submesh entity into independent, movable scene nodes, pushed outward by a configurable distance
  • Join: fuse a multi-selection of part nodes back into one mesh, baking each node's world transform into the vertices
  • Object-mode Inspector section with logarithmic distance slider; fully undoable (Ctrl+Z)
  • Skeleton reconciliation on join is not attempted — merged output is static geometry

✂️ Cleaner AI segmentation splits (#863)

Two post-labelling cleanup passes (default ON) that run on both ONNX and geometric segmentation:

  • De-island: reabsorbs small floating face fragments at part junctions into the neighbouring part
  • De-fringe: shaves ragged zigzag boundary teeth for cleaner torso/limb seams
  • Level leg cuts: pools leg↔torso boundary heights across both legs and applies a shared median cut — fixes lopsided leg splits from asymmetric model output (arms untouched)

📷 Performance Capture on Linux (#927)

Snap and .deb installs can now access the webcam for mocap preview.

  • Snap: camera plug + bundled FFmpeg libs + corrected Qt multimedia plugin paths
  • One-time setup on Snap: snap connect qtmesheditor:camera
  • Status line guides users when permission is missing

🛠️ Other

  • QtMesh Cloud account badges formatted as a table in the welcome UI

Install: Releases · Windows installer / portable zip · macOS .dmg · Linux .deb · Snap

Cross-platform: Windows, Linux, macOS. Full CLI docs: qtmesh --help and in-repo CLAUDE.md.