Installation

Start by cloning the GitHub project:

git clone https://github.com/KunalMGupta/interioragent.git
cd interioragent

Create a conda environment and install the Python dependencies (Python ≥ 3.11):

conda create -n interioragent python=3.12 -y
conda activate interioragent
pip install -r requirements.txt

Blender

Blender is the build/render engine (4.5.4 is what we test). Download it, extract it anywhere, export both paths (put them in your shell profile), and install the LLM helper into Blender’s bundled Python:

export BLENDER_PATH=/path/to/blender-4.5.4-linux-x64/blender
export BLENDER_PYTHON=/path/to/blender-4.5.4-linux-x64/4.5/python/bin/python3.11
sceneprogexec install sceneprogllm

The asset library

The 3D furniture datasets are not in git; they ship as a single bundle you extract at the repo root.

Dataset terms — read first. The bundles repackage assets from 3D-FUTURE (Alibaba) and HSSD (Hab-lab, CC BY-NC), provided purely as a convenience for research reproduction. Before downloading, please visit the official sources and accept their respective terms of use — your use of the bundled assets is governed by those upstream licenses.

wget https://interioragent-datasets.s3.amazonaws.com/idsdl_datasets_mini.zip
unzip idsdl_datasets_mini.zip -d .
  • Quick demo (recommended first) — idsdl_datasets_mini.zip: a curated library of ~3k proven assets. The pipeline runs unchanged — retrieval is simply limited to what’s on disk.
  • Full library — idsdl_datasets.zip: all ~29k FutureHSSD assets plus the ingested custom library. Extracting it over a mini install upgrades in place.

API key

Asset retrieval and the VLM feedback loop use an OpenAI model:

export OPENAI_API_KEY="sk-..."

Your first scene

Save this as firstscene.py and run python firstscene.py:

from IDSDL.scene import SceneProgRoom

scene = SceneProgRoom("test_room")

with scene.RelativeGroup() as seating_area:
    sofa = scene.AddAsset("a modern gray sofa")
    coffee_table = scene.AddAsset("a wooden coffee table")
    seating_area.set_anchor(sofa)
    seating_area.place_on_front(coffee_table)

with scene.RoomGroup() as main_room:
    main_room.place_on_back_wall_center(seating_area, facing="front")
    main_room.place_walls(
        floor_texture="light oak wood floor",
        ceiling_texture="smooth white ceiling",
        wall_texture="warm off-white painted wall",
    )

scene.export("test_scene.blend")

Open test_scene.blend in Blender and you should see something like this:


first scene


Verify the install

The repo ships a smoke test that talks to the MCP server exactly the way an MCP client (Claude Code, Claude Desktop, …) would:

python3 tools/mcp_smoke.py

Exit code 0 means the environment, datasets, and server all resolve correctly.

Docker (alternative)

The repo’s Dockerfile builds an environment image (conda env + Blender preinstalled); the repo — with datasets extracted — is volume-mounted into it. The conda path above is the primary supported setup; the image is a convenience.

Next step

Continue to Getting Started for an overview of InteriorAgent-IDSDL.


This site uses Just the Docs, a documentation theme for Jekyll.