STABLE: Simulation-Ready Tabletop Layout Generation via a Semantics-Physics Dual System
Paper: arXiv:2605.16137v1 Code: 代码搜索未找到开源实现 Code reference: N/A — no public repository found in paper/source, web search, or GitHub repository search
1. Motivation (研究动机)
这篇论文要解决的是 task instruction → simulation-ready tabletop layout:给定自然语言任务与桌面规格,自动生成可直接放进物理仿真的桌面场景。它不是单纯做 3D asset generation,也不是只生成视觉上合理的图片;目标场景必须同时满足三件事:任务语义对齐、对象/关系完整、几何上没有碰撞或悬浮。现有方法的主要瓶颈来自两类路线的错位。
LLM-based scene generation(LayoutGPT、I-Design、Holodeck、MesaTask 等)擅长把高层语义翻译成结构化布局,但 LLM 对连续 3D 坐标、接触、堆叠、包含关系的建模能力弱,容易产生 object interpenetration、floating object 或错误的相对位置。后处理优化或 simulation-in-the-loop 可以修复部分碰撞,但在严重 cluttered tabletop scenes 中计算成本高,而且可能为了消除碰撞而移动关键对象,破坏原始 task alignment;论文举例说明,如果指令要求 apple 在 banana 左边,后处理可能把 apple 推到右边。
研究价值在于 embodied AI 的合成数据:真实机器人数据采集贵、慢且受安全约束;如果能从任务指令稳定地产生可仿真的 tabletop scenes,就能为 manipulation policy training、evaluation、scene editing、rearrangement 等任务提供更大规模、更可控的仿真环境。STABLE 的核心贡献是把“语义生成”和“物理校正”拆成两个互补系统,而不是要求一个 LLM 同时负责离散语义、连续坐标和物理可行性。
2. Idea (核心思想)
STABLE 的核心洞察是:任务语义和物理可行性应由不同 inductive bias 的模块处理。Semantic Reasoner 用 fine-tuned LLM 生成 JSON 形式的粗布局,负责对象选择、任务关键关系和背景补全;Physics Corrector 用 geometry-aware flow-based denoising model 只更新对象 pose,负责碰撞、桌面穿透与悬浮修复,同时保持对象身份、尺寸和语义描述不变。
与 MesaTask 这类 LLM-only task-to-scene 方法相比,STABLE 不把连续几何细节交给 LLM;与 Steerable 或 MesaTask refine 这类 post-processing 方法相比,STABLE 的 Physics Corrector 是在生成过程中反复插入的 learned correction,而不是最后一次全局“清洗”。它采用 progressive generation:先生成 task-oriented objects ,修正后再生成 important background ,最后生成 secondary background ;每一步都让物理可行的中间布局反馈给下一轮语义扩展,降低错误累积。

Figure 1 解读:图中概括了 STABLE 的双系统循环。左侧 Semantic Reasoner 负责从任务中扩展场景语义,右侧 Physics Corrector 负责几何/物理修正;输出不是一张图,而是可以导入仿真的 structured tabletop layout。
3. Method (方法)
问题形式化与场景表示
论文把生成结果表示为 JSON layout: 其中 是 tabletop specification(例如桌面尺寸),每个对象写作: 这里 是 3D translation, 是绕竖直轴的 yaw rotation, 是 bounding-box size, 是类别/形状/外观文本描述。每个对象还会根据 从 3D asset library 检索 asset identifier ,从而获得 mesh geometry 供物理建模使用。
整体分解为: SR 生成粗布局,PC 只更新 pose;最终 scene 由 JSON layout、检索到的 assets 和校正后的 poses 组装而成。

