Deformable Contact-Aware 3D Object Placement
Abstract
Current language-guided 3D object placement typically predicts a rigid 6-DoF pose, ignoring the physical reality that indoor placements are dictated by contact. Consequently, predicted poses often float, interpenetrate supports, or fail to deform soft surfaces. We propose Deformable Contact-Aware Placement (DCAP), a framework that reframes placement as a drop-to-equilibrium process. Rather than predicting a static pose, DCAP constructs a semantic release state that specifies the drop location, object scale, and deformable components, allowing a coupled rigid-deformable simulator to settle the object under gravity and friction. This explicitly separates semantic intent from physical realization. Evaluated on a benchmark of 2,063 prompt-asset-scene cases, DCAP significantly outperforms static baselines. On standard placements, it improves VLM Physics & Naturalness by 21.2 points and human preference by 26.5 points over the strongest raw rigid baseline, while reducing mean penetration depth by 72.3%. Compared to simulated rollout baselines, DCAP reduces residual speed by 72.1%. Ultimately, our results prove that physically accurate 3D placement requires modeling semantic intent and physical realization as strictly separate processes.
Figures & tables
| Component | Module | Role |
|---|---|---|
| Support grounding and scale prior | Infer the intended support category and a physically meaningful object scale | |
| Segmentation and parts | Identify the support instance and decompose it into usable semantic parts | |
| Three-candidate VLM orientation | Select a coarse release orientation from prompt-conditioned rendered candidates | |
| Ray-cast anchoring | Convert the prompt into a release point above the target region | |
| Materials and split | Assign discrete material values and rigid/deformable roles | |
| Thin-aware particle filling | Initialize a contact-ready deformable particle set |
| Aggregate quality | Controlled physics view | |||||||||||
| Method | VLM | Human | Pen. | Contact | Spd. | Conv. | Contrast | Change | VLM P/N gain | Pen. drop | Final conv. | Final time |
| P/N | P/N | cm | cm/s | cm | s | |||||||
| FirePlace raw | 64.0 | 50.1 | 1.48 | 0.65 | n.a. | n.a. | FirePlace raw | static ref. | ref. | ref. | n.a. | 14.6 |
| PlaceIt3D raw | 60.6 | n.a. | 1.70 | 0.62 | n.a. | n.a. | PlaceIt3D raw | static ref. | ref. | ref. | n.a. | n.a. |
| LayoutGPT raw | 49.7 | n.a. | 2.31 | 0.47 | n.a. | n.a. | FP raw +rigid | rigid rollout | +2.7 | 0.38 | 0.61 | 38.2 |
| Holodeck raw | 54.2 | n.a. | 2.05 | 0.53 | n.a. | n.a. | FP raw +def. | deform. rollout | +8.7 | 0.73 | 0.71 | 86.9 |
| Human forced-choice results | Objective diagnostics | ||||||||
| Comparison | Axis | DCAP | Baseline | Diff. | Method | Pen. | Contact | Speed | Conv. |
| cm | cm/s | ||||||||
| DCAP vs FP raw | RP | 61.2 | 56.4 | +4.8* | FirePlace raw | 1.48 | 0.65 | n.a. | n.a. |
| DCAP vs FP raw | P/N | 76.6 | 50.1 | +26.5* | FP+rigid | 1.10 | 0.70 | 6.8 | 0.61 |
| DCAP vs FP+def. | RP | 61.2 | 55.6 | +5.6* | FP+def. | 0.75 | 0.79 | 4.1 | 0.71 |
| DCAP vs FP+def. | P/N | 76.6 | 63.6 | +13.0* | DCAP static | 0.86 | 0.58 | n.a. | n.a. |
| Contact-regime placement quality | Stress feasibility | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Regime | Cases | FP raw | FP+def. | DCAP rigid | DCAP full | Stress statistic | Infeas. | Feas. | Summary |
| P/N | P/N | P/N | P/N / Conv. | ||||||
| Soft | 869 | 60.4 | 70.4 | 74.7 | 88.2 / 0.89 | Pred. reject | 62 | 12 | 74 |
| Mixed | 550 | 64.8 | 74.0 | 78.0 | 84.5 / 0.84 | Pred. feasible | 14 | 52 | 66 |
| Rigid | 504 | 69.2 | 75.2 | 80.0 | 80.9 / 0.80 | Reject P/R/F1 | 0.84 | 0.82 | 0.83 |
| Standard avg. | 1,923 | 64.0 | 72.7 | 77.0 | 85.2 / 0.85 | OOD true accept | – | 0.81 | 52/64 |
| Ablation and sensitivity results | Runtime and sensitivity | ||||||
|---|---|---|---|---|---|---|---|
| Variant / setting | P/N | Pen. | Conv. | Hard fail | Stage / setting | Value | Note |
| DCAP full | 84.1 | 0.42 | 0.84 | 0.039 | Full pipeline | 107.5 s | total mean |
| No thin-aware fill | 76.3 | 0.58 | 0.75 | 0.094 | Median pipeline | 88.4 s | median |
| No material-specific map | 78.0 | 0.55 | 0.77 | 0.081 | Simulation | 54.2 s | main bottleneck |
| Rigid support only | 74.5 | 0.64 | 0.72 | 0.103 | Segmentation + parts | 18.6 s | scene processing |
| Rigid object only | 79.0 | 0.57 | 0.78 | 0.073 | Thin-aware filling | 12.8 s | particle count |
Appendix figures & tables17 assets
Supplementary material from the paper’s appendix.
Appendix
| Component | Setting |
|---|---|
| LLM parsing, target-part selection, material mapping | gpt-5.2 ; reasoning effort low; max output 512 tokens; structured JSON output; seed 0 where supported; two schema-repair retries before fallback |
| Orientation VLM inside DCAP | gpt-5.2 ; reasoning effort low; max output 256 tokens; three rendered candidates; no access to final evaluation scores |
| VLM evaluator | gemini-3-pro-preview ; temperature 0; top-p 1.0; max output 512 tokens; randomized method order; separate prompts from the orientation module |
| Segmentation backend | OpenScene mesh features, Segment Anything ViT-H masks, and Mask2Former panoptic labels fused from 48 RGB-D render views; fallback to geometric support extraction when confidence is low |
| Renderer | Blender 4.2.3 with Eevee Next rasterization; 1024 1024 PNGs for VLM scoring and 768 768 panels for human trials; fixed focal length, exposure, and environment light across methods |
| Simulator | Genesis 0.2.1-compatible rigid–MPM backend with custom two-way frictional contact; Python 3.11, CUDA 12.4, single-precision GPU kernels |
| Object category | Min (m) | Max (m) |
|---|---|---|
| Ball | 0.04 | 0.30 |
| Pillow | 0.30 | 0.80 |
| Plush toy | 0.12 | 0.65 |
| Towel | 0.35 | 1.60 |
| Shirt / clothing | 0.45 | 1.20 |
| Dumbbell | 0.20 | 0.55 |
| Material ID | Density | Young’s modulus | Poisson ratio | Static friction | Dynamic friction |
|---|---|---|---|---|---|
| soft foam | 35 | 0.08 | 0.30 | 0.70 | 0.55 |
| firm foam | 80 | 0.35 | 0.30 | 0.75 | 0.60 |
| cotton fabric | 250 | 0.02 | 0.35 | 0.65 | 0.50 |
| wool fabric | 180 | 0.015 | 0.35 | 0.70 | 0.55 |
| leather | 860 | 12 | 0.35 | 0.60 | 0.45 |
| rubber | 1100 | 5 | 0.49 | 0.95 | 0.80 |
| Base category | Base found | Parts found | Fallback rate | Common failure |
|---|---|---|---|---|
| Bed | 90.5% | 83.7% | 7.1% | Blanket/mattress boundary |
| Sofa | 87.8% | 79.4% | 9.5% | Cushion vs. seat merging |
| Chair | 85.2% | 75.6% | 11.0% | Thin legs and back occlusion |
| Shelf | 88.6% | 72.9% | 8.3% | Small boards and clutter |
| Table / desk | 92.1% | 80.8% | 5.6% | Merged tabletop objects |
| Floor / carpet | 94.4% | 84.0% | 4.2% | Carpet/floor boundary |
| Module | Trigger | Recovery rule |
|---|---|---|
| LLM JSON output | Invalid schema or missing required key | Retry twice with parser error; if still invalid, use category prior and mark low confidence |
| Support grounding | Confidence or no support mask above 0.55 | Expand synonyms, rerun support query, then choose largest upward-facing compatible support if available |
| Scale prior | Predicted longest dimension outside category range | Clamp to Table 7 ; if clamping changes size by , mark hard upstream failure |
| Target part / anchor | Invalid part, unavailable anchor, or confidence | Choose largest upward-facing compatible part and center anchor |
| Orientation | VLM confidence or tied top candidates | Use canonical stable orientation with lowest estimated center of mass |
| Material mapping | Confidence or unknown label | Use dictionary match if possible; otherwise default unknown and record material warning |
| Submodule | Metric | Raw | Post-fallback |
|---|---|---|---|
| Base support selection (LLM) | Top-1 accuracy | 91.8% | 96.4% |
| Target sub-part selection (LLM) | Accuracy | 84.6% | 91.2% |
| Size prior sanity (LLM) | Within valid range | 93.2% | 98.1% |
| Material mapping (LLM) | Human-agreement / safe default | 81.4% | 94.7% |
| Orientation (VLM) | Accuracy / consistency | 88.9% | 92.1% |
| Segmentation (base instance) | Success rate | 86.7% | 93.8% |
| Parameter | Value |
|---|---|
| Simulator / version | Genesis 0.2.1-compatible rigid–MPM backend with custom two-way contact kernels |
| Global timestep | 1/240 s |
| Substeps | 8 |
| Gravity | 9.81 m/s 2 along the negative vertical axis |
| Initial clearance | 0.03 m |
| Rigid–deformable coupling | Two-way frictional contact with velocity projection |
| Diagnostic | Tolerance |
|---|---|
| Mean penetration depth | cm |
| Target drift | of the support OBB diagonal |
| Support contact ratio | |
| Residual speed | cm/s, with component-specific convergence thresholds in Table 12 |
| Item | Setting |
|---|---|
| Reported statistic | Mean wall-clock time over the 1,923 standard placement cases |
| Included stages | LLM/VLM API latency, scene rendering, segmentation lookup, target anchoring, material mapping, particle filling, rollout, diagnostics, and final rendering |
| Excluded stages | One-time TSDF/Poisson reconstruction, dataset download, manual benchmark annotation, and cached asset normalization |
| Parallelism | One case per GPU during simulation; CPU preprocessing uses 16 workers; model calls are issued synchronously per case for deterministic logs |
| Timing source | Python wall-clock timers around each pipeline stage, with CUDA synchronization before and after simulation kernels |
| Item | Setting / outcome |
|---|---|
| Source scenes | 214 candidate indoor reconstructions |
| Accepted scenes | 186 simulation-ready scenes |
| Rendered views | 120 RGB-D views per scene on a hemispherical indoor camera path |
| Mesh extraction | TSDF fusion followed by screened Poisson meshing at 2 cm nominal resolution |
| Hole repair | Fill bounded holes below 0.15 m diameter |
| Component filtering | Remove disconnected components below 0.5% of scene area |
| Support group | Cases | Scenes | Assets | Coverage focus |
|---|---|---|---|---|
| Bed / mattress | 462 | 42 | 31 | Soft supports; heavy rigid and plush objects |
| Sofa / cushion | 407 | 37 | 29 | Soft cushions, arms, backs, and seated supports |
| Chair / seat | 310 | 31 | 23 | Mixed rigid–soft seats and backs |
| Shelf / table / desk | 504 | 42 | 34 | Rigid supports, narrow anchors, and tabletop controls |
| Floor / carpet | 240 | 24 | 20 | Mixed carpet and open-floor placement |
| OOD / infeasible | 140 | 10 | 18 | Unusual feasible prompts and annotated impossible cases |
| Split / regime | Cases | Use in evaluation |
|---|---|---|
| Standard placement split | 1,923 | Feasible in-distribution cases used for aggregate placement quality, VLM scoring, human preference, and objective physical diagnostics |
| Soft-contact regime | 869 | Cases dominated by compliant support or object behavior, such as mattresses, cushions, blankets, towels, clothing, and plush objects |
| Mixed-contact regime | 550 | Cases involving both rigid and compliant contact, such as chairs, carpeted floors, and partially soft supports |
| Rigid-contact regime | 504 | Rigid-support controls such as shelves, tables, desks, books, balls, and stable tabletop placement |
| Stress split | 140 | OOD or infeasible cases evaluated separately for feasibility behavior |
| Feasible OOD | 64 | Unusual but physically satisfiable prompts; returned feasible placements receive diagnostics |
| Item | Setting |
|---|---|
| Renderer | Blender 4.2.3, Eevee Next rasterization, ambient occlusion enabled |
| Resolution | 1024 1024 PNGs for VLM scoring; 768 768 panels for human trials; lossless PNG storage |
| Camera set | Five fixed canonical views per case: overview, left oblique, right oblique, elevated front, and target close-up |
| Lighting | Constant HDRI-style environment light plus weak area fill; no method-specific shadows or retouching |
| Normalization | Same object scale, material color, target support mesh, and camera intrinsics across all compared methods |
| Blinding | Human and VLM comparison panels randomize left/right order and omit method names |
| Method | Main adaptation | Collision handling | Notes |
|---|---|---|---|
| FirePlace reimplementation | Same object scale as DCAP; upward-surface sampling and plausibility scoring | Reject candidates with SDF penetration above 2 cm; no deformable settling | Strongest rigid placement baseline |
| LayoutGPT | Abstract layout coordinates mapped to scene OBB anchors | Project to nearest valid support; shallow collision rejection | Good semantic intent, weak contact modeling |
| Holodeck | Scene-generation priors adapted to existing reconstructions | Nearest-support projection and AABB-overlap rejection | Strong indoor commonsense but sensitive to coordinate mismatch |
| Item | Value |
|---|---|
| Number of participants | 42 |
| Total trials | 2940 |
| Preference trials | 2520 |
| Attention-check trials | 420 |
| Trials per participant | 70, including 60 preference trials and 10 attention checks |
| Attention-check rate | 14.3% of total trials (420 total checks; 10 per participant) |
| Metric | Contrast | Delta | 95% CI |
|---|---|---|---|
| VLM P/N | DCAP full minus FirePlace raw | +21.2 | [19.6, 22.8] |
| Human P/N | DCAP full minus FirePlace raw | +26.5 | [22.1, 30.8] |
| Penetration depth | FirePlace raw minus DCAP full | +1.07 cm | [0.96, 1.19] |
| Support contact | DCAP full minus FirePlace raw | +0.24 | [0.21, 0.27] |
| Residual speed | FP + rigid minus DCAP full | +4.9 cm/s | [4.2, 5.6] |
| VLM P/N | DCAP full minus FP + def. | +12.5 | [10.9, 14.0] |
| Video ID | Scene / prompt | Compared methods | Notes |
|---|---|---|---|
| V6589283 | Bed: dumbbell on the center of the mattress | DCAP / FirePlace | Indentation and stable heavy-object contact |
| V3459802 | Sofa: plush toy on the left cushion | DCAP / FirePlace / Holodeck | Soft support with mild plush deformation |
| V2349234 | Shelf: book on the top shelf | DCAP / LayoutGPT | Rigid-support control case |
| V9097692 | Chair: towel draped over the seat and back | DCAP / Holodeck | Soft-on-rigid settling and folding behavior |
| V4204730 | OOD: oversized ball on a narrow shelf | DCAP / all baselines | Infeasibility and drift diagnostics |
3D Scene Layout Generation
3D scene layout generation arranges objects and structures into coherent, controllable scenes from text, images, plans, or functional goals.
See all 84 papers