14 room calculators in cm: rug size, sofa fit, TV height, paint, curtains, lighting and more.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use when someone asks how to use a feng shui bagua map in a room or a home, which area of a room is wealth or relationships, or where their door falls on the bagua. It reports what the tradition says; feng shui is a tradition, not a science.
For the compass method: the way you face as you walk in, N, NE, E, SE, S, SW, W or NW.
btb (from the door, the Western school) or compass.
The wall the door is on, as drawn on the plan: bottom, left, top or right.
Where the door is on that wall, standing in the doorway looking in: left, middle or right.
The room’s width, across the plan (cm).
The room’s length, up the plan (cm).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http room-tools https://snuug.app/mcp
Use when someone asks how to use a feng shui bagua map in a room or a home, which area of a room is wealth or relationships, or where their door falls on the bagua. It reports what the tradition says; feng shui is a tradition, not a science.
| Argument | Type | Description |
|---|---|---|
| facing | string | For the compass method: the way you face as you walk in, N, NE, E, SE, S, SW, W or NW. |
| method | string | btb (from the door, the Western school) or compass. |
| door_wall | string | The wall the door is on, as drawn on the plan: bottom, left, top or right. |
| door_position | string | Where the door is on that wall, standing in the doorway looking in: left, middle or right. |
| room_width_cm | number | The room’s width, across the plan (cm). |
| room_length_cm | number | The room’s length, up the plan (cm). |
{
"type": "object",
"required": [],
"properties": {
"facing": {
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
],
"type": "string",
"default": "N",
"description": "For the compass method: the way you face as you walk in, N, NE, E, SE, S, SW, W or NW."
},
"method": {
"enum": [
"btb",
"compass"
],
"type": "string",
"default": "btb",
"description": "btb (from the door, the Western school) or compass."
},
"door_wall": {
"enum": [
"bottom",
"left",
"top",
"right"
],
"type": "string",
"default": "bottom",
"description": "The wall the door is on, as drawn on the plan: bottom, left, top or right."
},
"door_position": {
"enum": [
"left",
"middle",
"right"
],
"type": "string",
"default": "middle",
"description": "Where the door is on that wall, standing in the doorway looking in: left, middle or right."
},
"room_width_cm": {
"type": "number",
"default": 300,
"maximum": 3000,
"minimum": 50,
"description": "The room’s width, across the plan (cm)."
},
"room_length_cm": {
"type": "number",
"default": 350,
"maximum": 3000,
"minimum": 50,
"description": "The room’s length, up the plan (cm)."
}
},
"additionalProperties": false
}Use when someone asks what size curtains, curtain pole or track to buy, how high to hang a curtain pole, or which UK ready-made curtain size fits a window. Returns the pole’s length and height, the ready-made pair and the made-to-measure sizes.
| Argument | Type | Description |
|---|---|---|
| length | string | Where the hem ends: sill, below_sill, floor or puddle (on the floor). |
| fitting | string | pole or track. |
| heading | string | The curtain heading: eyelet, pencil_pleat or tab_top. |
| fullness | number | The curtains’ total flat width ÷ the pole’s length; default the heading’s usual (2, or 1.5 for tab top). |
| sill_height_cm | number | The sill’s height from the floor (cm). |
| window_width_cm | number | The window’s width, outside the frame (cm). |
| window_height_cm | number | The window’s height, outside the frame (cm). |
| ceiling_height_cm | number | The ceiling’s height from the floor (cm). |
Use when someone asks what size dining table fits a room, how many people a table seats, or how big a room must be for a table for a number of people. Uses UK stock table sizes and the space a chair needs behind it.
| Argument | Type | Description |
|---|---|---|
| mode | string | room (start from the room’s size) or people (start from how many people). |
| shape | string | rectangle, round or oval. |
| people | integer | In people mode: the number of people. |
| clearance | string | The gap behind the chairs: tight, no_traffic (to a wall), edge_past or walk_past (someone passes). |
| room_width_cm | number | In room mode: the room’s width (cm). |
| room_length_cm | number | In room mode: the room’s length (cm). |
{
"type": "object",
"required": [],
"properties": {
"mode": {
"enum": [
"room",
"people"
],
"type": "string",
"default": "room",
"description": "room (start from the room’s size) or people (start from how many people)."
},
"shape": {
"enum": [
"rectangle",
"round",
"oval"
],
"type": "string",
"default": "rectangle",
"description": "rectangle, round or oval."
},
"people": {
"type": "integer",
"default": 6,
"maximum": 14,
"minimum": 1,
"description": "In people mode: the number of people."
},
"clearance": {
"enum": [
"tight",
"no_traffic",
"edge_past",
"walk_past"
],
"type": "string",
"default": "edge_past",
"description": "The gap behind the chairs: tight, no_traffic (to a wall), edge_past or walk_past (someone passes)."
},
"room_width_cm": {
"type": "number",
"default": 300,
"maximum": 1500,
"minimum": 150,
"description": "In room mode: the room’s width (cm)."
},
"room_length_cm": {
"type": "number",
"default": 360,
"maximum": 1500,
"minimum": 150,
"description": "In room mode: the room’s length (cm)."
}
},
"additionalProperties": false
}Use when someone asks how big a flat or house should be for a number of people or bedrooms, whether a home or bedroom is big enough, or what England’s nationally described space standard requires. England only; it is a planning standard for new homes.
| Argument | Type | Description |
|---|---|---|
| people | integer | The people the home is for (one bed space each). |
| storeys | integer | The floors the home has (1 for a flat). |
| bedrooms | integer | The number of bedrooms. |
| home_area_m2 | number | Optional: the home’s gross internal floor area, to compare with the standard (m²). |
| bedroom_1_width_cm | number | Optional: bedroom 1's width, with its length. The bedrooms are ranked by floor area before the checks (cm). |
| bedroom_2_width_cm | number | Optional: bedroom 2's width, with its length. The bedrooms are ranked by floor area before the checks (cm). |
| bedroom_3_width_cm | number | Optional: bedroom 3's width, with its length. The bedrooms are ranked by floor area before the checks (cm). |
| bedroom_4_width_cm |
Use when someone asks for their feng shui kua number, East or West group, or favourable directions from a birth date. It reports what the Eight Mansions school says; feng shui is a tradition, not a science.
| Argument | Type | Description |
|---|---|---|
| formula | string | both, female or male: the tradition has one formula for each sex at birth. |
| birth_date* | string | The birth date, YYYY-MM-DD, from 1901 to 2099. |
| birth_time | string | Optional: the local birth time, HH:MM. It matters only on the day of Li Chun (about 4 February). |
| utc_offset_minutes | integer | The birth place’s offset from UTC in early February, in minutes (0 for the UK, 480 for China) (minutes). |
{
"type": "object",
"required": [
"birth_date"
],
"properties": {
"formula": {
"enum": [
"both",
"female",
"male"
],
"type": "string",
"default": "both",
"description": "both, female or male: the tradition has one formula for each sex at birth."
},
"birth_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"examples": [
"1990-06-15"
],
"description": "The birth date, YYYY-MM-DD, from 1901 to 2099."
},
"birth_time": {
"type": "string",
"pattern": "^\\d{1,2}:\\d{2}$",
"examples": [
"08:30"
],
"description": "Optional: the local birth time, HH:MM. It matters only on the day of Li Chun (about 4 February)."
},
"utc_offset_minutes": {
"type": "integer",
"default": 0,
"maximum": 840,
"minimum": -720,
"description": "The birth place’s offset from UTC in early February, in minutes (0 for the UK, 480 for China) (minutes)."
}
},
"additionalProperties": false
}Use when someone asks how much paint, how many litres or which tins they need for a room’s walls, its ceiling or one feature wall. Returns litres and the cheapest mix of 5 l and 2.5 l tins.
| Argument | Type | Description |
|---|---|---|
| coats | integer | Coats of paint (default 2). |
| doors | integer | Doors to leave out (default 1; 0 for a feature wall). |
| paint | string | matt, silk or custom (then give coverage_m2_per_l). |
| windows | integer | Windows to leave out (default 1; 0 for a feature wall). |
| surfaces | string | What to paint: walls, ceiling, both (walls and ceiling) or feature (one wall). |
| spare_pct | number | Extra paint to buy, in % (default 10) (%). |
| new_plaster | string | yes for new plaster, which needs a mist coat first. |
| feature_wall | string | For a feature wall: a length wall or a width wall. |
| door_width_cm | number |
Use when someone asks how high to hang a pendant or chandelier over a dining table or kitchen island, how long its drop should be, or what diameter of light suits a table or room.
| Argument | Type | Description |
|---|---|---|
| place | string | table (over a table or island) or floor (over open floor or a hall). |
| lights | integer | Over a table: how many lights in a row (1–3). |
| room_width_cm | number | The room’s width, for the room-size rule (cm). |
| room_length_cm | number | The room’s length, for the room-size rule (cm). |
| table_width_cm | number | Over a table: its width (cm). |
| table_height_cm | number | Over a table: its height (cm). |
| table_length_cm | number | Over a table: its length (cm). |
| ceiling_height_cm | number | The ceiling height (cm). |
| fitting_height_cm | number |
Use when someone asks how high to hang a picture, a print, a mirror or art, on an open wall or above a sofa, bed or sideboard. Returns the hook’s height from the floor and checks the art’s width against the furniture.
| Argument | Type | Description |
|---|---|---|
| place | string | open_wall, or over_furniture (a sofa, bed or sideboard). |
| frame_width_cm | number | The frame’s width (cm). |
| hanger_drop_cm | number | The hanger drop: from the frame’s top edge down to the wire pulled tight, or to the D-ring (cm). |
| frame_height_cm | number | The frame’s height (cm). |
| centre_height_cm | number | On an open wall, the picture’s centre height (default 145, the gallery height; 150 also common) (cm). |
| furniture_gap_cm | number | Over furniture: the gap from its top to the frame (designers use 15–25 cm) (cm). |
| furniture_width_cm | number | Over furniture: its width, to check the art is about two thirds of it (cm). |
| furniture_height_cm | number |
Use when someone asks how bright a room’s lights should be, how many lumens, bulbs or downlights a room needs, how far apart to space downlights, or what colour temperature to choose.
| Argument | Type | Description |
|---|---|---|
| room_type | string | living, bedroom, kitchen, bathroom or home_office. |
| wall_colour | string | light, or dark (dark walls reflect less, so the room needs more light). |
| room_width_cm | number | The room’s width (cm). |
| room_length_cm | number | The room’s length (cm). |
| ceiling_height_cm | number | The ceiling height (cm). |
{
"type": "object",
"required": [],
"properties": {
"room_type": {
"enum": [
"living",
"bedroom",
"kitchen",
"bathroom",
"home_office"
],
"type": "string",
"default": "living",
"description": "living, bedroom, kitchen, bathroom or home_office."
},
"wall_colour": {
"enum": [
"light",
"dark"
],
"type": "string",
"default": "light",
"description": "light, or dark (dark walls reflect less, so the room needs more light)."
},
"room_width_cm": {
"type": "number",
"default": 400,
"maximum": 2000,
"minimum": 100,
"description": "The room’s width (cm)."
},
"room_length_cm": {
"type": "number",
"default": 450,
"maximum": 2000,
"minimum": 100,
"description": "The room’s length (cm)."
},
"ceiling_height_cm": {
"type": "number",
"default": 240,
"maximum": 600,
"minimum": 200,
"description": "The ceiling height (cm)."
}
},
"additionalProperties": false
}Use when someone asks for a room’s floor area, perimeter, volume or carpet and skirting amounts, or what a size such as 3 × 4 m or 12 × 12 ft means (a box room, a single or double bedroom). Handles L-shaped rooms and bay windows.
| Argument | Type | Description |
|---|---|---|
| bay | string | A bay window in the front wall: none, square (sides at 90°) or angled (sides at 45°, the usual UK canted bay). |
| doors | integer | Doorways, left out of the skirting. |
| shape | string | rectangle, or l_shape (a second part on the right-hand wall, flush with the far corner). |
| bay_depth_cm | number | How far the bay sticks out (cm). |
| bay_width_cm | number | The bay’s width at the wall (cm). |
| room_width_cm | number | The room’s width (along the window wall) (cm). |
| part2_depth_cm | number | An L-shaped room’s second part: how far it sticks out (cm). |
| room_length_cm | number | The room’s length (cm). |
Use when someone asks what size rug fits their living room or goes under or in front of their sofa. Returns the UK and US stock rug sizes that run past each end of the sofa and leave bare floor to the walls.
| Argument | Type | Description |
|---|---|---|
| armchairs | string | none, or two armchairs facing the sofa, which the rug must also reach. |
| legs_on_rug | string | Which sofa legs stand on the rug: all, front (the usual choice) or none (the rug sits under the coffee table only). |
| room_width_cm | number | The room’s width along the wall the sofa stands against (cm). |
| sofa_depth_cm | number | The sofa’s depth, back to front (cm). |
| sofa_width_cm | number | The sofa’s width, arm to arm (cm). |
| room_length_cm | number | The room’s length, out from the sofa wall (cm). |
{
"type": "object",
"required": [],
"properties": {
"armchairs": {
"enum": [
"none",
"two"
],
"type": "string",
"default": "none",
"description": "none, or two armchairs facing the sofa, which the rug must also reach."
},
"legs_on_rug": {
"enum": [
"all",
"front",
"none"
],
"type": "string",
"default": "front",
"description": "Which sofa legs stand on the rug: all, front (the usual choice) or none (the rug sits under the coffee table only)."
},
"room_width_cm": {
"type": "number",
"default": 400,
"maximum": 1500,
"minimum": 150,
"description": "The room’s width along the wall the sofa stands against (cm)."
},
"sofa_depth_cm": {
"type": "number",
"default": 90,
"maximum": 200,
"minimum": 50,
"description": "The sofa’s depth, back to front (cm)."
},
"sofa_width_cm": {
"type": "number",
"default": 210,
"maximum": 500,
"minimum": 60,
"description": "The sofa’s width, arm to arm (cm)."
},
"room_length_cm": {
"type": "number",
"default": 450,
"maximum": 1500,
"minimum": 150,
"description": "The room’s length, out from the sofa wall (cm)."
}
},
"additionalProperties": false
}Use when someone asks whether a sofa (or another large piece) will fit through a door, round a turn in a hall or up to a room. Applies the furniture shops’ straight, tipped-back, on-end and swing tests and grades each ok, tight or no.
| Argument | Type | Description |
|---|---|---|
| route | string | turn if the sofa must turn into the room after the door, straight if it goes straight on. |
| door_width_cm | number | The door’s clear width: the gap with the door open, frame to door edge (cm). |
| hall_width_cm | number | The width of the hall or landing beyond the door, where the sofa must turn (cm). |
| sofa_depth_cm | number | The sofa’s depth, back to front (cm). |
| sofa_width_cm | number | The sofa’s width, arm to arm (its length when carried) (cm). |
| door_height_cm | number | The door’s clear height (cm). |
| sofa_height_cm | number | The sofa’s height, floor to the top of the back (cm). |
| sofa_diagonal_cm | number | The sofa’s diagonal depth: from the back bottom corner to a straight edge laid from the top of the back to the front of the arm (cm). |
Use when someone asks how high to mount or hang a TV, whether it can go above a fireplace, or how far to sit from a screen of a given size. Returns the centre height, the edges, the viewing angles and the THX and SMPTE seat distances.
| Argument | Type | Description |
|---|---|---|
| eye_height_cm | number | Seated eye height from the floor (most sofas: 100–110 cm) (cm). |
| screen_size_in | number | The screen’s diagonal size in inches, as sold (in). |
| above_fireplace | string | yes if the screen goes above a fireplace or mantel. |
| mantel_height_cm | number | The mantel’s height from the floor (only with above_fireplace yes) (cm). |
| seat_distance_cm | number | The distance from the seat to the screen (cm). |
{
"type": "object",
"required": [],
"properties": {
"eye_height_cm": {
"type": "number",
"default": 105,
"maximum": 180,
"minimum": 60,
"description": "Seated eye height from the floor (most sofas: 100–110 cm) (cm)."
},
"screen_size_in": {
"type": "number",
"default": 55,
"maximum": 120,
"minimum": 19,
"description": "The screen’s diagonal size in inches, as sold (in)."
},
"above_fireplace": {
"enum": [
"no",
"yes"
],
"type": "string",
"default": "no",
"description": "yes if the screen goes above a fireplace or mantel."
},
"mantel_height_cm": {
"type": "number",
"default": 120,
"maximum": 250,
"minimum": 40,
"description": "The mantel’s height from the floor (only with above_fireplace yes) (cm)."
},
"seat_distance_cm": {
"type": "number",
"default": 270,
"maximum": 1000,
"minimum": 80,
"description": "The distance from the seat to the screen (cm)."
}
},
"additionalProperties": false
}Use when someone asks how many rolls of wallpaper they need for a room, some walls or one feature wall, including a pattern repeat and a straight or offset match.
| Argument | Type | Description |
|---|---|---|
| mode | string | room (all four walls), walls (some walls) or feature (one wall). |
| doors | integer | Doors, each saving a drop (default 1 for a room, else 0). |
| match | string | free (or plain), straight or offset (half-drop). |
| trim_cm | number | Extra on each drop for trimming (default 10 cm) (cm). |
| spare_rolls | integer | Spare rolls from the same batch (default 1). |
| roll_width_cm | number | The roll’s width (default 53 cm) (cm). |
| room_width_cm | number | For a room: its width (cm). |
| wall_width_cm | number | For walls or a feature wall: the width, the walls added up (cm). |
| roll_length_cm | number |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 10, 2026.
{
"type": "object",
"required": [],
"properties": {
"length": {
"enum": [
"sill",
"below_sill",
"floor",
"puddle"
],
"type": "string",
"default": "floor",
"description": "Where the hem ends: sill, below_sill, floor or puddle (on the floor)."
},
"fitting": {
"enum": [
"pole",
"track"
],
"type": "string",
"default": "pole",
"description": "pole or track."
},
"heading": {
"enum": [
"eyelet",
"pencil_pleat",
"tab_top"
],
"type": "string",
"default": "eyelet",
"description": "The curtain heading: eyelet, pencil_pleat or tab_top."
},
"fullness": {
"type": "number",
"default": 2,
"maximum": 3,
"minimum": 1.2,
"description": "The curtains’ total flat width ÷ the pole’s length; default the heading’s usual (2, or 1.5 for tab top)."
},
"sill_height_cm": {
"type": "number",
"default": 90,
"maximum": 200,
"minimum": 0,
"description": "The sill’s height from the floor (cm)."
},
"window_width_cm": {
"type": "number",
"default": 120,
"maximum": 600,
"minimum": 30,
"description": "The window’s width, outside the frame (cm)."
},
"window_height_cm": {
"type": "number",
"default": 115,
"maximum": 400,
"minimum": 30,
"description": "The window’s height, outside the frame (cm)."
},
"ceiling_height_cm": {
"type": "number",
"default": 240,
"maximum": 500,
"minimum": 180,
"description": "The ceiling’s height from the floor (cm)."
}
},
"additionalProperties": false
}| number |
| Optional: bedroom 4's width, with its length. The bedrooms are ranked by floor area before the checks (cm). |
| bedroom_5_width_cm | number | Optional: bedroom 5's width, with its length. The bedrooms are ranked by floor area before the checks (cm). |
| bedroom_6_width_cm | number | Optional: bedroom 6's width, with its length. The bedrooms are ranked by floor area before the checks (cm). |
| bedroom_1_length_cm | number | Optional: bedroom 1's length, with its width (cm). |
| bedroom_2_length_cm | number | Optional: bedroom 2's length, with its width (cm). |
| bedroom_3_length_cm | number | Optional: bedroom 3's length, with its width (cm). |
| bedroom_4_length_cm | number | Optional: bedroom 4's length, with its width (cm). |
| bedroom_5_length_cm | number | Optional: bedroom 5's length, with its width (cm). |
| bedroom_6_length_cm | number | Optional: bedroom 6's length, with its width (cm). |
{
"type": "object",
"required": [],
"properties": {
"people": {
"type": "integer",
"default": 4,
"maximum": 12,
"minimum": 1,
"description": "The people the home is for (one bed space each)."
},
"storeys": {
"type": "integer",
"default": 2,
"maximum": 3,
"minimum": 1,
"description": "The floors the home has (1 for a flat)."
},
"bedrooms": {
"type": "integer",
"default": 3,
"maximum": 6,
"minimum": 1,
"description": "The number of bedrooms."
},
"home_area_m2": {
"type": "number",
"maximum": 2000,
"minimum": 10,
"description": "Optional: the home’s gross internal floor area, to compare with the standard (m²)."
},
"bedroom_1_width_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 1's width, with its length. The bedrooms are ranked by floor area before the checks (cm)."
},
"bedroom_2_width_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 2's width, with its length. The bedrooms are ranked by floor area before the checks (cm)."
},
"bedroom_3_width_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 3's width, with its length. The bedrooms are ranked by floor area before the checks (cm)."
},
"bedroom_4_width_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 4's width, with its length. The bedrooms are ranked by floor area before the checks (cm)."
},
"bedroom_5_width_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 5's width, with its length. The bedrooms are ranked by floor area before the checks (cm)."
},
"bedroom_6_width_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 6's width, with its length. The bedrooms are ranked by floor area before the checks (cm)."
},
"bedroom_1_length_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 1's length, with its width (cm)."
},
"bedroom_2_length_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 2's length, with its width (cm)."
},
"bedroom_3_length_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 3's length, with its width (cm)."
},
"bedroom_4_length_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 4's length, with its width (cm)."
},
"bedroom_5_length_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 5's length, with its width (cm)."
},
"bedroom_6_length_cm": {
"type": "number",
"maximum": 2000,
"minimum": 100,
"description": "Optional: bedroom 6's length, with its width (cm)."
}
},
"additionalProperties": false
}| A door’s width (default the UK standard internal door) (cm). |
| room_width_cm | number | The room’s width (cm). |
| door_height_cm | number | A door’s height (default the UK standard internal door) (cm). |
| room_length_cm | number | The room’s length (cm). |
| window_width_cm | number | A window’s width (cm). |
| window_height_cm | number | A window’s height (cm). |
| ceiling_height_cm | number | The ceiling height (cm). |
| coverage_m2_per_l | number | The square metres a litre covers, from the tin (m²/l). |
{
"type": "object",
"required": [],
"properties": {
"coats": {
"type": "integer",
"default": 2,
"maximum": 5,
"minimum": 1,
"description": "Coats of paint (default 2)."
},
"doors": {
"type": "integer",
"default": 1,
"maximum": 12,
"minimum": 0,
"description": "Doors to leave out (default 1; 0 for a feature wall)."
},
"paint": {
"enum": [
"matt",
"silk",
"custom"
],
"type": "string",
"default": "matt",
"description": "matt, silk or custom (then give coverage_m2_per_l)."
},
"windows": {
"type": "integer",
"default": 1,
"maximum": 12,
"minimum": 0,
"description": "Windows to leave out (default 1; 0 for a feature wall)."
},
"surfaces": {
"enum": [
"walls",
"ceiling",
"both",
"feature"
],
"type": "string",
"default": "walls",
"description": "What to paint: walls, ceiling, both (walls and ceiling) or feature (one wall)."
},
"spare_pct": {
"type": "number",
"default": 10,
"maximum": 50,
"minimum": 0,
"description": "Extra paint to buy, in % (default 10) (%)."
},
"new_plaster": {
"enum": [
"no",
"yes"
],
"type": "string",
"default": "no",
"description": "yes for new plaster, which needs a mist coat first."
},
"feature_wall": {
"enum": [
"length",
"width"
],
"type": "string",
"default": "length",
"description": "For a feature wall: a length wall or a width wall."
},
"door_width_cm": {
"type": "number",
"default": 76.2,
"maximum": 300,
"minimum": 40,
"description": "A door’s width (default the UK standard internal door) (cm)."
},
"room_width_cm": {
"type": "number",
"default": 300,
"maximum": 3000,
"minimum": 100,
"description": "The room’s width (cm)."
},
"door_height_cm": {
"type": "number",
"default": 198.1,
"maximum": 300,
"minimum": 150,
"description": "A door’s height (default the UK standard internal door) (cm)."
},
"room_length_cm": {
"type": "number",
"default": 400,
"maximum": 3000,
"minimum": 100,
"description": "The room’s length (cm)."
},
"window_width_cm": {
"type": "number",
"default": 120,
"maximum": 600,
"minimum": 20,
"description": "A window’s width (cm)."
},
"window_height_cm": {
"type": "number",
"default": 120,
"maximum": 400,
"minimum": 20,
"description": "A window’s height (cm)."
},
"ceiling_height_cm": {
"type": "number",
"default": 240,
"maximum": 600,
"minimum": 150,
"description": "The ceiling height (cm)."
},
"coverage_m2_per_l": {
"type": "number",
"default": 13,
"maximum": 25,
"minimum": 3,
"description": "The square metres a litre covers, from the tin (m²/l)."
}
},
"additionalProperties": false
}| The shade’s own height, top to bottom (cm). |
{
"type": "object",
"required": [],
"properties": {
"place": {
"enum": [
"table",
"floor"
],
"type": "string",
"default": "table",
"description": "table (over a table or island) or floor (over open floor or a hall)."
},
"lights": {
"type": "integer",
"default": 1,
"maximum": 3,
"minimum": 1,
"description": "Over a table: how many lights in a row (1–3)."
},
"room_width_cm": {
"type": "number",
"default": 350,
"maximum": 2000,
"minimum": 100,
"description": "The room’s width, for the room-size rule (cm)."
},
"room_length_cm": {
"type": "number",
"default": 400,
"maximum": 2000,
"minimum": 100,
"description": "The room’s length, for the room-size rule (cm)."
},
"table_width_cm": {
"type": "number",
"default": 90,
"maximum": 200,
"minimum": 40,
"description": "Over a table: its width (cm)."
},
"table_height_cm": {
"type": "number",
"default": 75,
"maximum": 120,
"minimum": 40,
"description": "Over a table: its height (cm)."
},
"table_length_cm": {
"type": "number",
"default": 180,
"maximum": 400,
"minimum": 40,
"description": "Over a table: its length (cm)."
},
"ceiling_height_cm": {
"type": "number",
"default": 240,
"maximum": 600,
"minimum": 180,
"description": "The ceiling height (cm)."
},
"fitting_height_cm": {
"type": "number",
"default": 30,
"maximum": 200,
"minimum": 2,
"description": "The shade’s own height, top to bottom (cm)."
}
},
"additionalProperties": false
}| Over furniture: the furniture’s top, from the floor (cm). |
{
"type": "object",
"required": [],
"properties": {
"place": {
"enum": [
"open_wall",
"over_furniture"
],
"type": "string",
"default": "open_wall",
"description": "open_wall, or over_furniture (a sofa, bed or sideboard)."
},
"frame_width_cm": {
"type": "number",
"default": 40,
"maximum": 400,
"minimum": 5,
"description": "The frame’s width (cm)."
},
"hanger_drop_cm": {
"type": "number",
"default": 8,
"maximum": 100,
"minimum": 0,
"description": "The hanger drop: from the frame’s top edge down to the wire pulled tight, or to the D-ring (cm)."
},
"frame_height_cm": {
"type": "number",
"default": 50,
"maximum": 300,
"minimum": 5,
"description": "The frame’s height (cm)."
},
"centre_height_cm": {
"type": "number",
"default": 145,
"maximum": 200,
"minimum": 100,
"description": "On an open wall, the picture’s centre height (default 145, the gallery height; 150 also common) (cm)."
},
"furniture_gap_cm": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 0,
"description": "Over furniture: the gap from its top to the frame (designers use 15–25 cm) (cm)."
},
"furniture_width_cm": {
"type": "number",
"default": 210,
"maximum": 500,
"minimum": 20,
"description": "Over furniture: its width, to check the art is about two thirds of it (cm)."
},
"furniture_height_cm": {
"type": "number",
"default": 85,
"maximum": 200,
"minimum": 20,
"description": "Over furniture: the furniture’s top, from the floor (cm)."
}
},
"additionalProperties": false
}| part2_length_cm |
| number |
| An L-shaped room’s second part: its length along the main room (cm). |
| ceiling_height_cm | number | The ceiling height, for the volume (cm). |
{
"type": "object",
"required": [],
"properties": {
"bay": {
"enum": [
"none",
"square",
"angled"
],
"type": "string",
"default": "none",
"description": "A bay window in the front wall: none, square (sides at 90°) or angled (sides at 45°, the usual UK canted bay)."
},
"doors": {
"type": "integer",
"default": 1,
"maximum": 12,
"minimum": 0,
"description": "Doorways, left out of the skirting."
},
"shape": {
"enum": [
"rectangle",
"l_shape"
],
"type": "string",
"default": "rectangle",
"description": "rectangle, or l_shape (a second part on the right-hand wall, flush with the far corner)."
},
"bay_depth_cm": {
"type": "number",
"default": 60,
"maximum": 500,
"minimum": 0,
"description": "How far the bay sticks out (cm)."
},
"bay_width_cm": {
"type": "number",
"default": 200,
"maximum": 5000,
"minimum": 0,
"description": "The bay’s width at the wall (cm)."
},
"room_width_cm": {
"type": "number",
"default": 350,
"maximum": 5000,
"minimum": 30,
"description": "The room’s width (along the window wall) (cm)."
},
"part2_depth_cm": {
"type": "number",
"default": 150,
"maximum": 5000,
"minimum": 0,
"description": "An L-shaped room’s second part: how far it sticks out (cm)."
},
"room_length_cm": {
"type": "number",
"default": 400,
"maximum": 5000,
"minimum": 30,
"description": "The room’s length (cm)."
},
"part2_length_cm": {
"type": "number",
"default": 200,
"maximum": 5000,
"minimum": 0,
"description": "An L-shaped room’s second part: its length along the main room (cm)."
},
"ceiling_height_cm": {
"type": "number",
"default": 240,
"maximum": 1000,
"minimum": 150,
"description": "The ceiling height, for the volume (cm)."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [],
"properties": {
"route": {
"enum": [
"turn",
"straight"
],
"type": "string",
"default": "turn",
"description": "turn if the sofa must turn into the room after the door, straight if it goes straight on."
},
"door_width_cm": {
"type": "number",
"default": 74,
"maximum": 300,
"minimum": 40,
"description": "The door’s clear width: the gap with the door open, frame to door edge (cm)."
},
"hall_width_cm": {
"type": "number",
"default": 100,
"maximum": 1000,
"minimum": 40,
"description": "The width of the hall or landing beyond the door, where the sofa must turn (cm)."
},
"sofa_depth_cm": {
"type": "number",
"default": 86,
"maximum": 250,
"minimum": 40,
"description": "The sofa’s depth, back to front (cm)."
},
"sofa_width_cm": {
"type": "number",
"default": 180,
"maximum": 500,
"minimum": 50,
"description": "The sofa’s width, arm to arm (its length when carried) (cm)."
},
"door_height_cm": {
"type": "number",
"default": 198,
"maximum": 400,
"minimum": 120,
"description": "The door’s clear height (cm)."
},
"sofa_height_cm": {
"type": "number",
"default": 80,
"maximum": 250,
"minimum": 40,
"description": "The sofa’s height, floor to the top of the back (cm)."
},
"sofa_diagonal_cm": {
"type": "number",
"default": 72,
"maximum": 250,
"minimum": 30,
"description": "The sofa’s diagonal depth: from the back bottom corner to a straight edge laid from the top of the back to the front of the arm (cm)."
}
},
"additionalProperties": false
}| The roll’s length (default the UK standard, 1005 cm) (cm). |
| room_length_cm | number | For a room: its length (cm). |
| wall_height_cm | number | The wall height, skirting to ceiling (cm). |
| pattern_repeat_cm | number | The pattern repeat, from the label (0 for none) (cm). |
{
"type": "object",
"required": [],
"properties": {
"mode": {
"enum": [
"room",
"walls",
"feature"
],
"type": "string",
"default": "room",
"description": "room (all four walls), walls (some walls) or feature (one wall)."
},
"doors": {
"type": "integer",
"default": 1,
"maximum": 12,
"minimum": 0,
"description": "Doors, each saving a drop (default 1 for a room, else 0)."
},
"match": {
"enum": [
"free",
"straight",
"offset"
],
"type": "string",
"default": "free",
"description": "free (or plain), straight or offset (half-drop)."
},
"trim_cm": {
"type": "number",
"default": 10,
"maximum": 50,
"minimum": 0,
"description": "Extra on each drop for trimming (default 10 cm) (cm)."
},
"spare_rolls": {
"type": "integer",
"default": 1,
"maximum": 10,
"minimum": 0,
"description": "Spare rolls from the same batch (default 1)."
},
"roll_width_cm": {
"type": "number",
"default": 53,
"maximum": 200,
"minimum": 20,
"description": "The roll’s width (default 53 cm) (cm)."
},
"room_width_cm": {
"type": "number",
"default": 300,
"maximum": 3000,
"minimum": 100,
"description": "For a room: its width (cm)."
},
"wall_width_cm": {
"type": "number",
"default": 350,
"maximum": 10000,
"minimum": 20,
"description": "For walls or a feature wall: the width, the walls added up (cm)."
},
"roll_length_cm": {
"type": "number",
"default": 1005,
"maximum": 5000,
"minimum": 100,
"description": "The roll’s length (default the UK standard, 1005 cm) (cm)."
},
"room_length_cm": {
"type": "number",
"default": 400,
"maximum": 3000,
"minimum": 100,
"description": "For a room: its length (cm)."
},
"wall_height_cm": {
"type": "number",
"default": 240,
"maximum": 600,
"minimum": 50,
"description": "The wall height, skirting to ceiling (cm)."
},
"pattern_repeat_cm": {
"type": "number",
"default": 0,
"maximum": 200,
"minimum": 0,
"description": "The pattern repeat, from the label (0 for none) (cm)."
}
},
"additionalProperties": false
}