S4R: Scaling for Rigid-Body Interpenetration Resolution

ACM Transactions on Graphics (SIGGRAPH Asia 2026)

1MIT CSAIL 2Xiamen University 3The University of Hong Kong 4Macau University of Science and Technology 5HKUST 6UT Dallas 7Texas A&M University

* Equal contribution. Corresponding author.

S4R resolves one thousand interpenetrating Kubric assets arranged to spell SIGGRAPH ASIA and converts cluttered 3D assets into a simulation-ready scene.
S4R resolves severe rigid-body interpenetrations at scale and produces simulation-ready scenes. Left: Progressive scaling of 1,000 Kubric assets arranged to spell “SIGGRAPH ASIA,” from an interpenetrating initialization to a penetration-free configuration. Right: S4R efficiently converts cluttered 3D assets into simulation-ready scenes for downstream robot policy training.

Abstract

Removing static rigid-body overlaps by shrinking and restoring objects.

Rigid-body interpenetration frequently occurs in procedurally assembled and generated scenes and must be removed before downstream simulation. We present S4R, a scale-continuation method for static interpenetration repair. S4R first uniformly shrinks each body about a fixed reference center to a small initial scale—a state that is evaluator-checked and separated in every reported scene—and then restores full scale through a sequence of minimum-norm convex contact quadratic programs (QPs) that maintain the linearized separation margin during continuation. A conservative scale-event bound and frozen-witness gap predictions cut the number of exact mesh queries; the continuation then ends with a full-scale evaluator check and bounded tail refinement. We evaluate S4R on Kubric [Greff et al. 2022], HY3D-Bench [Team Hunyuan3D et al. 2026], and Thingi10K [Zhou and Jacobson 2016] using a shared mesh-level evaluator and a unified per-scene timing protocol. Extensive experiments demonstrate the effectiveness and efficiency of S4R. Across all three benchmarks, S4R reaches zero reported penetration with displacement that stays small and nearly independent of scene size, at the lowest wall time among the compared methods. A GPU implementation extends these results to large-scale scenes. Project Page: https://frank-zy-dou.github.io/projects/S4R/index.html

Method

Separate objects at a small scale, then restore their size in controlled steps.

S4R first shrinks every body until the scene has no overlap. It then restores the bodies to full size in small steps. At each step, an optimization moves only the bodies that are touching and keeps the movement as small as possible. Exact mesh checks verify the result and remove any remaining overlap at full size.

Method overview showing initial overlap, shrinking, progressive scaling with repeated contact solves, and the final resolved layout.
Method overview. S4R shrinks an interpenetrating layout to a separated initial scale, restores full scale through minimum-norm contact QPs, and uses a final evaluator pass with bounded tail refinement to remove residual contacts.
01

Start without overlap

Shrinking the bodies first creates a separated scene, even when the original overlaps are severe.

02

Restore size step by step

Each step increases the body size and moves touching objects only as much as needed to keep them apart.

03

Check the final scene

Fast distance estimates reduce repeated collision checks, while an exact mesh check verifies the full-size result.

Experiments

Every method uses the same final collision check and is timed from scene setup to completion.

Evaluation geometry. The experiments cover household objects, generated 3D assets, and artist-created models for 3D printing.

  • Kubric. The main benchmark uses closed household-object meshes with varied shapes and controlled scene density.
  • HY3D-Bench. Text- and image-generated 3D assets test a wider range of object shapes.
  • Thingi10K. Artist-created printable models test whether the method works beyond the curated scene collection.
Representative meshes from Kubric, HY3D-Bench, and Thingi10K.

Main comparison

Method N = 40 N = 100
Pen. (pairs)RMSD (scene units)Time (s) Pen. (pairs)RMSD (scene units)Time (s)
CPU methods (one 14-core socket)
AVBD-OBB (tuned)01.332.202.348.1
AVBD-OBB (official)02/34.461.301.153.3
Drake-Ipopt (hull)00.02259701/30.0251/36,5181/3
QP/LCP00.0380.500.0391.7
PD-PGS00.0281.100.0273.4
Soft-Pen.00.0307.700.03132.5
S4R (CPU, ours)00.0360.200.0350.5
GPU methods (1× RTX 2080 Ti)
ISIR00.221300.2415
S4R-Warp (ours)00.0365.900.0355.9