Figure 2 解读:训练侧分成 Semantic Reasoner 与 Physics Corrector。SR 是基于 Qwen3-8B 的 SFT 模型,学习三阶段 JSON layout 生成;PC 是 1D U-Net flow model,输入 coarse pose、对象几何 embedding 和实例 embedding,输出 pose refinement。推理侧按 Loop 1–3 交替执行 SR 和 PC:每次 SR 扩展一批对象,PC 立即消除红框中示意的碰撞/穿透,再把 simulation-ready 子布局交回 SR。
Semantic Reasoner:progressive task-grounded layout generation
SR 使用 MesaTask-10K 的 instruction-scene pairs,但论文修改了原始预处理方式:去掉 MesaTask 的 long-form reasoning chains,让 LLM 直接输出结构化 JSON,以降低 token length 和 generation latency。为支持 progressive inference,每个完整场景被序列化成三类对象:
- :task-oriented objects,来自 MesaTask-10K 标注中指令明确要求的任务关键对象;
- :important background objects,与 强耦合、接触或距离很近的背景对象;实际通过对象 3D bounding boxes 是否与 的 bounding box 在阈值内相交来判定;
- :secondary background objects,即剩余背景对象。
三阶段生成公式为: 完整对象集合为 。这个分解的直觉是先确保任务关键对象不缺失,再补足与任务强相关的上下文,最后加入更弱相关的 clutter;这比一次性生成所有对象更容易保持 task grounding,也让 PC 可以在每一层扩展后把几何状态拉回可行域。
Physics Corrector:geometry-aware flow-based pose correction
SR 给出的对象集合和语义关系通常合理,但连续 pose 可能不物理。PC 的设计约束很明确:只预测 3D translation 和 yaw 的更新,不改变 object identity、size 或 semantic description。这避免了物理修正把“任务需要的对象/关系”改掉。
几何条件来自 mesh-level point cloud。对对象 ,先检索 asset ,按预测尺寸 缩放 mesh,从表面采样 point cloud ,再用 frozen PointTransformerV3 提取 geometry embedding: PC 在 pose 空间中学习 conditional Flow Matching。对象 pose 串联为: 给定 SR coarse pose 与几何条件 ,条件为 。训练时构造 noisy endpoint 与 data endpoint: 采样 ,线性插值 ,目标速度为 。Flow Matching loss 为: 推理时从未扰动的 coarse pose 出发,求解 ODE: 得到 ,再拆回每个对象的 。训练中从 noisy coarse pose 学局部修正场,推理中从 clean coarse pose 开始,使 PC 更像 learned refinement 而不是 unconditional generator。
Mesh-level SDF losses:碰撞、桌面穿透与支撑接触
仅靠数据驱动的 Flow Matching 仍可能留下少量但致命的 interpenetration。论文对每个 mesh 预计算 signed distance field ,其中 表示点在 mesh 内部。对对象 ,从其 mesh 表面采样点集 ,定义对象到 mesh 的 signed penetration distance: 对象-对象碰撞损失: 对象-桌面碰撞损失把 tabletop 建模为 SDF : 为减少 floating artifacts,论文从对象底部区域 采样,并构造候选支撑集合 (桌面与附近对象)。候选支撑距离为: 最近支撑与 gap: 支撑接触损失: 最终 PC 训练目标为:
Dual-System Inference Loop 与代码搜索
论文 Algorithm 1 的推理过程维护两个队列: 和 。对每个 scene 初始化空对象集与 stage index;当 SR 队列有资源时,按 stage schedule 生成当前阶段的对象增量 ,更新 JSON layout 后推入 PC 队列;当 PC 队列有资源时,PC 更新当前所有对象的 pose,stage index 加一,如果还没完成三阶段则再推回 SR 队列。这个循环的关键是 PC-corrected layout 会成为下一轮 SR 的条件,从而避免在错误几何状态上继续堆叠对象。
下面伪代码是论文 Algorithm 1 级别的流程重写,不是 released-code-backed implementation:
from collections import deque
def stable_dual_system_inference(task_prompts, semantic_reasoner, physics_corrector, stage_schedule):
"""Paper-level pseudocode for STABLE Algorithm 1; no public code was released."""
q_sr, q_pc = deque(), deque()
outputs = {}
for scene_id, prompt in enumerate(task_prompts):
q_sr.append({"scene_id": scene_id, "prompt": prompt, "stage": 0, "objects": []})
while q_sr or q_pc:
while q_sr:
state = q_sr.popleft()
stage_cfg = stage_schedule[state["stage"]]
new_objects = semantic_reasoner.generate_objects(
instruction=state["prompt"],
current_layout=state["objects"],
max_objects=stage_cfg.num_objects,
token_budget=stage_cfg.token_budget,
)
state["objects"] = state["objects"] + new_objects
q_pc.append(state)
while q_pc:
state = q_pc.popleft()
corrected_objects = physics_corrector.correct_poses(
objects=state["objects"],
sdf_collision=True,
support_contact=True,
)
state["objects"] = corrected_objects
state["stage"] += 1
if state["stage"] < len(stage_schedule):
q_sr.append(state)
else:
outputs[state["scene_id"]] = corrected_objects
return outputs代码搜索未找到开源实现。已检查论文 arXiv HTML/source、GitHub repository/code search via public API、以及 Web 搜索关键词:STABLE Simulation-Ready Tabletop Layout Generation github、Semantics-Physics Dual System github、2605.16137 github、STABLE MesaTask-10K。因此本笔记没有 github_ref,也不提供 code-to-paper mapping table;上面的流程解释与伪代码基于论文正文与 Algorithm 1,而非 released code。
4. Experimental Setup (实验设置)
数据集。 STABLE 训练基于 MesaTask-10K,包含 10,000 个 tabletop scenes 与 task instructions。Physics Corrector 使用全部 10,000 个场景训练 geometry-aware pose correction model。Semantic Reasoner 先按原 MesaTask preprocessing 获得 10,000 个 instruction-scene pairs,再转换为 serialized multi-stage layout data;每条指令对应三段子布局:。**训练配置。
** 以下数值来自论文正文/appendix 的实验描述;代码搜索未找到 released code,因此不是从实际 launch script 或 experiment config 校验得到。Semantic Reasoner 使用 Qwen3-8B 作为 base model,做 supervised fine-tuning;learning rate 为 ,maximum sequence length 为 5,000 tokens,micro-batch size 为每 GPU 4,训练 1 epoch。
Physics Corrector 使用 1D U-Net,hidden dimension 512,带 self-conditioning;每个对象表示为 4D vector(3D position + z-rotation),条件包含 64-dimensional point cloud features 与 learnable instance embeddings。PC 使用 Adam optimizer,learning rate ,batch size 2,048,训练 5,000 epochs;
物理损失权重为 object-object SDF collision 、object-table SDF collision 、support-contact 。论文未详细说明 GPU 型号/数量。指标。 主表使用 FID 衡量 visual realism;GPT Score 分解为 CwT、OSR、PPI、LCR、OV 与 Avg.,评估 scene quality;Object Collision (OC) 衡量 simulation readiness;
AwT 与 AwS 衡量任务对象与 scene graph 的对齐。附录进一步定义: Floating 指标使用 : Baselines。 论文比较四类方法:task-to-scene baselines(MesaTask、Holodeck-Table、I-Design-Table)、post-processing baselines(MesaTask+refine、Steerable)、proprietary model(GPT-4o)、image-conditioned tabletop generation(TabletopGen)。应用实验还比较 rearrangement baselines:LEGO-NET 与 StructDiffusion。
5. Experimental Results (实验结果)
主结果:语义与物理同时提升
| Method | FID↓ | GPT Avg. | OC↓ | AwT (%)↑ | AwS (%)↑ |
|---|---|---|---|---|---|
| GPT-4o | 85.5 | 7.1 | 25.4 | 25.2 | 18.5 |
| Holodeck-Table | 90.2 | 6.5 | 0 | 18.4 | 11.2 |
| I-Design-Table | 94.8 | 6.9 | 10.3 | 16.2 | 9.6 |
| MesaTask | 40.6 | 8.8 | 15.6 | 90.2 | 81.5 |
| TabletopGen | 54.8 | 9.0 | 23.5 | 91.7 | 83.6 |
| Steerable | 43.7 | 8.8 | 0 | 99.4 | 91.1 |
| STABLE | 38.6 | 9.2 | 0 | 99.4 | 99.0 |
STABLE 在所有主指标上达到最优或并列最优:FID 38.6 低于 MesaTask 40.6 与 Steerable 43.7,GPT Avg. 9.2 高于 TabletopGen 9.0,OC 为 0,同时 AwT 为 99.4、AwS 为 99.0。最重要的对比是 Steerable:它也把 OC 降到 0,但 AwS 只有 91.1,说明 post-processing 可能破坏 scene graph 关系;STABLE 通过在每轮语义扩展后即时校正,保留了更强的任务关系。

