Skip to content

Room labeller

Names every room of a commercial space from its panoramas, shows what decided each call, and learns from your corrections.

  • What rooms does this office have?
  • Label the rooms in this suite
  • That room is a kitchen, not storage

For the agent, the tool is described as: Walk one scan’s panoramas and label every room (open office, private office, conference room, restroom, gym, laundry, …), with confidence, the panorama that shows it and the reason. Writes the labels so every other tool sees them. Pass corrections {room id: label} when the person corrects a room; similar rooms here and in sibling scans are re-checked. Slow on first run (one model call per room), cached after.

Amenity auditor, Apartment manager, Commercial cleaning bidder, CoStar researcher, Office tenant.

Input Type Required Default Notes
scan string yes Scan id. Filled from the selected building.
corrections object {} Room id -> the label a person says is right.
include_labelled boolean false Also read rooms Matterport already labelled (to compare).
relabel boolean false Read rooms again even if the overlay already has a vision label.
max_rooms integer 60 At most this many rooms are read by the model in one run. Range: at least 1, at most 200.

An input that nothing fills (the selected building, a saved preference, a persona’s preset) becomes a question to the person. The agent asks only for those.

Layer Id Needed If it is missing
360° photos matterport.panos required The verdict is unknown, with the reason.
Rooms matterport.rooms required The verdict is unknown, with the reason.
Property record costar.property optional labels without the property type

A tool result: a verdict (pass, warn, fail or unknown), metrics, checks and findings, each with its source.

  • Draws on the building: pins on what it found; a colour per room.
  • Panel blocks: VerdictHeader, MetricRow, EvidenceStrip, FloorPlanMini, StepLog.
  • Speed: slow. Writes (a plan edit or a saved label), so over MCP it needs --write.

Room labeller: an agent pass that walks a scan’s panoramas and names every room, then writes the labels into the overlay (store.py) that every other tool’s plan carries. A person’s correction wins and teaches: rooms of the same scan, and similar rooms in sibling scans of the same property, that the correction makes doubtful are read again with the corrected room shown as a reference.

Sources this tool gave on the test home:

Where it came from Layer Method Reliability Note
Measured from the scan matterport geometry high Rooms and areas from the scan
Seen in a model model vision medium Vision model on the room’s panorama

The tool sets the label for each value. A model never does. The tools give a scan’s wall graph the layer matterport whichever device made the scan, so a phone scan’s geometry carries that label too.

  • Needs: 360° photos, rooms. On a scan without them, the verdict is unknown and says why.
  • The agent asks before running it, because it reads every panorama with the vision model and writes new room labels into the plan.
  • It is slow: progress steps reach the workspace while it runs.
  • A result is a planning aid, not an inspection.

This section was written by running the tool when the docs were built, on a hand-made RoomPlan export (no real place was scanned), with no sponsor keys and the network switched off.

Pass 6 of 6 rooms labelled: 2 Bedroom, 1 Living Room, 1 Kitchen, 1 Bathroom, 1 Hallway.

Value Result Where it came from Reliability
Rooms 6 Measured from the scan high
Rooms with a label 6 Seen in a model medium
Vision labels at high confidence not measured % Seen in a model medium
Rooms read by the model this run 0 Seen in a model medium
Seconds this run 0 s Seen in a model medium
Bedroom 2 rooms Seen in a model medium
Living Room 1 rooms Seen in a model medium
Kitchen 1 rooms Seen in a model medium
Bathroom 1 rooms Seen in a model medium
Hallway 1 rooms Seen in a model medium
Check Measured Against Status
Every room has a label 100 100 % pass

Findings: 6 unknown.

threshold run room_labeller --scan <scan-id>
curl -X POST http://127.0.0.1:8787/api/tools/room_labeller/run -H 'content-type: application/json' -d '{...inputs}'

Over MCP the tool is named room_labeller. See MCP server and CLI.