Table of Contents

Easyar plane detection

Easyar plane detection automatically detects horizontal or vertical planes in the environment while running Easyar motion tracking, providing functions such as virtual object placement.

EasyAR plane detection principle

EasyAR plane detection is a simple environmental understanding capability that automatically operates synchronously during EasyAR motion tracker operation. By continuously modeling the real environment using spatiotemporal information from device cameras and inertial sensors, the system identifies and tracks horizontal and vertical planes, providing foundational support for virtual object placement, interactive alignment, and spatial understanding.

planedetection

The specific workflow is:

  1. Motion tracking
    During motion tracking operation, EasyAR continuously acquires two core data types: consecutive image frames from the RGB camera, and data from accelerometers and gyroscopes. Through visual-inertial fusion algorithms, the system estimates the device's continuous six-degrees-of-freedom (6DOF) position and orientation in the world coordinate system, providing stable, low-drift camera trajectories for subsequent spatial modeling and plane analysis.

  2. Feature point detection and triangulation
    Building on pose estimation, EasyAR extracts and tracks stable visual feature points (such as corners or texture-salient regions) from the image sequence. Using multi-view geometry methods, these feature points are triangulated to reconstruct their 3D spatial positions, forming a local 3D point cloud representation.

  3. Plane candidate region generation
    After obtaining the 3D point cloud, the system performs geometric analysis to identify point clusters potentially belonging to the same plane. By assessing the relationship with gravity direction, it distinguishes different plane candidate types:

  • Horizontal planes: Normal vectors approximately parallel to gravity direction (e.g., floors, tabletops)
  • Vertical planes: Normal vectors approximately perpendicular to gravity direction (e.g., walls, pillars)
  1. Plane tracking and detection
    EasyAR continuously verifies and updates detected planes across frames:
  • Evaluating whether newly observed 3D points support existing plane models
  • Dynamically adjusting plane extents, boundaries, and confidence based on observation consistency
  • Eliminating transient or unstable plane candidates
    Only results satisfying both geometric consistency and temporal stability are confirmed as "available planes".
  1. Plane coordinate system and virtual content alignment
    Once a plane is confirmed, you can achieve more authentic AR effects based on plane detection results:
  • Placing virtual objects on planes for real-world scale and orientation alignment
  • Performing ray casting (Hit Test) to map screen touches to real plane positions
  • Implementing plane-based interaction logic like object snapping, movement, and occlusion handling

Since planes share the same world coordinate system with motion tracking, virtual objects maintain stable spatial consistency during device movement.

Plane detection relies on stable poses and spatial structures from motion tracking, while plane detection results conversely enhance environmental understanding—assisting content placement and interaction design. Together they form EasyAR's core spatial awareness foundation, though architecturally decoupled: plane detection doesn't alter motion tracking's pose estimation outcomes.

Best practices

To ensure users achieve optimal results with plane detection, following these practices can enhance the user experience.

  • Guide users to move slowly, avoiding staying still, moving too quickly, or rotating in place.
  • Avoid textureless, solid-color, or reflective surfaces that are visually difficult to recognize.
Note

Plane detection is an EasyAR feature that identifies horizontal or vertical planes in the environment. Surface tracking does not detect or recognize planar structures in the scene—this distinction is important.

Further reading