Figure 3 解读:红框表示物理失败,黄框表示 missing objects,蓝框表示 task misalignment。对比显示,LLM-centric 或 image-conditioned 方法可能在视觉上丰富,但会遗漏细小关键物体或产生穿透;post-processing 能减少碰撞却可能改变任务关系。STABLE 同时保持任务对象、背景 clutter 与物理可行性。
Physics Corrector 的鲁棒性与消融
| Initial collision count | MesaTask’s Optim. | Steerable | Physics Corrector |
|---|---|---|---|
| 0–10 | ✓ | ✓ | ✓ |
| 10–20 | ✓ | ✓ | ✓ |
| 20–30 | ✗ | ✗ | ✓ |
| 30–40 | ✗ | ✗ | ✓ |
该表说明 PC 对严重 collision initial layouts 更稳健:传统 optimization 与 Steerable 在 20–30、30–40 碰撞区间失败,而 Physics Corrector 仍可处理。原因是 PC 在 MesaTask-10K 分布上学到局部修正场,并通过 geometry embeddings 与 SDF losses 获得接触/穿透先验。
| Variant | OC↓ | Float↓ | AwT↑ | Distractor Rate↑ |
|---|---|---|---|---|
| w/o | 4.7 | 9.8 | - | - |
| w/o | 13.6 | 5.4 | - | - |
| w/o | 11.9 | 15.8 | - | - |
| Full (Ours) | 0 | 0 | - | - |
| One-shot SR | - | - | 89.9 | 78.6 |
| Progressive SR (Ours) | - | - | 99.4 | 86.1 |
消融结果表明三类物理损失互补:去掉 support loss 后 Float 升到 9.8;去掉 object-table loss 后 OC 升到 13.6,且对象可能“沉入”桌面来减少悬浮;去掉 object-object loss 后 OC 11.9、Float 15.8,说明对象间穿透会连带破坏支撑关系。Semantic Reasoner 的 progressive construction 也明显优于 one-shot:AwT 从 89.9 提升到 99.4,Distractor Rate 从 78.6 提升到 86.1,说明分阶段生成既保留任务关键对象,又更容易补全合理背景 clutter。

