ARCore Measurment for Android

Contains ads
Content rating
Everyone
0+
Downloads
Content rating
Everyone
Learn more
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image

About this app

1. Measuring Distance
Distance is the most fundamental AR measurement. It is calculated as the Euclidean distance between two 3D coordinates (Anchors) placed in the AR scene.


2. Measuring Area
To measure area, the user must place at least three anchors to form a polygon. Most AR area measurements assume the surface is a flat plane (2D surface in 3D space).
The Algorithm:
The most common approach is the Shoelace Formula (Surveyor's Formula). Since the points are in 3D, you should first project them onto a 2D plane (using the plane's normal) or ensure all points lie on the same detected AR Core Plane.


3. Measuring Volume
Volume is significantly more complex because it requires depth. There are two primary ways to approach this:
- Box Method (Extrusion):Measure the floor area (as described above) and then measure a vertical distance (height).
Formula: Volume = Area*Height
- Bounding Box Method: Use two diagonal corner points to define a 3D cube.
- Depth API (Advanced): Use AR Core to create a point cloud of an object and calculate volume via a convex hull or voxelization. This is much more accurate for irregular objects but requires a device with a Time-of-Flight sensor or high-quality depth support.
Since you're diving into the implementation, the real challenge in AR Core isn't just the math—it's the UX and precision. Measuring a 3D space on a 2D screen can be finicky for users.
Here is a breakdown of how to structure your Java logic for these features:
1. Distance (The Foundation)
To get a clean measurement, you should use Session hit Test() to place Anchors. Using anchors ensures that even if the camera drifts, the points stay "locked" to the physical world coordinates.
2. Area (Planar Geometry)
For area, users usually want to measure a floor or a wall. You should restrict your points to a single Plane. If the points are on the same horizontal plane (y values are nearly identical), you can ignore the y-axis and treat it as a 2D polygon calculation.
Implementation Tip: Store your points in a List. As the user adds a new point, dynamically update a "current area" preview. The Shoelace Formula is the standard here because it works for any non-self-intersecting polygon (irregular shapes).
3. Volume (The "Box" Method)
Calculating the volume of an arbitrary 3D object is very difficult without a LiDAR sensor. For a standard Java AR Core app, the most reliable way is the Extruded Polygon method:
1. Define the Base: User clicks points to define the floor area (A).
2. Define the Height: User clicks a point on the floor and drags a line upward, or clicks a point on the ceiling (h).
3. Calculate: V = A * h.

Pro-Tips for Accuracy
The Depth API: If the device supports it, enable the Raw Depth API. It allows you to perform hit-tests against "non-planar" objects (like a couch or a ball) which standard plane-finding might miss.
Smoothing: AR coordinates can jitter. Use a simple Moving Average Filter on the camera pose or the hit-test results to prevent the measurement numbers from jumping around rapidly.
Suggested Architecture
Measurement Manager: A singleton or helper class to store the list of active anchors.
Renderer: Handles drawing the lines and text labels in the AR overlay.
Unit Converter: A utility to toggle between Metric (meters/cm) and Imperial (feet/inches).

The application has, along with the specified functions, additional functions such as localization: English, Spanish, French, Bulgarian and German. Calculated distance, area and volume are in meters, which can be converted to centimeters, inches, feet.
Updated on
May 5, 2026

Data safety

Safety starts with understanding how developers collect and share your data. Data privacy and security practices may vary based on your use, region, and age. The developer provided this information and may update it over time.
No data shared with third parties
Learn more about how developers declare sharing
No data collected
Learn more about how developers declare collection
Content rating
Everyone
Learn more

App support

Phone number
+359888569075
About the developer
Ivan Zdravkov Gabrovski
ivan_gabrovsky@yahoo.com
жк.Младост 1 47 вх 1 ет. 16 ап. 122 1784 общ. Столична гр София Bulgaria

More by ivan gabrovski