from models import Furniture TASKS = { # ─── EASY — 10x10 Bedroom ─────────────────────────────────────────────────── # Door at left-middle. Windows on right wall. "easy": { "description": "Bedroom Setup. Place all 8 items following real interior design rules.", "difficulty": "easy", "room_size": (10, 10), "door_position": (0, 5), "windows": [(9, 2), (9, 3), (9, 4)], "items": [ Furniture(id="bed", width=2, height=3, rules=["must_touch_wall"]), Furniture(id="nightstand", width=1, height=1, rules=["adjacent_to:bed"]), Furniture(id="wardrobe", width=1, height=3, rules=["must_touch_wall", "is_tall"]), Furniture(id="mirror", width=1, height=1, rules=["must_touch_wall", "adjacent_to:wardrobe"]), Furniture(id="desk", width=2, height=1, rules=["near_window", "needs_sunlight"]), Furniture(id="desk_chair", width=1, height=1, rules=["adjacent_to:desk"]), Furniture(id="floor_lamp", width=1, height=1, rules=["must_touch_wall", "near_window"]), Furniture(id="plant", width=1, height=1, rules=["near_window"]), ], "max_steps": 16, }, # ─── MEDIUM — 12x12 Living Room ───────────────────────────────────────────── # Door at top-center. Windows on right wall. "medium": { "description": "Living Room Design. 10 objects, facing constraints and flow rules.", "difficulty": "medium", "room_size": (12, 12), "door_position": (5, 0), "windows": [(11, 5), (11, 6), (11, 7), (11, 8)], "items": [ Furniture(id="tv_stand", width=2, height=1, rules=["must_touch_wall", "emits_heat:4"]), Furniture(id="sofa", width=3, height=1, rules=["must_face:tv_stand", "thermal_comfort:-2:4"]), Furniture(id="coffee_table", width=2, height=1, rules=["adjacent_to:sofa"]), Furniture(id="rug", width=3, height=2, rules=["adjacent_to:coffee_table"]), Furniture(id="armchair", width=1, height=1, rules=["adjacent_to:sofa"]), Furniture(id="side_table", width=1, height=1, rules=["adjacent_to:armchair"]), Furniture(id="bookshelf", width=1, height=2, rules=["must_touch_wall", "is_tall"]), Furniture(id="floor_lamp", width=1, height=1, rules=["adjacent_to:sofa"]), Furniture(id="plant", width=1, height=1, rules=["near_window", "needs_sunlight"]), Furniture(id="curtains", width=2, height=1, rules=["must_touch_wall", "near_window"]), ], "max_steps": 20, }, # ─── HARD — 15x12 Studio Apartment ────────────────────────────────────────── # Door at left-middle. Windows at top-right and bottom-right. "hard": { "description": "Studio Apartment. 15 objects. Every item has a strict architectural rule.", "difficulty": "hard", "room_size": (15, 12), "door_position": (0, 4), "windows": [(14, 2), (14, 3), (14, 9), (14, 10)], "items": [ # Entrance area Furniture(id="coat_hanger", width=1, height=1, rules=["must_touch_wall", "near_door"]), # Kitchen zone Furniture(id="kitchen_counter",width=4, height=1, rules=["must_touch_wall"]), # Sleeping zone Furniture(id="bed", width=2, height=3, rules=["must_touch_wall", "near_window", "thermal_comfort:-4:0"]), Furniture(id="nightstand", width=1, height=1, rules=["adjacent_to:bed"]), Furniture(id="wardrobe", width=1, height=3, rules=["must_touch_wall", "is_tall"]), # Living zone Furniture(id="tv_stand", width=2, height=1, rules=["must_touch_wall", "emits_heat:4"]), Furniture(id="sofa", width=3, height=1, rules=["must_face:tv_stand", "thermal_comfort:-3:4"]), Furniture(id="coffee_table", width=2, height=1, rules=["adjacent_to:sofa"]), Furniture(id="armchair", width=1, height=1, rules=["adjacent_to:sofa"]), Furniture(id="side_table", width=1, height=1, rules=["adjacent_to:armchair"]), Furniture(id="floor_lamp", width=1, height=1, rules=["adjacent_to:sofa"]), # Dining zone Furniture(id="dining_table", width=2, height=2, rules=["all_sides_clear"]), Furniture(id="dining_chair_l", width=1, height=1, rules=["adjacent_to:dining_table"]), Furniture(id="dining_chair_r", width=1, height=1, rules=["adjacent_to:dining_table"]), # Decor Furniture(id="plant", width=1, height=1, rules=["near_window", "needs_sunlight"]), ], "max_steps": 30, }, }