Figure 4 解读:STABLE 的结构化 layout 让多步编辑可以局部发生:Semantic Reasoner 修改 JSON 中相关对象/关系,Physics Corrector 再修正 pose。论文强调没有额外 edit-specific fine-tuning,这说明 progressive JSON representation 本身支持 incremental editing。
Rearrangement 应用
| Method | Distance Move↓ | EMD to GT↓ | OC↓ |
|---|---|---|---|
| LEGO-NET | 0.28 | 0.43 | 0.32 |
| StructDiffusion | 0.21 | 0.23 | 0.25 |
| STABLE | 0.14 | 0.08 | 0 |
STABLE 被用于 rearrangement:给定 perturbed tabletop states,模型修正对象 pose,使其恢复更接近 ground truth 且无碰撞。相比 StructDiffusion 与 LEGO-NET,STABLE 的 Distance Move、EMD to GT 和 OC 都更低,说明 PC 学到的 pose correction 不只服务于从文本生成,也可作为 rearrangement/refinement 模块。

Figure 5 解读:该图展示 cluttered tabletop 中的 rearrangement 质量。STABLE 比 StructDiffusion 和 LEGO-NET 更能保持功能关系,并消除物理不一致;这支持其 Physics Corrector 作为通用 pose refinement model 的应用价值。
泛化、可控性与下游 manipulability

Figure 6 解读:STABLE 在未见过的 tabletop types 上仍能生成结构合理且 collision-free 的布局,说明方法并非只记忆训练桌面类别。

Figure 7 解读:附录进一步测试 nightstands、TV stands、side tables 等 MesaTask-10K 外的 tabletop categories;任务指令由 GPT-4o 生成。结果说明 SR 能把新桌面功能语义转为对象布局,PC 继续负责物理可行性。

Figure 8 解读:论文引入 100 个由 Hunyuan3D 生成的新 high-quality assets,并在 test-time retrieval 中优先使用新资产。STABLE 对这些 unseen geometries 仍有效,说明 PC 的 geometry-aware conditioning 具有一定迁移能力,而不是简单记忆原 asset library。

Figure 9 解读:在 plate above cup、headphones on keyboard 等异常或冲突约束下,STABLE 倾向于按字面执行指令,同时尽可能维持物理可行性。论文明确不声称它具备任意 conflict resolution 机制;这更像是 SR 暴露语义意图、PC 维持几何约束的结果。
ManipVQA 下游检测实验选取 kettle 与 fork 两类可抓取对象,每类从测试集中采样复杂场景,标注 handle graspable area。结果如下:
| Object | AP@IoU=0.5 | AP@IoU=0.75 |
|---|---|---|
| kettle | 0.87 | 0.65 |
| fork | 0.91 | 0.71 |
该实验说明现有 manipulability detection model 可较稳定地迁移到 STABLE 生成场景,间接支持生成场景对机器人操作任务有用,而不仅是视觉上合理。

Figure 10 解读:附录比较 Steerable、MesaTask、MesaTask with refine 与 STABLE 的更多生成案例,突出了 prior methods 的常见失败:物理无效、missing objects,以及 refine 后语义漂移。

Figure 11 解读:更多 STABLE 生成结果展示了 stacking、container-based placement 和 cluttered layouts。它们主要用于说明方法在复杂接触关系下的多样性与 simulation readiness。
局限性
论文指出两个主要限制。第一,当前 layout representation 只建模绕竖直轴的 yaw,适合许多 upright tabletop assets,但对非直立放置、articulated parts、需要 roll/pitch 或 open/closed state 的任务不够;扩展到 full 6DoF poses 与 state-aware physical constraints 是自然下一步。第二,progressive dual-system inference 目前固定为三阶段 ;未来可探索 adaptive stopping、dynamic stage scheduling 与 streaming-style generation,以支持更长程、更灵活的场景扩展与编辑。