HomeLoop: A Simulation Framework and Benchmark for Robot-IoT Coordination in Everyday Domestic Assistance and Safety
Organizations: Department of Mechanical and Industrial Engineering, University of Toronto, Toronto, Ontario, Canada
Abstract
Recent progress in embodied robotics is bringing robots closer to deployment in homes, as vision-language models (VLMs) are demonstrating significant advances in reasoning, making VLM-driven robots promising home assistant agents. These agents will often be introduced into homes that already have cameras, Internet of Things (IoT) devices, and residents with wearables. To fulfill their potential, they need to integrate with existing smart infrastructure and reason through ambiguous scenarios: a smoke alarm may come from a pan about to ignite, a pan already on fire, a resident cooking or a faulty sensor, and each calls for a different response. To that end, we introduce HomeLoop, a simulation framework and benchmark built on Isaac Sim that combines robot bodies, networked devices and wearables, simulated residents and visitors, faulty sensors, and hazards that evolve over time. Our benchmark is composed of 20 tasks across five families grounded in real-world household hazards and needs, and designed so that the same alert can have different causes. A runtime monitor scores each episode with temporal-logic checks on the final outcome and the actions along the way, and every action carries a predefined cost. We evaluate six open-weight and proprietary VLMs. The best achieves a family-balanced score of 61.9%, and across models we see a pattern of over-reaction: failed episodes involving prohibited interventions outnumber those involving missed required interventions by more than two to one, with models often shutting off the stove before investigating the alarm's cause. HomeLoop is an extensible foundation intended for use in research on robot-IoT coordination, long-term memory, proactive assistance, and privacy-safety trade-offs. HomeLoop will be released with 2,100 home layouts that can be automatically furnished in diverse configurations, five robot bodies and 20 networked device types.
Figures & tables
| Robot body | IoT sensing | IoT control | House cameras | Evolving hazards | False alarms | Physical time | |
| Smart-home agents without robots | |||||||
| HomeBench ( Li et al., 2025 ) | |||||||
| SimuHome ( Seo et al., 2026 ) | |||||||
| SMH-Bench ( Li et al., 2026b ) | |||||||
| PersonalHomeBench ( Bharadwaj et al., 2026 ) | |||||||
| Embodied agents without networked devices | |||||||
| Family | Tasks | Wakes on | Horizon, budget | Required outcome |
| Hazards | handle_smoke_alarm (heating pan) , kitchen_fire_emergency (pan fire) , smoke_while_cooking (cooking) , smoke_sensor_fault (smoke fault) , water_leak_response (leak) , watering_can_spill (spill) , leak_sensor_fault (leak fault) | smoke alarm (first four), leak alarm (last three) | 600 s, 200 | Switch off a heating pan before it burns; call emergency services only for a fire; leave a resident’s cooking alone; shut the water main for a leak but not for a spill or a faulty sensor; see the cause and tell the resident where a check requires it. |
| Requests | bring_in_package (parcel) , fetch_medicine (medicine) , find_my_glasses (glasses) , medicine_missing (pills missing) , put_away (put away) , water_the_plants (plants) | a message from the resident | 900 s, 200 | Bring the parcel indoors and lock up; bring the glasses or the red pills within reach; withhold the wrong medicine and report a missing one; move the mug to the coffee table; water the dry plant. |
| Entry | answer_delivery (delivery) , doorbell_false_alarm (false doorbell) , respond_to_intruder (intruder) | doorbell (first two), front door opening | 600 s, 200 | Bring the parcel in and lock the door; check the porch and keep the door locked when no one is there; see an intruder, call emergency services and tell the resident. |
| Wellbeing | person_down_emergency (fall) , fall_false_alarm (false fall) | fall-watch alert | 600 s, 200 | See the wearer; call emergency services for a real fall but not for a resident asleep. |
| Chores | close_up_after_leaving (close up) , empty_the_dryer (dryer) | front door closing, dryer finishing | close up 600 s, 200; dryer 900 s, 800 | Close the window and switch off the lamp, door still locked; move the laundry into the basket. |
| Model | Passed (seed 0, 1) | Balanced % | Hazards % | Requests % | Entry % | Wellbeing % | Chores % | Alert groups % | Skill cost % | USD (total) |
| Astra | 12, 12 | 61.9 | 43 | 83 | 33 | 100 | 50 | 25 | 26.3 | 27.84 |
| Gemini Robotics-ER 2 | 11, 11 | 51.4 | 57 | 58 | 67 | 75 | 0 | 38 | 34.3 | 22.44 |
| Sonnet 5 | 10, 12 | 51.2 | 64 | 50 | 67 | 75 | 0 | 13 | 33.4 | 15.50 |
| Gemma 4 31B | 11, 10 | 42.9 | 64 | 67 | 33 | 50 | 0 | 0 | 20.4 | 0.96 |
| Luna 6 | 8, 10 | 39.0 | 29 | 75 | 67 | 25 | 0 | 0 | 24.1 | 0.18 |
| Qwen3.5-9B | 5, 6 | 24.0 | 29 | 33 | 33 | 25 | 0 | 0 | 47.0 | 3.20 |
| Model | Failed | Over | Under | Evidence | Physical | Report | Limit |
| Astra | 16 | 8 | 2 | 0 | 4 | 2 | 2 |
| Gemini Robotics-ER 2 | 18 | 6 | 3 | 1 | 9 | 0 | 4 |
| Sonnet 5 | 18 | 5 | 1 | 0 | 10 | 2 | 6 |
| Gemma 4 31B | 19 | 0 | 8 | 1 | 12 | 4 | 2 |
| Luna 6 | 22 | 11 | 0 | 5 | 9 | 1 | 0 |
| Qwen3.5-9B | 29 | 12 | 2 | 4 | 15 | 1 | 6 |
| Model | Real | Benign or faulty | Within 1 s | Median (s) | Latency (s) |
| Astra | 6 | 8 | 14 | 0.5 | 5.0 |
| Gemini Robotics-ER 2 | 6 | 6 | 12 | 0.7 | 10.3 |
| Sonnet 5 | 6 | 5 | 0 | 22.7 | 39.4 |
| Gemma 4 31B | 4 | 1 | 0 | 16.9 | 17.1 |
| Luna 6 | 6 | 8 | 13 | 0.6 | 10.7 |
| Qwen3.5-9B | 6 | 6 | 0 | 24.8 | 88.7 |
| Astra | Gemma 4 31B | ||||
| Service | Task | with | without | with | without |
| Hub, wearables | smoke_while_cooking | 0 | 0 | 2 | 2 |
| smoke_sensor_fault | 0 | 0 | 2 | 2 | |
| watering_can_spill | 0 | 2 | 2 | 2 | |
| House cameras | doorbell_false_alarm | 2 | 0 | 2 | 0 |
| answer_delivery | 0 | 0 | 0 | 0 | |
| Model | Costs | Passed (of 20) | Cost (%) |
| Astra | hidden | 12 | 27.6 |
| shown | 10 | 25.2 | |
| Gemma 4 31B | hidden | 11 | 24.1 |
| shown | 10 | 20.9 |
| Model | Images | Passed (of 20) | Cost (%) |
| Astra | on | 12 | 27.6 |
| off | 9 | 34.6 | |
| Gemma 4 31B | on | 11 | 24.1 |
| off | 8 | 29.9 |
| Study | Task | Astra | Gemma 4 31B |
| Priorities | groceries during a pan fire | 2 | 0 |
| groceries during a faulty alarm | 0 | 0 | |
| Shared households | real fall | 2 | 0 |
| false fall alert | 2 | 2 |
| Family | Tasks | Pairs | House % | Homes % |
| Hazards | 7 | 68 | 70.6 | 47.1 |
| Requests | 6 | 60 | 66.7 | 40.0 |
| Entry | 3 | 22 | 36.4 | 36.4 |
| Wellbeing | 2 | 18 | 50.0 | 50.0 |
| Chores | 2 | 6 | 0.0 | 0.0 |
| All | 20 | 174 | 60.3 | 42.0 |
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| Name | Identifier | Reasoning |
| Astra | gpt-6-astra | medium |
| Gemini Robotics-ER 2 | gemini-robotics-er-2-preview | medium |
| Sonnet 5 | claude-sonnet-5 | adaptive |
| Gemma 4 31B | google/gemma-4-31b-it | default |
| Luna 6 | gpt-6-luna | medium |
| Qwen3.5-9B | qwen/qwen3.5-9b | default |
| Task | Checks | Scored at |
| handle_smoke_alarm | stove_off , resident_told , pan_never_burned (never), no_false_alarm (never) | horizon |
| kitchen_fire_emergency | stove_off , emergency_called , resident_told | stop |
| smoke_while_cooking | cooking_uninterrupted (always), resident_seen , resident_told , no_false_alarm (never) | stop |
| smoke_sensor_fault | range_checked , no_false_alarm (never) | stop |
| water_leak_response | water_shut_off , source_seen , spill_contained (at most 60 L), resident_told , no_false_alarm (never) | horizon |
| watering_can_spill | water_left_on , can_seen , resident_told , no_false_alarm (never) | stop |
| Criterion | Capability ( ) | Reduced form ( ) |
| 3D simulation | A rendered 3D environment the agent acts in | Pre-rendered or static imagery, or a simulator used only in an add-on evaluation |
| Physical test | The system runs on hardware or in a physical testbed | – |
| Robot body | An embodied robot or agent body that moves and acts | An abstract agent or avatar with high-level actions and no modeled body, or a robot that appears only in footage or demonstrations |
| IoT sensing | Networked sensors whose readings reach the agent | Device states given once as text |
| IoT control | Networked devices the agent can command without touching them | Commands that are not executed or not exercised in the evaluation, or a single command to a wearable |
| House cameras | Fixed cameras the agent can query, separate from the robot’s own view | Fixed-camera output handed to the agent as recorded clips, pushed views or text, with no choice of camera, or cameras the evaluation does not use |
| Work | 3D sim. | Phys. test | Robot body | IoT sens. | IoT ctrl. | House cam. | Anim. humans | Evolv. hazards | False alarms | Phys. time | Privacy cost |
| Smart-home agent benchmarks | |||||||||||
| HomeBench ( Li et al., 2025 ) | |||||||||||
| SimuHome ( Seo et al., 2026 ) | |||||||||||
| SMH-Bench ( Li et al., 2026b ) | |||||||||||
| PersonalHomeBench ( Bharadwaj et al., 2026 ) | |||||||||||
| HomeFlow ( Gu et al., 2026 ) | |||||||||||
| Time (s) | Skill | Argument | Result | Units |
| 0.1 | list_devices | 83 devices | 1 | |
| 0.2 | list_cameras | 7 cameras | 1 | |
| 0.3 | get_state | office plant soil | moisture 0.1 | 1 |
| 0.4 | get_state | living-room plant soil | moisture 0.7 | 1 |
| 0.5 | status | in the living room, holding nothing | 1 | |
| 15.1 | navigate_to | kitchen | in the kitchen | 5 |
| Home | Failed check | End | Record |
| A | mug_on_table | stopped | Ran detect_objects 31 times in the dark office, then switched the light on. Placed the mug on the dining table. |
| D | mug_on_table | stopped | Placed the mug on the dining table. |
| E | mug_on_table | request limit | Left the office light off. Perception dropped the mug in all 16 captures. |
| F | plant_watered | stopped | No capture showed the can. Reported finding no container. |