QtMeshEditor β€” Mesh Category Classifier

A tiny point-cloud category classifier (PointNet: per-point MLP + max-pool + linear head, ~0.1 MB) that decides whether a mesh is a body (character/creature), vegetation, vehicle, or building β€” exported to ONNX for local inference via ONNX Runtime.

This is the Auto dispatcher for QtMeshEditor's category-specialised mesh part-segmentation family (epic #818, Track B2): the editor samples the mesh into a point cloud, runs this classifier, then dispatches to the matching specialist β€” body, vegetation, vehicle, building. When this model is unavailable the editor falls back to the body model (its pre-#818 behaviour). Aggregate download source used by the app: QtMeshEditor-models (segment/meshseg_category.onnx).

Model

  • Input: a sampled point cloud float32 [1, N, 3] (normalised to a centred unit box; +Y up).
  • Output: logits float32 [1, 4] over (body, vegetation, vehicle, building); argmax β†’ category.

Training data & license

Trained from scratch on the same permissive corpus as the segmentation family: procedurally generated synthetic bodies / trees / vehicles / buildings we own (category labels are free β€” they come from which generator produced the cloud), plus CC0 rigged characters (Quaternius packs) mined as extra real body samples. Weights released under CC-BY-4.0; please credit QtMeshEditor.

Evaluation

  • Held-out validation accuracy: 97.5% (4-way, on the v1.1 hardened data: full-random yaw + detached-part augmentation β€” a strictly harder task than v1.0's 99.1% near-canonical set).
  • Robustness probe (20 trials each, synthetic cars): detached wheels 20/20 (v1.0: 18), detached + 45Β° yaw 19/20 (v1.0: 5), detached + 90Β° yaw 20/20 (v1.0: 3); no regression on any category at random yaw.

Reproducing

scripts/export-meshseg-onnx.py --category classifier --real-data <mined/> in the QtMeshEditor repo (one-time, offline; the app never runs Python). Strategy + decision record (why several specialists + a classifier instead of one multi-category softmax): docs/MESH_SEGMENTATION_STRATEGY.md.

Versions

  • v1.1.0 (current) β€” yaw-invariance + detached-part robustness: every training cloud is spun by a full random yaw (category is a yaw-invariant question; v1.0 inherited the segmenters' near-canonical augmentation), and minority-part clusters are randomly offset (real exports drop wheels/parts as separate nodes β€” the verified real-world failure: a car with detached wheels classified as body).
  • v1.0.0 β€” initial release (#818 Track B2).
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support