QtMeshEditor β€” Vehicle Part Segmentation

A point-cloud part-segmentation network (PointNet++-style) that labels each point of a vehicle mesh (car / truck / plane / helicopter) as vehicle_body, wheel, window, wing, or rotor (propeller), exported to ONNX for local inference via ONNX Runtime.

One of the category-specialised segmentation models built for QtMeshEditor (epic #818, Track B2) β€” a free, open-source 3D mesh & animation editor. The app auto-detects the mesh category with a companion point-cloud classifier and dispatches to this model for vehicles; siblings: body, vegetation, building. Aggregate download source used by the app: QtMeshEditor-models (segment/meshseg_vehicle.onnx).

Model

  • Input: a sampled point cloud float32 [1, N, 3] (normalised to a centred unit box; +Y up, vehicle nose facing +Z).
  • Output: per-point class logits over 6 channels (unknown, vehicle_body, wheel, window, wing, rotor); argmax β†’ label, scattered back to mesh vertices/faces by nearest sampled point.
  • Architecture: shared per-point MLP + two kNN local-aggregation blocks (in-graph cdist+topk, ONNX-exportable) + a global max-pooled feature; ~0.78 MB. Trained at the app's inference sample size (4096 points).

Training data & license

Trained from scratch, 100% on procedurally generated synthetic vehicles we own (no third-party data at all): parametric cars/trucks (body + cabin + proud window panes + 4–6 wheels), planes (fuselage, main/tail wings, vertical fin, optional nose prop + landing gear + canopy), and helicopters (body + tail boom, main/tail rotors, skids, canopy) β€” labels are exact by construction. Weights released under CC-BY-4.0; please credit QtMeshEditor.

Evaluation

  • Held-out synthetic validation accuracy: 92.8% (per-point, unknown masked; v1.1's harder detached-part-augmented data β€” v1.0 scored 93.5% on the easier all-attached set). Real-world CC0 vehicle packs are the planned next data slice (mined via submesh/material-name labels β€” "Wheel_FL", "glass", …).

Reproducing

scripts/export-meshseg-onnx.py --category vehicle in the QtMeshEditor repo (one-time, offline; the app never runs Python). Strategy + roadmap: docs/MESH_SEGMENTATION_STRATEGY.md.

Versions

  • v1.1.0 (current) β€” detached-part robustness: wheel/part clusters are randomly offset during training (real exports often ship wheels as separate nodes below the hull β€” the verified real-world failure case), so detached wheels still label as wheel.
  • v1.0.0 β€” initial synthetic-only 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