Menu
Problem-solving guide

Will My Sofa Fit Through the Door?

A concrete, reproducible answer to the sofa-through-a-doorway question: how projected width changes with pose, why a conditional verdict is not a yes, and what the engine does and does not check.

Published
Updated
Calculation version
2.0.0
Maintenance
These pages are maintained together with the calculation engine in this repository. A change to the geometry or verdict logic requires the published method statement and its automated checks to be updated in the same change. There is no separately credited editorial team and no external reviewer.
Calculation method

The question

Given a measured sofa and a measured doorway, does this particular sofa actually pass through — and which pose makes it possible?

Short answer

It depends on the pose, not just on the stated width. A sofa that is 900 mm wide will not pass an 800 mm clear opening while upright, but turning it onto its side can present a narrower silhouette to the doorway. The calculator tests six axis-aligned poses and reports the best one; when a pose change is required it returns a conditional result rather than a plain pass. That conditional is a real verdict, not a maybe. The worked example below shows the engine’s live output for exactly this situation.

Why this happens

The stated width is not the silhouette width

Furniture dimensions describe a box along its own axes. A doorway sees a two-dimensional silhouette. Rotate the box by ninety degrees and a different pair of dimensions becomes the width and height of that silhouette.

That is why comparing one number on a spec sheet with one number on a tape measure gives the wrong answer so often. The comparison has to be made after the pose is chosen.

What the three verdicts mean

PASS means the selected pose satisfies the doorway section and the static room volume with no blocking limitation. CONDITIONAL means something real is unresolved: a requested operating clearance cannot be met, no single pose satisfies both checks, or the current pose fails while another tested pose works. FAIL means a conflict has no resolution among the tested poses.

The interface renders the status produced by the engine. It never combines booleans on its own, so the words on screen and the numbers in the comparison table always come from the same calculation.

Passing the door is only half the question

The engine checks the doorway section and the room volume in the same pass and reports whether any single pose satisfies both. A sofa can clear the door and still not fit the room it is going into.

Neither check models the route between them. A narrow hall, a turn on a landing or a stairwell are outside version one — a conditional result is not a promise that the move itself will be easy.

Step by step

  1. 01

    Measure the sofa on its own axes

    Record length (front to back), width (left to right) and height as three numbers in one unit. Include fixed arms and back; decide separately whether legs or packaging come off, and measure the state you will actually move.

  2. 02

    Measure the doorway’s clear opening

    Take the smallest of three width readings and the lowest head height. Do not use the frame’s outside dimensions. Record frame depth if you can reach it.

  3. 03

    Measure the destination room

    Width, length and height of the usable rectangular volume. The room check is static: it asks whether the bounding box fits, not whether you can walk it into place.

  4. 04

    Run the tool, then change the pose

    Enter all values, read the overall status and the comparison table, then try the recommended pose. If a requested extra clearance is not met, the tool says so explicitly instead of quietly rounding it away.

Worked example

Worked example: a 900 mm sofa at an 800 mm opening

A three-seat sofa measures 2100 mm long, 900 mm wide and 800 mm high. The doorway clears 800 mm in width and 2000 mm in height, with a 150 mm frame; the destination room is 3500 × 4500 × 2600 mm. No extra clearance is requested and the upright pose is selected. Every number here is an input. The status, the recommended pose and the remaining clearances in the table below are computed live by the engine.

Input data

ItemThree-seat sofa
Length2100 mm
Width900 mm
Height800 mm
Clear width800 mm
Clear height2000 mm
Frame depth150 mm
Room width3500 mm
Room length4500 mm
Room height2600 mm
Extra clearance0 mm
Selected poseUpright

Calculation process

  1. 01The inputs are already in millimetres. In the upright pose the bounding box presents 900 mm of width to an 800 mm clear opening, so that particular pose cannot satisfy the section.
  2. 02The engine does not stop at the first failure. It evaluates all six axis-aligned poses for the doorway section and for the room volume, then checks whether any single pose satisfies both.
  3. 03Because a different tested pose changes the projected silhouette, the result is a conditional verdict with a recommended pose rather than a plain failure. The table below is the engine’s own output: the negative remaining width belongs to the selected upright pose, while the recommendation comes from the joint pose matrix.

Engine result, computed live

Every value in this table is produced at render time by the same engine that powers the calculator. The article supplies inputs only.

Overall status
CONDITIONAL

The geometry is not definitively clear. A local check needs a different posture, a blocking limitation applies, or no single posture satisfies both checks.

Recommended pose
Upright · quarter turn
ComparisonRequiredAvailableRemaining
Doorway clear width900800-100
Doorway clear height80020001200
Room width90035002600
Room length210045002400
Room height80026001800
  • DOORWAY_REQUIRES_POSE_CHANGE
  • ROOM_FIT_PASS

Calculation version 2.0.0

Applicable range

One rectangular sofa-like box, one straight doorway section, six axis-aligned poses and a rectangular room treated as a static volume.

Limits of this example

  • Only six axis-aligned poses are tested. A diagonal tilt that might squeeze through is not searched, so a conditional result is not proof that no physical solution exists.
  • Upholstery compression, removing legs, detaching arms and unboxing are not modelled. If you move a different shape, measure that shape.
  • The moving path, door leaf, handle, corners and stairs are not modelled.
  • A silhouette exactly equal to the opening is treated as touching, not as a collision; real handling needs a margin.

Formulas used

Axis-aligned bounding box

h_box = |R| · h

R is one of the 3×3 rotation matrices for the six tested poses; |R| takes element-wise absolute value, so the resulting AABB extents are a permutation of length, width and height.

Section comparison

ΔW = W_clear − W_box(pose, width) ΔH = H_clear − H_box(pose, height)

Both must be non-negative in the same pose for the doorway section to pass.

Verdict composition

any FAIL → FAIL; any CONDITIONAL / no joint pose / blocking limitation → CONDITIONAL; else PASS

This is the engine’s merge rule. The UI displays the resulting overallStatus and must not rebuild it from local booleans.

Scope and limits

  • Doorway assessment is SECTION_ONLY; room assessment is STATIC_VOLUME_ONLY. They are separate and reported separately.
  • Continuous rotation angles are not supported (AXIS_ALIGNED_POSES_ONLY).
  • Door leaves, handles, obstacles and frame-depth rotation are not modelled.
  • Moving paths, corners and stairwells are not modelled (PATH_NOT_MODELLED / ROOM_PATH_NOT_MODELLED).
  • Invalid or missing input yields a structured invalid-input failure, never a plausible-looking geometric verdict.

Common mistakes

Comparing the spec sheet width with the door width once

That tests one pose only. A sofa can fail upright and pass on its side because the silhouette swaps which two dimensions are compared.

Reading a conditional verdict as “probably fine”

CONDITIONAL has a specific cause: a pose change is needed, a requested clearance is unmet, or no single pose satisfies both checks. The reasons list names it.

Forgetting the room

A sofa can clear the door and still not fit the destination volume. The engine checks both and reports whether one pose satisfies both.

Assuming the tool models the hallway

It does not. Turning a corner or climbing stairs is outside version one, and no amount of pose switching changes that.

Check your own measurements

Run the fit calculator

Enter your own sofa, doorway and room numbers in the calculator and read the overall status together with the reasons list. Switching the pose updates the comparison table from the same engine, so you can see exactly which silhouette fits instead of trusting a single yes/no label.

Enter your own furniture, doorway and room dimensions to see the same comparisons for a real case.

Open the calculator