SceneCode:面向可编辑带关节物体室内场景的可执行世界程序
阅读原文· arxiv.org现有室内场景合成方法常生成静态网格,难以按需创建新的可交互物体。SceneCode框架提出将自然语言提示词“编译”为可执行的程序化世界。其核心流程包括:通过规划-设计-批评循环生成对象资产请求,经五种代码生成策略转化为分部件的Blender Python程序,并通过修复-优化循环进行验证。生成的程序可编译为仿真就绪资产,并导出SDF格式。该框架通过场景状态注册表实现可追溯的本地化编辑。实验表明,SceneCode提升了场景生成与提示词的一致性,产生了网格结构更清晰、包含可加载关节元数据的资产。
Indoor scene synthesis underpins embodied AI, robotic manipulation, and simulation-based policy evaluation, where a useful scene must specify not only what the environment looks like, but also how its objects are structured. Existing pipelines, however, typically represent generated content as static meshes and inherit articulation only from curated asset libraries, which limits object-level controllability and prevents new interactable assets from being produced on demand. We address this gap by formulating physically interactable indoor scene synthesis as programmatic world generation, and present SceneCode, a framework that compiles a natural language prompt into an executable, code-driven indoor world rather than a collection of opaque meshes. A room-level agentic backbone first turns the prompt into a structured house layout and emits per-object AssetRequests through a planner--designer--critic loop. Each request is then routed to one of five code-generation strategies and converted into a synthesized part-wise Blender Python programs that are validated through an execution-guided repair-and-refine loop. The resulting programs are compiled into simulation-ready assets, and exported as SDF for physics simulation. A persistent scene-state registry links object requests, executable programs, rendered geometry, and simulation assets, turning scene assembly into a traceable and locally editable world-building process. We evaluate SceneCode across scene-level synthesis, object-level asset quality, human judgment, and downstream robot interaction. Results show that executable world programs improve prompt-faithful indoor scene generation and produce assets with cleaner mesh structure, and simulator-loadable articulation metadata. Project page: https://scene-code.github.io/.