Metlivi Blog

How to Design Furniture Placement Previews That Prevent Collisions and Misplacement

For a decorating game, a furniture preview should answer three questions before the player confirms: where will the item land, is that position allowed, and what will happen if they rotate or cancel? Use a live “ghost” of the item, validate its footprint at its current position and rotation, and show a clear reason when placement is blocked. Keep the preview visible until confirmation, and make canceling return the player to the room without placing anything. This guide focuses on designing that placement interaction for game developers.

September 30, 20266 min readLeisure, Travel & City ExperiencesBy Metlivi Editorial Team
Section 1

What should the preview communicate?

Treat the preview as a temporary version of the final furniture, not merely a cursor marker. It should show the item’s size, orientation, contact point with the floor or support surface, and placement state. Google’s ARCore design guidance recommends visualizing the destination point with the object or its shadow and giving timely feedback when a surface is detected. Although AR placement has different constraints from a decorating game, the same principle applies: players need to see where an item is going before they commit. Google’s ARCore content-placement guidance

A useful preview has three legible states: valid, invalid, and unresolved. Valid means the proposed placement meets the game’s rules. Invalid means a known rule is broken, such as overlap with another item or an unsupported surface. Unresolved means the game cannot yet determine a valid target, perhaps because the cursor is over a wall while placing floor furniture. Don’t present unresolved as valid simply because the collision check found nothing; “no collision detected” and “can be placed here” are not the same result.

Section 2

How should validity differ from collision detection?

Collision is only one part of placement validity. A sofa may not intersect another object but still be outside the room, floating above the floor, facing an unusable direction, or blocking a doorway according to the game’s rules. Define validity as a checklist of constraints for each furniture category: allowed support surface, room boundary, collision, orientation limits, and any deliberate access or interaction clearance the game enforces.

Keep hard rules distinct from preferences. A collision or unsupported surface may prevent confirmation. A tight walkway might be a soft warning if the game permits it. This distinction prevents a decorative suggestion from looking like a hard failure, and lets players understand which conditions they can choose to accept. Research on furniture-layout systems also treats arrangements as guided by multiple layout rules rather than geometry alone; Stanford’s published system incorporated interior-design guidelines and evaluated suggested layouts with participants. That supports considering more than collision, though it does not prescribe a particular game interface. Stanford’s Interactive Furniture Layout study

The technical check should match the preview’s transformed footprint. Unreal Engine’s overlap API describes checking a supplied collision shape at a specified position and rotation, while Unity 6’s Physics.OverlapBox accepts a center, half extents, orientation, layer mask, and trigger behavior. These APIs illustrate why a rotation change must trigger a check against the rotated shape. Engine behavior and API details vary by version; use the documentation for the engine version and collision setup actually shipping with the game. Unreal Engine overlap API and Unity 6 Physics.OverlapBox

Section 3

How should valid and invalid positions look?

Pair appearance with a redundant cue. For example, change the ghost’s tint and outline, and show a short status such as “Ready to place” or “Overlaps table.” Color alone can be hard to distinguish, especially over varied floors or lighting. Keep the furniture’s silhouette visible in both states so the player can still judge its position and rotation. If a specific collider caused the block, identifying it can help recovery; avoid overwhelming the preview with every technical detail when one plain-language reason is enough.

Make the state update as the furniture moves, rather than only after the confirm button is pressed. On confirmation, place the furniture only if the current state is valid, and give a brief acknowledgment that the action succeeded. If it is invalid, keep the preview active and state the reason so the player can adjust it without restarting the interaction. This is a design recommendation inferred from the goal of preventing accidental placement and from Google’s guidance to communicate errors clearly and provide an actionable recovery path. Google’s error-state guidance

Avoid relying on a single threshold that flips the whole ghost between valid and invalid without explaining why. If a chair is too close to a wall, for instance, the player should see the actual footprint and receive a specific cue such as “Outside room” or “Overlaps wall.” If the rule is only a preference, label it as a warning and keep confirmation available if that suits the game’s design.

Section 4

What feedback should rotation provide?

Keep the preview attached to the player’s input while rotating, and validate it again at the new angle. The footprint may sweep into a nearby object even when the item’s center barely moves. A rotation control should also make the direction and amount of change predictable: a visible rotate prompt, a clear increment for step rotation, or a continuous rotation indicator can communicate what input will do.

After rotation, update both the ghost and any orientation cue. A small floor-facing arrow, front marker, or visible front edge can make it easier to tell which way a sofa or desk will face. If the furniture snaps to a grid or fixed increments, show the snapped result in the preview, not just the unsnapped cursor position. That lets the player judge the placement that will actually be committed.

Section 5

How should canceling and recovery work?

While carrying an item, make cancel available through a consistent, visible control. Cancel should remove the ghost and return to the prior room state without silently placing, deleting, or moving furniture. If the player began by moving an already placed item, cancel should restore it to its original position; this is a recommended interaction rule, not a behavior guaranteed by any engine API.

The confirm and cancel actions need distinct labels or icons, and the preview should remain until one is chosen. When a placement is blocked, show a small next step—move, rotate, or cancel—rather than leaving the player to guess. Google’s placement guidance likewise recommends clear error feedback and a path to resolution, while noting that users may need instruction before using a drag gesture. For games, show the relevant control as the furniture is picked up, not only in a separate help screen. Google’s manual-placement guidance

Section 6

A worked example: placing a bookcase

Imagine a player positioning a bookcase beside a wall. The preview first finds a floor target and snaps the bookcase against the wall. Its footprint overlaps a side table, so the ghost shows an invalid state and “Overlaps side table.” The player rotates it; the footprint is recalculated at the new angle, and the preview now fits without overlap. A front-facing marker confirms which side will face into the room. The player sees “Ready to place,” confirms, and the item appears at the position shown by the ghost.

If the bookcase instead lands partly outside the room boundary, the game should identify that constraint even if no object collision exists. If the target surface cannot be determined, show a neutral unresolved cue such as “Place on floor” and do not permit confirmation. These messages are illustrative examples, not claims about Metlivi features or a measured usability result.

Section 7

A practical design checklist

Before implementation, write down placement rules by item type and decide which are blockers versus warnings. Then verify that the preview uses the same footprint, rotation, snapping, and support point as the placed object. Check the interaction at wall edges, corners, narrow gaps, and after rotation; confirm that the ghost does not validate a position that final placement rejects. Finally, test the full loop: pick up, move, rotate, recover from an invalid spot, place, and cancel—including canceling while repositioning existing furniture.

The decision rule is straightforward: show the exact proposed result, distinguish valid from invalid and unresolved states, explain the most useful blocking reason, and preserve a predictable route to rotate, adjust, confirm, or cancel. That makes the placement preview a practical decision aid rather than a last-second warning.

Related reading

Keep exploring this topic