Read the paper

ACD Context

  • ACD: approximate a dense mesh with a few convex pieces (collisions for games/VR/robotics sim). Objectives: 1) minimize # of components , 2) minimize total concavity
  • Prior methods: concavity metric + plane-selection strategy. Greedy (V-HACD, NavACD) is fast but leaves redundant pieces. CoACD uses MCTS over plane cuts which is better, but simulates many exact cuts per step which is slow
  • RL-ACD: learning a policy that predicts the cutting plane

Pipeline

  • State = current set of pieces . Action = (which piece & plane, ), transition = boolean cut:
  • Reward (hull volume removed normalized by the whole mesh) + a completion bonus at the end so it stops cutting
  • Policy only sees , never (POMDP obs ). This is fine because reward adds across pieces so other pieces don’t change the best cut for
  • State encoder: sample 2048 points on and on , normalize, run through frozen pre-trained I2P-MAE
  • Discrete action space, fixed candidate set with choices (a) equidistant axis-aligned XYZ planes (b) PCA-axis-aligned planes (c) concave-edge planes
  • Same for every piece, pieces are normalized before encoding so every piece has the same candidates. DQN: output heads, head = . Only encode once, one MLP pass, argmax
  • Deploy: whole mesh starts as one piece. In each step encode every piece, one MLP pass each, take the global best and perform that cut, repeat until every piece’s concavity < threshold. This is greedy but over a quantity that accounts for the future, , instead of immediate concavity reduction like priors
  • Q-net is a small 4-layer MLP with in, Q-values out. Soft Q-learning (soft-max instead of max in the Bellman target)

Baseline

V-HACD, NavACD (greedy) + CoACD (MCTS)

Results

Table 1. ShapeNet decomposition performance (format: meanmax Β±std). Parameters: 𝑑𝑐=convexity threshold(%), π‘Ÿ=navigation space’s radius(%), 𝑑=navigation spaces’s tolerance distance(%). Metrics: π·β„Ž=Hausdorff distance, #P=part count, #F=face count (k=Γ—103 ), 𝑇 =computation time

Fig. 6. Comparison with V-HACD using the same number of decomposed parts. Numbers below each result indicate the number of convex parts, Hausdorff distance, face number, and decomposition time (𝑠). Close-up views highlight decomposition quality.

Dual-state Bellman loss

We don’t use standard Q-learning because

  • yields exactly one next state when we should have two (two children from slice)
  • The true = all of which we do not want to encode

RL-ACD

  • Assume value of a pile of pieces = sum of each piece’s value, . Cutting doesn’t touch the others, so they cancel out of the target. Therefore we can have the network look at one piece at a time
  • Score of a piece = score of its best available cut,
  • Dual-state Bellman loss:
  • , same. This weights bigger (by volume) halves more
  • Halves don’t overlap so , which is the contraction condition converges. and trains faster than one shared
  • Everything else is deep soft Q-learning

MCTS

  • Every step simulates exact cuts (slice mesh, hull children) for many candidate planes over multiple lookahead steps to find the best cut
  • Cost = # candidates * depth * exact-cut
  • Nothing carries over between meshes

RL policy

  • Exact cuts happen during training and get stored in a replay buffer. At runtime, one point cloud gets encoded + one MLP pass per piece, then best cut is chosen using Q-values, one exact cut executed
  • A bigger candidate plane set is free, just more MLP outputs
  • The Q value already accounts for the lookahead since the Bellman target folds in the future value of the two children, instead of simulating