Table 1. Main comparison on Kubric. Three-seed means at N = 40 and 100. Pen. counts negative-score body pairs under the shared mesh evaluator; RMSD measures reference-center displacement. Within each hardware tier, bold marks the best value and underline marks the runner-up. Superscript fractions report completed seeds. Drake uses a tightened bound and a 7,200 s budget. and denote the tuned and released AVBD-OBB configurations.

Scaling study

N CPU (single socket) GPU (1× RTX 2080 Ti)
S4R (ours) QP/LCP PD-PGS S4R-Warp (ours) ISIR
RMSDTime (s) RMSDTime (s) RMSDTime (s) RMSDTime (s) RMSDTime (s)
400.0360.20.0380.50.0281.10.0365.90.2213
1000.0350.50.0391.70.0273.40.0355.90.2415
2000.0351.10.0393.60.0268.60.0346.20.2225
5000.0343.20.04011.70.02436.50.0337.40.1997
1,0000.0359.60.04031.20.02570.70.03410.60.153361
2,0000.03726.90.04289.20.0251640.03622.30.112818
5,0000.0371380.0422860.0255200.03697.5T/O

Table 2. Scaling on Kubric. Three-seed means with setup-and-solve time. Within each hardware tier, bold marks the best RMSD and time per row and underline marks the runner-up; the two-method GPU tier marks only the best. Pen. is omitted because every displayed result reports zero penetration. ISIR exceeds the per-seed budget at N = 5,000.

Log-log plots of wall time versus number of rigid bodies for CPU and GPU methods.
Scaling study. Across the tested scene sizes, the measured runtimes of S4R and S4R-Warp stay below the quadratic guide shown in the plots. The figure reports measurements only and does not predict runtime beyond this range.

Cross-dataset comparison

Dataset Method N = 500 N = 1,000 N = 2,000
Pen.RMSDTime (s) Pen.RMSDTime (s) Pen.RMSDTime (s)
HY3D-BenchS4R00.0215.800.02012.100.02130.3
QP/LCP00.02213.600.02233.900.02272.3
PD-PGS00.01328.500.01376.700.013189
AVBD-OBB8.71.1237046.70.935210104.70.935730
ISIR00.2125400.19214300.162466
Thingi10KS4R00.0255.200.02610.600.02631.1
QP/LCP00.02614.600.02734.500.02881.4
PD-PGS00.01643.800.01711500.017272
AVBD-OBB14.01.3327242.31.265221134.01.234872
ISIR00.1626500.16022200.131777

Table 3. Cross-dataset comparison. Three-seed means from one consistent rerun with the same optimized detection for every method. Within each dataset, bold marks the best value and underline marks the runner-up; ties at zero penetration are all bold. AVBD-OBB reports mesh-level scores for poses produced with OBB collision proxies.

Qualitative Results

Each scene is shown from its initial overlap through intermediate sizes to the checked full-size result.

Spherical-spawn stress test comparing initial scenes, S4R, and QP/LCP across increasing body counts.
Spherical-spawn stress test. S4R produces more compact results than QP/LCP at N = 100, 500, 1,000, and 2,000. Both methods remove all overlaps.
Four benchmark scenes shown at initial, early, middle, late, and final stages of S4R.
S4R along the scale path. Kubric (N = 80), HY3D-Bench (N = 60), Thingi10K (N = 80), and Kubric (N = 300) scenes progress from the interpenetrating spawn through scales 0.3, 0.6, and 0.9 to the full-scale result. Every scene ends with zero reported penetration.

Position and rotation optimization

The main experiments move objects without rotating them. An optional version also allows small rotations. Rotation can reduce how far the objects need to move, but it requires more collision checks and takes longer. Tables 4–6 compare these two settings.

NMethodPen. (pairs)RMSDTime (s)
403-DOF (translation only)00.0360.17
6-DOF (translation + rotation)00.0342.3

Table 4. 6-DOF versus translation-only QP on Kubric. Three-seed mean at N = 40. Rotation matches translation-only RMSD within seed variance but adds approximately 13× wall-time overhead.

