SceneChat is a text-driven scene generation pipeline that turns a natural language description into a structured room layout, previews the layout in Blender, and can generate 3D assets for the objects in the scene.
pipeline.py- main interactive scene generation flow.blenderapi/json2scene.py- Blender helpers for building scenes from JSON.blenderapi/json2mesh.py- mesh-related utilities.prompts/- system prompts and cached model response samples.outputs/- generated Blender files and downloaded assets.Reports/- project report and LaTeX sources.
- Python 3.8+.
- Blender with Python
bpysupport. - A working CUDA setup if you use the included DreamFusion-related environment.
- API access for:
HYPERBOLIC_API_KEYMESHY_API_KEY
Create an environment and install dependencies:
conda env create -f environment.yml
conda activate scene_chatIf you prefer pip, install from requirements.txt inside a Python environment that already provides bpy:
pip install -r requirements.txtCreate a .env file in the project root with your API keys:
HYPERBOLIC_API_KEY=your_hyperbolic_key
MESHY_API_KEY=your_meshy_keyRun the main pipeline from the project root:
python pipeline.pyThe script will:
- Ask for a scene description.
- Load or produce a scene JSON description.
- Create a Blender preview scene.
- Ask whether you want to edit the scene.
- Optionally generate 3D assets for the objects.
pipeline.pycurrently reads a cached response fromprompts/response.jsoninstead of calling the LLM path directly. This makes local testing deterministic.- Generated files are written under
outputs/. - Blender import/export behavior depends on the installed Blender version and enabled importers.

