Edit-As-Act: Goal-Regressive Planning for Open-Vocabulary 3D Indoor Scene Editing
Organizations: Korea University
Abstract
Editing a 3D indoor scene from natural language is conceptually straightforward but technically challenging. Existing open-vocabulary systems often regenerate large portions of a scene or rely on image-space edits that disrupt spatial structure, resulting in unintended global changes or physically inconsistent layouts. These limitations stem from treating editing primarily as a generative task. We take a different view. A user instruction defines a desired world state, and editing should be the minimal sequence of actions that makes this state true while preserving everything else. This perspective motivates Edit-As-Act, a framework that performs open-vocabulary scene editing as goal-regressive planning in 3D space. Given a source scene and free-form instruction, Edit-As-Act predicts symbolic goal predicates and plans in EditLang, a PDDL-inspired action language that we design with explicit preconditions and effects encoding support, contact, collision, and other geometric relations. A language-driven planner proposes actions, and a validator enforces goal-directedness, monotonicity, and physical feasibility, producing interpretable and physically coherent transformations. By separating reasoning from low-level generation, Edit-As-Act achieves instruction fidelity, semantic consistency, and physical plausibility - three criteria that existing paradigms cannot satisfy together. On E2A-Bench, our benchmark of 63 editing tasks across 9 indoor environments, Edit-As-Act significantly outperforms prior approaches across all edit types and scene categories.
Figures & tables
| Instruction | Semantic | Physical | |
|---|---|---|---|
| Fidelity | Consistency | Plausibility | |
| LayoutGPT [ 8 ] | ✓ | ✗ | ✗ |
| AnyHome [ 12 ] | ✗ | ✗ | ✓ |
| ArtiScene [ 15 ] | ✗ | ✓ | ✗ |
| Edit-As-Act (Ours) | ✓ | ✓ | ✓ |
| Bathroom | Bedroom | Computer Room | Dining Room | Game Room | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Methods | IF | SC | PP | IF | SC | PP | IF | SC | PP | IF | SC | PP | IF | SC | PP |
| LayoutGPT-E | 50.1 | 62.5 | 78.3 | 35.7 | 30.2 | 53.8 | 53.8 | 32.1 | 84.7 | 50.5 | 31.4 | 66.2 | 52.1 | 48.9 | 83.5 |
| AnyHome | 69.7 | 56.7 | 81.7 | 64.0 | 62.6 | 82.7 | 59.0 | 56.3 | 90.7 | 57.1 | 66.9 | 76.6 | 58.3 | 67.1 | 91.4 |
| ArtiScene-E | 61.7 | 73.4 | 83.7 | 43.0 | 39.0 | 90.4 | 41.9 | 41.0 | 90.6 | 37.3 | 37.1 | 90.4 | 61.3 | 54.4 | 89.4 |
| Edit-As-Act (ours) | 58.7 | 88.9 | 89.1 | 45.7 | 73.1 | 91.9 | 73.6 | 88.0 | 94.1 | 89.7 | 95.3 | 92.7 | 58.7 | 79.9 | 91.1 |
| Method | IF | SC | PP | Latency (s) | Avg. Calls | Avg. Tok |
|---|---|---|---|---|---|---|
| GPT-5 | 49.6 | 52.3 | 73.3 | 18.9 | 1.0 | 3357 |
| Gemini-3-Pro-preview | 43.1 | 48.7 | 71.7 | 47.7 | 1.0 | 6959 |
| Claude-4.5-opus | 50.2 | 43.5 | 68.5 | 11.3 | 1.0 | 3514 |
| SceneWeaver | 68.7 | 78.3 | 82.1 | 102.5 | 7.3 | 18335 |
| Edit-As-Act (ours) | 69.1 | 86.6 | 91.7 | 87.2 | 5.9 | 19056 |
| IF | SC | PP | |
| Edit-As-Act (ours) | 69.1 | 86.6 | 91.7 |
| w/o Validator | 55.3 | 75.1 | 86.0 |
| w/o Source-Awareness | 58.2 | 75.1 | 89.2 |
| w/o EditLang | 55.4 | 73.6 | 88.3 |
| Forward Planning | 61.2 | 78.7 | 90.3 |
| Coord. Prediction | 52.8 | 68.1 | 85.5 |
Appendix figures & tables25 assets
Supplementary material from the paper’s appendix.
Appendix
| Instruction | Goal Predicates |
|---|---|
| “Move the dining set to the window.” | near(table_1, window_1), grouped_with(chair_*, table_1) |
| “Make the chair match the sofa.” | matches_style(chair_1, sofa_1) |
| “Place the lamp to the left of the bed.” | left_of(lamp_1, bed_1, cam_frame) |
| Check Type | Proposed Action & Context | Validator Decision & Feedback |
|---|---|---|
| Physical (Collision) | Action: move_to(chair_1, [1.2, 0, 1.5]) Context: Target coordinates overlap with table_1 . | FAIL “Target position causes collision with table_1 . Please select a clear region or move the obstacle first.” |
| Symbolic (Monotonicity) | Action: move_to(lamp, floor) Context: Previous step satisfied on(lamp, table) . | FAIL “Action undoes a previously satisfied goal: on(lamp, table) . Do not move objects that are already correctly placed.” |
| Symbolic (Relevance) | Action: stylize(curtain, "blue") Context: Instruction is “Rotate the chair”. No goal relates to the curtain. | FAIL “Action does not satisfy any current goal. Focus only on the chair and its orientation.” |
| ADD | REMOVE | TRANSLATE | ROTATE | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Methods | IF | SC | PP | IF | SC | PP | IF | SC | PP | IF | SC | PP |
| LayoutGPT-E | 40.5 | 42.1 | 82.4 | 60.3 | 71.5 | 88.1 | 52.6 | 50.3 | 80.7 | 41.4 | 32.5 | 78.1 |
| AnyHome | 47.2 | 65.0 | 82.1 | 61.2 | 58.7 | 79.8 | 66.0 | 76.6 | 85.7 | 52.7 | 48.4 | 85.0 |
| ArtiScene-E | 39.9 | 50.0 | 89.1 | 80.1 | 78.4 | 94.0 | 50.2 | 58.0 | 86.1 | 39.9 | 28.0 | 90.8 |
| Edit-As-Act (ours) | 82.7 | 90.2 | 88.3 | 73.9 | 80.1 | 95.9 | 97.1 | 95.7 | 89.6 | 53.1 | 86.3 | 95.0 |
| Setting | IF | SC | PP |
|---|---|---|---|
| w/ GPT-OSS-20b | 62.5 | 72.8 | 77.8 |
| Small Pred. Set | 52.4 | 78.1 | 82.6 |
| High Sensitivity | 66.5 | 84.5 | 90.2 |
| Low Sensitivity | 68.9 | 85.0 | 88.0 |
| Ours | 69.1 | 86.6 | 91.7 |
| Method | OOB Scene Ratio (%) | Floating Object Rate (%) |
|---|---|---|
| ArtiScene-E | 88.89 | 92.06 |
| AnyHome | 7.94 | 57.14 |
| Edit-As-Act (Ours) | 6.16 | 14.21 |
3D Scene Editing
3D scene editing studies how to make controlled changes to objects, appearance, layout, and motion while keeping a scene coherent across views.
See all 88 papers