Spawn3-DOF (RMSD / Time)6-DOF (RMSD / Time)6-DOF : 3-DOF
Tight0.0869 / 2.02 s0.0798 / 9.60 sRMSD 0.92×, time 4.8×
Loose0.0290 / 1.59 s0.0262 / 3.71 sRMSD 0.90×, time 2.3×

Table 5. Rotation as a packing lever. Eight-seed means on Kubric at N = 40; every cell reports zero penetration. Tight spawns are 2.5× smaller per axis than the main-benchmark loose spawns. The 6-DOF variant lowers RMSD on all eight seeds at higher wall time.

MethodPen. (pairs)maxPenRMSDTime (s)
3-DOF (translation only)00.0000.0330.015
6-DOF (translation + rotation)00.0000.0340.023

Table 6. Chain-link stress test. Averages over three runs with four linked rings. Both settings remove all overlap and produce nearly identical movement; allowing rotation takes approximately 1.5 times longer.

Applications

Repair generated assets, prepare scenes for simulation, and edit separated layouts.

For tabletop scenes, S4R keeps every object on the same flat surface while allowing it to slide and rotate around the vertical axis. The final full-size arrangement is checked using the same meshes shown in the rendered results.

Generated-asset repair. S4R gradually restores the objects to full size while keeping them upright.
Eight generated tabletop scenes progressing from tilted interpenetrating states to upright collision-free layouts.
Upright-on-plane generated-asset repair. Eight scenes progress from tilted, mesh-interpenetrating initial states through 30%, 60%, and 90% inflation to upright, full-scale results.

Generated-asset benchmark

Method N Init Pen. (pairs) Final Pen. (pairs) RMSD Time (s)
S4R1008700.0391.8
50049100.04313.9
1,0001,03100.04737.6
QP/LCP1008700.0415.3
50049100.051125
1,0001,03100.051457
PD-PGS1008700.0367.7
50049100.040137
1,0001,03100.042519

Table 7. Synthetic asset layout repair. Three-seed averages on the five-mesh solver-usable subset of the 88-asset pool. All methods use the same scenes and reach zero final penetration. S4R is fastest at every N and has RMSD comparable to the optimization baselines. Bold marks the best value and underline marks the runner-up.

Physics-engine initialization

Large overlaps can make simulated objects shoot apart or prevent a physics engine from starting. S4R provides overlap-free starting positions for MuJoCo, PyBullet, and Isaac Gym. In the paper experiments, the original YCB scenes eject objects, while the scenes repaired by S4R remain stable.

EngineRaw scene (m/s)After S4R (m/s)
MuJoCo 3.107.80.000
PyBullet 3.2.712.50.001
Isaac Gym (PhysX)230.60.000

Rigid-body engines on an interpenetrating scene. Peak body speed over a one-second rollout from an interpenetrating YCB layout and from the same layout after S4R. Values are three-seed means for 50 bodies with gravity disabled, so the measured motion comes from contact response alone.

Application Extension: Editable Scale-Space

The separated small-scale state can also serve as an editing stage: a user rearranges the objects while they are apart, then lets S4R restore them to full scale.

Four-stage editable scale-space workflow showing initial overlap, S4R shrinking, user editing, and full-scale restoration.
S4R as an editable scale-space. Two complex 2D shapes initially overlap; after shrinking, the user can move the red object to the right and keep the green object on the left, then restore the scale to obtain a separated layout.

Scope and Limitations

S4R repairs a fixed scene; it does not simulate moving contacts over time. It may fail when objects cannot be restored from the shrunken arrangement without overlap, for example when their centers nearly coincide, one object is trapped inside another, or the scene is too tightly enclosed. The tabletop version assumes one flat support surface and does not handle stacking, lifting, or tipping.

Citation

@article{dou2026s4r,
  title   = {{S4R}: Scaling for Rigid-Body Interpenetration Resolution},
  author  = {Dou, Zhiyang and Zhao, Ang and Peng, Chen and Guo, Minghao
             and Wu, Haixu and Lin, Cheng and Liu, Yuan and Yao, Junfeng
             and Guo, Xiaohu and Wang, Wenping and Matusik, Wojciech},
  journal = {ACM Transactions on Graphics},
  year    = {2026}
}