Convert Floorplanner floor plans to Blender 3D scenes.
Before (Floorplanner):
After (Blender):
- 🏠 Walls with textures and proper thickness
- 🚪 Windows & Doors with automatic wall cutouts
- 🪑 Furniture positioned and scaled correctly
- 🎨 Materials including textures and colors
- 🏗️ Multi-floor support
pip install fml2blenderOr install from source:
git clone https://github.com/daviddemeij/fml2blender
cd fml2blender
pip install -e .FML files contain floor plan data used by Floorplanner. You can capture them from various website that use floorplanner such as real estate listing websites like Funda.nl
- Open your project on floorplanner.com
- Open browser DevTools → Network tab
- Filter by
fmlorXHR - Reload the page and you'll find one response for each floor (the 1st floor is generally the first request)
- Right-click → Copy Response → Save as
floor1.fml. Do this for each floor.
- Open a listing with an interactive floor plan
- Open browser DevTools → Network tab
- Click "Plattegrond" to load the interactive floorplan
- Filter by
fml - Save the
fmlfile (usually one file for all floors)
fml2blender harvest /path/to/projectThis parses your FML files and downloads:
- 3D models (GLB) for furniture, windows, doors
- Textures (JPG/PNG) for walls and floors
Assets are saved to assets/ and a manifest.json is created.
fml2blender build /path/to/projectThis runs Blender in background mode and builds the 3D scene.
Options:
fml2blender build /path/to/project --gui # Open in Blender GUI
fml2blender build /path/to/project -o scene.blend # Save to file
fml2blender build /path/to/project --level-height 3.0 # Custom floor heightAfter harvesting, your project directory should look like:
my-house/
├── floor1.fml # Ground floor
├── floor2.fml # First floor
├── floor3.fml # Second floor
├── manifest.json # Asset ID → file path mapping
├── products.json # Product metadata (dimensions, names)
├── materials.json # Material metadata (colors, PBR maps, tiling)
└── assets/
├── abc123.glb # 3D models
├── def456.glb
└── texture.jpg # Textures
- Python 3.10+
- Blender 4.0+ (for build command)
- For legacy GLB v1 assets (rare older windows/doors), install Node.js and
gltf-pipelineso harvest can auto-upgrade to glTF 2:npm i -g gltf-pipeline
The harvest command only needs Python. The build command requires Blender to be installed.
-
Harvest: Parses FML JSON files to extract asset IDs, resolves them via Floorplanner's search API, downloads GLB models and textures from their CDN.
-
Build: Runs inside Blender to:
- Create walls from line segments with proper thickness
- Apply wall textures to left/right sides
- Import GLB models for furniture and openings
- Cut holes in walls for windows/doors
- Set up glass materials for transparency
MIT
Contributions welcome!



