FME Version
Introduction
Placing a 3D model into the real world should feel simple—but in practice, it's one of the most challenging parts of an AR experience, especially for newcomers to FME Realize. This guide is here to make that process clearer for AR workflow creators.
When you load a model in FME Realize, you're choosing how that model connects to the world: does it appear where it actually belongs, or does it appear around you for testing and exploration? Behind the scenes, this involves concepts such as geographic coordinates, projection systems, and device positioning—concepts that you, as a workflow creator, need to understand. Your goal is to ensure that end users don’t have to think about these choices—you choose the right placement method based on the use case. This guide will help you create smooth and seamless experiences for your users.
Model Scale and Size
FME Realize expects models to be created in meters. For best results, we recommend reprojecting your data to a metric coordinate system (such as UTM) before creating the 3D geometry. This ensures consistent dimensions and avoids unexpected scaling or reprojecting behaviors. In general, keeping everything metric simplifies your workflow.
Although the app can display both metric and imperial units in the user interface, and the workspace creators can expose user parameters in units of their choice, everything behind the scenes—including geometry, anchor positioning, and placement calculations—should be done in meters.
When writing data for the real world with infrastructure or real-scale models, always use the Full Scale writer parameter. This ensures your model appears at its true size and matches real-world references (such as poles, hydrants, or manholes). If you simply want to preview the model or explore it without walking around it, you can change the scale factor in the FME Realize settings. Just note that when a model is scaled, its position and orientation will no longer reflect the real world—and placement anchors will not make sense in this context.
Model Placement Options
There are three main ways a model can be positioned in the world:
- Use Real-World Coordinates from an internal GPS or external GNSS receiver
- Load Around Your Location (Center on User)
- Manually Select a Location
1. Use Real-World Coordinates from an internal GPS or external GNSS receiver
If your data is already georeferenced and includes a known coordinate system (e.g., UTM), FME Realize will use this information to place the model in the real world where it belongs. In this case, if your model shows objects existing in the real world and in your data, they should match. For example, an augmented lamp pole will cover the real pole no matter from where you look at your pole.
There are two ways the placement origin (the "anchor") is determined:
-
Manually, by specifying a point feature within the coordinate system of the data and creating the following attributes:
fmear_location_feature set to "anchor"
fmear_anchor_latitude set to the latitude of the point
fmear_anchor_longitude set to the longitude of the point - Automatically, by calculating the center point of all data going into the model. In this case, the fmear_anchor_latitude and fmear_anchor_longitude are calculated by the FMEAR writer. In most cases, the automatic anchor calculation works well and requires no user input. Manual anchors are only necessary if you want the user to control the anchor location directly.
It's important that all data going to the writer shares the same projection, or no projection at all, to ensure consistency. The first feature that enters the writer defines the coordinate system for the rest of the features. Any feature with a mismatching coordinate system will be rejected.
When to use
- The model is based on actual location-specific data
- You want the model to align with reality automatically. This works best with a high-accuracy GNSS receiver; the built-in GPS in most mobile devices rarely provides sufficient accuracy.
- You're at or near the physical site
How it works
- The user location coordinates (latitude and longitude) are submitted from FME Realize on the mobile device to FME Flow AR app. The app generates an AR model.
- All geometry is reprojected to AZMED in FME Workbench, where the model's center becomes the origin of the local coordinate system.
- Attributes fmear_anchor_latitude and fmear_anchor_longitude are added either automatically (if missing) or by the user.
- In the automatic case, the calculated center point in AZMED is matched with its known latitude and longitude.
- In the manual case, the workspace author adds the location attributes to the point geometry (in the same coordinate system as the model).
- FME Flow sends the model back to FME Realize.
- FME Realize uses the point’s XY position together with the anchor attributes to position the model in the real world and relative to the user.
2. Load Around Your Location (Center on User)
If you're not near the location or the model lacks spatial data, you can load the model around your current position. This option is useful for reviewing models, testing, or preparing before going into the field.
When to use
- You're testing the experience in an office or lab
- The model doesn’t contain spatial metadata
- You want to see how the model behaves in AR before field use
How it works
- The model is placed based on the XY coordinates of the point geometry used as an anchor around your location. If no anchor feature is specified, the model origin will be placed at its geometric center.
Imagine the FME Lizard model. If we don't create a point geometry for our anchor, the model will be centered around us, that is, the observer will be inside the model. If we create a point geometry with coordinates XY=(3,0), the model will appear 3 meters away from us.
3. Manually Select a Location
In some workflows, you may choose to select a location on a map before creating and loading the model. This lets you position it quite accurately when using hi-res orthoimagery, which is ideal when GPS is unreliable or inaccurate.
When to use
- You're in an area with poor GPS reception or GPS readings return low accuracy.
- You have a high-resolution orthoimagery that allows you to see and identify very fine details of the scene. For example, manholes, crosswalk paint, poles or fire hydrants:
How it works
- When you stand over an object or feature that you clearly identified on the ortho map, you place the location marker on it in an FME Realize AR app and submit your request to FME Flow.
- FME Flow runs a workspace that generates an anchor point geometry along with the whole model. Before writing the model and sending it back to FME Realize, the workspace removes projection information from the data.
- FME Realize places the anchor at your location and the rest of the model is placed relative to the anchor point.
Visual Accuracy and Landmarks
Before verifying placement visually, it's important to set realistic expectations about accuracy in AR workflows. In this context, "accuracy" means how closely the position of your model in AR matches its intended position in the real world. This depends on both the method used to determine placement and the quality of the underlying data:
- Embedded GPS in a mobile device typically provides an accuracy between 3 to 10 meters under good conditions, but this can degrade significantly in dense urban areas or under tree cover. It’s usable for general positioning, but not for precision alignment.
- External GNSS receivers (especially those supporting RTK) can technically achieve centimeter-level accuracy. However, in practice—especially when used with tablets like iPads—the effective accuracy is often lower. Factors such as the placement of the GNSS antenna, its distance from the camera, and how it's attached (e.g., mounted, in a backpack, or handheld) all affect the final alignment. As a result, realistic expectations for model alignment should be in the submeter range, typically within a few decimeters under good conditions.
- Manual placement using high-resolution orthophotos can provide consistently accurate results—often outperforming GPS entirely. When a user manually selects a location based on visible features in high-resolution imagery, the placement precision reflects the accuracy of the imagery itself. In these cases, the user is effectively telling the system their exact position, making it a reliable and precise method, particularly in urban or GPS-challenged environments.
Each of these methods has trade-offs. When planning your experience, consider the tools your end users will have, and design with those limitations in mind.
Once the model is placed, visual confirmation becomes key. You can improve confidence in your placement by adding recognizable landmarks to your model: hydrants, poles, fences, manholes, and other visible cues. These help users confirm the model is in the right place when viewed through the camera.
You can even create your own markers on the ground, which might be especially useful when using a GNSS receiver. In that case, you have a reliable source of truth for attaching your AR model to the real world. Let’s be honest—sometimes the data isn’t perfect, and when things don't line up, it may be a data issue, not an AR problem. That’s why landmarks are so helpful: they give the user real-world confirmation.
Positioning and Orientation Adjustments
After a model is loaded in FME Realize, its initial placement is based on the selected method—GPS/GNSS, map selection, or centering around the user. But no matter which method is used, real-world factors like GPS and compass inaccuracies, signal drift, data offsets, or device orientation often mean the model won’t line up perfectly right away. This is where manual adjustment comes in.
To fine-tune the model’s position, users can slide it on the screen using a single finger. A good practice is to stand directly over or beside a known object—like a manhole or hydrant—and move the model until the virtual object overlaps with the real one. For taller features such as poles, it’s helpful to adjust from multiple viewing angles:
- Start by standing in front of the real object and adjust the model’s position until the two align.
- Then move to the side and adjust again, using the side profile to refine placement.
- Return to the original viewpoint to verify the alignment was preserved.
This may require repeating the process a couple of times to get the best result.
Once the position is accurate, it’s time to adjust the rotation (orientation). The rotation pivot point is the user’s current location, so it’s best to pick a second landmark positioned at a distance from your current spot. Rotate the model until that landmark’s augmented counterpart matches the real one. After adjusting, verify by looking at multiple objects across the scene to confirm overall alignment.
When everything matches, the user can lock the model in place and begin exploring the scene confidently.
If, during exploration, the model starts to appear misaligned (for example, due to surface tracking errors) the user can unlock the model at any time. Using the same techniques of sliding and rotating, the model can be repositioned and reoriented until alignment is restored. Once satisfied, the model can be locked again to continue the experience with improved accuracy.
Additional Resources
Tutorial: Getting Started with Augmented Reality | FME Realize
Comments
0 comments
Please sign in to leave a comment.