SCENENAT : Masked Generative Modeling for Language-Guided Indoor Scene Synthesis

Under review at TMLR

Seoul National University
Co-first authors
SceneNAT pipeline: a natural-language instruction conditions a masked scene matrix that is iteratively unmasked into object attributes, which retrieve and place 3D assets.

SceneNAT turns a natural-language instruction into a complete 3D indoor scene in a few parallel decoding passes — no autoregressive ordering, no hundreds of diffusion steps.

Abstract

We present SceneNAT, a masked non-autoregressive Transformer for 3D indoor scene synthesis from natural language instructions. It generates complete scenes in a few parallel decoding passes, improving both quality and efficiency over prior methods. SceneNAT is trained via masked modeling over fully discretized representations of both semantic and spatial attributes. By applying a masking strategy at both the attribute level and the instance level, the model can better capture intra-object and inter-object structure.

To boost relational reasoning, SceneNAT employs a relational reasoning module (RRM) that captures implicit spatial constraints. By formulating relation modeling as a set prediction task, it extracts structure-aware features to guide the layout generation without explicit sequential parsing. Extensive experiments on 3D-FRONT show that SceneNAT outperforms state-of-the-art autoregressive and diffusion baselines in both semantic compliance and spatial arrangement accuracy while using substantially lower computational cost, enabling high-throughput generation of diverse scenes at scale.

Qualitative Comparison

The same instruction, rendered by every method in the same frame. Switch methods to see what changes — the differences are in which objects appear and where they land.

How It Works

SceneNAT architecture: a scene decoder reconstructs masked object slots while a relational reasoning module turns learnable triplet queries into relation-aware features that are fused into the layout decoder.

Masked Indoor Scene Modeling

A scene is a set of objects, each written as fully discrete tokens: a category x, four vector-quantized appearance tokens v, and discretized layout parameters — position t, scale l, and yaw θ. Training masks a fraction of those tokens under a cosine schedule and asks the model to fill them back in.

The masking budget is split stochastically between the object level and the token level, so the model has to handle both "this whole object is missing" and "this object's rotation is missing." Object-level masking is what drives instruction adherence; token-level masking mostly helps FID. A BERT-style replace-and-remask policy on top is what makes non-autoregressive training stable at all — dropping it takes FID from 109.55 to 191.69.

Relational Reasoning Module

Instructions carry spatial relations, and stuffing them through the text encoder alone is not enough. RRM handles them separately: a transformer decoder turns a fixed set of learnable triplet queries into relation-aware features, supervised by the ground-truth (subject, predicate, object) triplets parsed from the instruction. Because the relations form a set with no natural order, the loss is a direct set prediction objective: a Hungarian bipartite matching between predicted and ground-truth triplets, with a no-relation class absorbing the unused queries.

At inference SceneNAT never decodes symbolic triplets. Only the learned relational features are injected into layout decoding — the symbolic heads exist purely as training supervision. Removing RRM drops iRecall from 70.45 to 62.77.

Iterative Unmasking

Generation starts from a fully masked scene matrix and refines it in parallel. Each row of the grid is an object, each column an attribute; coloured cells are tokens the model has committed to, dark cells are still masked. Under the remasking schedule, low-confidence cells go dark again and get another pass.

Mask state
Decoded scene

All tokens masked —
nothing decoded yet

step 0

Quantitative Results

Text-conditioned synthesis on 3D-FRONT. Mean over 10 independent trials for the generative-quality and instruction-adherence metrics. Lower is better for FID, FID-CLIP and KID; higher for iRecall. The SceneEval layout metrics are reference-based, so the target is the ground-truth scenes, not the extreme — bold marks the value closest to GT, not the largest.

Method iRecall ↑FID ↓FID-CLIP ↓ KID×103 ↓NAV →GT COL →GT ACC →GTFloor Pen. ↓
Ground truth84.221.254.20.000
LayoutGPT45.32133.318.773.4973.4551.6441.650.0274
ATISS31.30128.507.503.5978.752.653.30.056
DiffuScene45.98119.376.711.0483.634.854.50.014
InstructScene66.72115.766.50−0.3379.929.353.00.016
SceneNAT (Ours)70.45109.556.19−1.1884.923.958.00.019

Ground-truth values are the SceneEval metrics measured on the real 3D-FRONT scenes. On COL, SceneNAT is closest to real in every room. On NAV it is second in every room — never the winner, but also never the outlier, which the baselines cannot say: each of them lands closest in one room and furthest in another.

Holding up as instructions get harder

Training used at most four relational constraints. The shaded band is five and six — complexity the model never saw. InstructScene sags there; SceneNAT stays flat.

Three panels, one per room type, plotting iRecall against the number of relational constraints from one to six for SceneNAT, InstructScene, DiffuScene and ATISS.

Against a concurrent method

FreeScene numbers are taken from its own paper. For comparability with that setting, SceneNAT's iRecall here is measured with at most two constraints.

RoomMethodiRecall ↑FID ↓FID-CLIP ↓KID×103 ↓
BedroomFreeScene73.69111.216.430.35
SceneNAT (Ours)77.96109.556.19−1.18
Living roomFreeScene58.16110.555.837.95
SceneNAT (Ours)59.56110.285.496.18
Dining roomFreeScene63.39127.288.0114.83
SceneNAT (Ours)61.89129.657.5112.26

Efficiency

Parallel decoding is the whole point: SceneNAT reaches its quality in about 30 steps, where InstructScene needs 110 and DiffuScene 1000. Timings are at batch size 128 over 50 iterations after warmup.

Two plots: FID against inference time, where SceneNAT sits at the lowest FID and near the fastest time, and latency against batch size, where SceneNAT stays flat while baselines climb.
ModelInference time (s)Params (M)TFLOPsFID ↓iRecall ↑
ATISS0.1433.50.2128.5031.30
DiffuScene33.2863.463.5119.3745.98
InstructScene6.7387.744.3115.7666.72
SceneNAT-S1.0253.17.9110.9167.06
SceneNAT-B1.3569.910.3109.5570.45

The smaller variant is worth a second look: SceneNAT-S already beats InstructScene on both FID and iRecall while running 6.6× faster with 5.6× fewer TFLOPs.

Latency against batch size. InstructScene climbs to 6.73 seconds at batch 128 while SceneNAT-B reaches only 1.35 and SceneNAT-S 1.02.
Latency scales sub-linearly with batch size — peak memory stays around 1.2 GB.
FID and iRecall against the number of inference steps. SceneNAT is already at its best by 30 steps, while DiffuScene is still improving at 1000.
Quality against step count. SceneNAT saturates early; diffusion baselines do not.

In the Wild

Training instructions are templated, but real ones are not. Because conditioning runs through a frozen CLIP text encoder, unseen wording still lands somewhere sensible in the embedding space — and for genuinely abstract requests, a general-purpose LLM can rewrite the prompt into explicit relations without SceneNAT changing at all.

Generalization results: SceneNAT handles unseen object and relation expressions, and LLM-rewritten prompts.

Applications

Four applications: simulation-ready scenes, massive environment sampling, failure case augmentation, and interactive scene editing.

BibTeX

@article{choi2026scenenat,
  title={SceneNAT: Masked Generative Modeling for Language-Guided Indoor Scene Synthesis},
  author={Choi, Jeongjun and Park, Yeonsoo and Kim, H Jin},
  journal={arXiv preprint arXiv:2601.07218},
  year={2026}
}