Skip to main content
All CollectionsAR ViewerGeneral features
Detect horizontal and vertical surfaces to place all your 3D models
Detect horizontal and vertical surfaces to place all your 3D models

Find out how to scan and filter your surrounding environment. Learn how to edit the placement policy of your 3D models used in a AR scene.

Matt avatar
Written by Matt
Updated over a week ago

In the Augment app you can now detect vertical or downward surfaces like walls, doors or the ceiling. This is in addition to the upward surfaces detected so far during the environment scan. The application includes a filtering system to easily use them as support for your 3D models. It lets you check what's been detected and target only specific types of surfaces.

Besides new options are available to set the placement behavior of the 3D models. Everything combines to quickly place the models on the right surfaces. Who wants to have dinner on a table floating on the wall of the living room ?

Preparation of the 3D models: the placement behavior options

3D models can naively be placed everywhere on the environment now that new surfaces with various orientations are detectable. To keep the real-life use of objects, options restrict the surfaces which can support the models.

The options can be set from your account on the Augment manager website (
Activate the model edition to reach them ("edit" button on the model tile) then go to the tab "Behaviors".


Allowed surfaces

The parameter indicates the types of surfaces available for a model at insertion or when moving it. Setting the right values avoids mistakenly placing the model on an unreal position and hitting undesired surfaces.
Three values are currently defined:

  • floor-like surfaces meaning horizontal upward planes

  • wall-like surfaces (vertical planes like walls, doors, windows...)

  • ceiling-like surfaces (horizontal downward planes scanned while pointing the device to the sky).

Values can be combined. At least one value must be selected for the model to be insertable in the scene.

For instance, you can restrict the placement of a chair to the floor surface or a painting to the walls. You can also allow a TV to be vertically posed on a piece of furniture or fixed on the wall by combining the 2 first values.

The model here can only be placed on floor

Transition behavior

The option specifies the behavior of the model when it switches from one type of surface to another. (this assumes that both types of surfaces are allowed - see previous section).

Objects can be sometimes placed on their different faces. They can rest on their underside on a piece of furniture or be fixed by their rear face to the wall. Other times, the same face remains in contact with surfaces like a carpet placed on the floor or hung on the wall as decoration.

Here is the transition behavior option to define whether the object should rotate during the transition.
One of the three following values can be set:

  • aligned: the model automatically rotates to always keep the same face in contact with the surfaces. It can also be manually rotated around its axis on any surface. This is the example of the "carpet".

  • standing: the model does not rotate. The contact face is different for each type of surface: the lower face for the floor, the rear face for a wall, the upper face for the ceiling. The model can then be manually rotated around its axis on any surface.

  • fixed: behavior is almost identical to 'standing'. The difference is manual rotation prohibited on vertical surfaces to maintain the primary orientation of the model.

    The current transition behavior of the model here is "standing"

Scanning and filtering the environment

During the live session, you're invited to move the device to detect the different planar surfaces materialized by the objects of the environments: floor, tables, chairs, walls, doors...

Local display

When inserting a model, the areas of the available surfaces targeted by the device are displayed as transparent yellow polygons. A pattern fills the polygons to symbolize their type: hexagons for floor-like planes, bricks for wall-like planes and checkerboard for ceiling-like planes. The type of visible surfaces depend on the currently active filter (see below).

At the start of the AR session, all surfaces are shown as the filter accepts all the types. When you search for a place to insert the model, the surface pieces appear.

Once the model is placed, the surfaces are no longer rendered but they are still detected in the back stage.

Local surface around the focus point: floor (left) and wall (right)

Full display of the surfaces

At any time, you can check the environment detected by going to the environment bar and activating the "visible" option. The different surfaces are fully displayed with different colors. You see them evolve as you scan (planes may expand, appear, or disappear as detection improves).

The option is useful to check that a specific surface has been effectively detected and to guide you to scan other areas of your environment.

Many temporary surfaces are detected once the "visible" option is active


The filter allows you to select the kind of surfaces to use for placing or moving a model. It's convenient to access surfaces obstructed by others or to clean up the visualization a bit. Three buttons can be activated:

  • all: no surface is filtered.

  • horizontal: wall-like surfaces are filtered. An object can move on the floor or on the ceiling.

  • vertical: only wall-like surfaces are kept. You can place and move an object on walls, doors and flat vertical faces of furniture.


The filter and the placement parameters of the model combine to determine the surfaces ultimately allowed as support. If you exclude all the surfaces compatible with a model you will not be able to insert it in the scene.

For instance if your model is a piece of furniture to position on a floor or a wall, you can filter out the floor-like surfaces to help you to put it on a wall. But if the model was only compatible with floor-like surfaces it could not be inserted anywhere.

Vertical filter (right) applied to clean a bit the detected surfaces

Inserting a model

If the recipe for adding a model to the live scene remains unchanged *, the way to place it changes a bit with the new types of surfaces. To respect both the model's placement setting and the active filter, an indicator slides over the different surfaces you point with the device. It shows you if you can tap to place the model there:

* (just select it in your 3D safe or flash a QR code)

  • a white circle indicates that no surface is detected below.

  • a green circle indicates that the model can be inserted there. Tap the screen to place it.

  • a red circle indicates a surface that cannot be used because the model doesn't allow it. Check the surfaces declared by the model if you deem it necessary (see section "Preparation of the 3D models").

The different placement indicators

Moving a model

Moving a model is as easy as dragging and dropping it. Still, the new filter system and model settings influence where it can go. If a surface is inaccessible due to the model rule or the active environment filter, an indicator appears to help you understand the situation:

  • an orange circle indicates that the model cannot move there because no authorized surface except a filtered one is present at that location. If you do want to move the model there, go the environment bar and allow the surface type.

  • a red circle indicates that the model prohibits this type of surface via its "allowed surfaces" parameter.

    For instance a red circle will appear on the walls if you choose to have a table only compatible with the floor.

The different movement indicators

The model uses the different detected valid surfaces to move and jumps from ones to others. Transition behavior applies when the types of the two surfaces are allowed and different. Yet, the movement stops at the edge of the current surface if the other is forbidden or if there is no surface at all.

A painting on a wall (left), rotated (middle) or moved to another surface (right)

The lowest horizontal plane of the scene is considered an infinite plane. This is an intended exception: since it usually corresponds to the actual floor, it allows models to be moved without fully scanning it.

Saving your scene

The new surfaces are compatible with Places so you can simply save and share your composition as before.
When editing a Place the environment bar allows you to display and filter surfaces as in the live session. However, since a Place is a static view, when inserting a model, no indicator will be visible to guide you on where to place the model: use the "visible" option to display the existing surfaces and pick the right one.

Did this answer your question?