The floor plan auto-completion task takes as input the boundary of a building, the structural elements necessary for the building’s structural integrity, and a set of user constraints formalized in a graph structure, with the goal of automatically generating the full floor plan.
The challenge is to develop a deep-learning model that can learn from the training data (image or graph or both) the mapping between the coarse zoning area to the fine floor plan configuration by means of learning the room shapes and types and the interior walls in between.
While previous research on floor plan generation has mainly focused on the scale of individual apartments, our challenge sets the stage for floor plan generation at a larger scale: the scale of the apartment complex.
Evaluation will be done by the (mean) Intersection-over-Union between the predicted full floor plan and the ground truth.
The evaluation will be set up in CodaLab. This is still in production and will be final July 10 the latest.
We developed our own dataset for the challenge, coined Modified Swiss Dwellings: a Machine Learning-ready Dataset for Floor Plan Auto-Completion at Scale (MSD):
- Link to dataset and download: https://data.4tu.nl/datasets/e1d89cb5-6872-48fc-be63-aadd687ee6f9;
- Based on the Swiss Dwellings database;
- Contains 4167 floor plans of single- as well as multi-unit building complexes.
Most importantly, MSD extends the scale of the building, namely to multi-unit building complexes, w.r.t. other well know floor plan datasets like RPLAN.
The test split will be withhold for competitors, and will be used for evaluation solely.
├── modified-swiss-dwellings
│ ├── structure_in
│ ├── graph_in
│ ├── img_out
│ ├── graph_out
-
Required structural components as an image representation
- Data format:
.npy
- Type:
numpy
array - Data type:
.float16
- Shape:
$[512, 512, 3]$ - Info:
- 1st channel: binary mask of structure (0 = structure, 1 = non-structure)
- 2nd channel: x location
- 3rd channel: y location
- Data format:
-
Required zoning access graph as a graph representation
- Data format:
.pickle
- Type:
networkx.Graph()
- Nodes are area w/ attributes:
-
zoning
: classification of spatial "zone"
-
- Edges are access connectivity w/ attributes:
-
connectivity
: classification of access type, e.g., "door", "entrance door", "passage"
-
- Data format:
-
Full floor plan as an image representation (excluding doors and openings)
- Data format:
.npy
- Type:
numpy
array - Data type:
.float16
- Shape:
$[512, 512, 3]$ - Info:
- 1st channel: multi-class segmentation mask (integer value corresponds to certain room-type)
- 2nd channel: x location
- 3rd channel: y location
- Data format:
-
Full room access graph as a graph representation (the topology of zoning and room access graph are equivalent!)
- Data format:
.pickle
- Type:
networkx.Graph()
- Nodes are area w/ attributes:
-
roomtype
: classification of room-type, e.g., "Bathroom", "Livingroom", "Bedroom" -
centroid
: centroid of the room (midpoint) -
geometry
: shape of room as a polygon (shapely.geometry.Polygon()
)
-
- Edges are access connectivity w/ attributes:
-
connectivity
: classification of access type, e.g., "door", "entrance door", "passage"
-
- Data format:
fltr: required structural components; zoning access graph; full layout; roomtype access graph.