Mastering 3D for AR: Coordinates & Optimisation

If you are uploading your own custom .GLB 3D assets to the portal instead of using our AI, it is crucial to understand how virtual objects interact with the physical world.

The Y-Up Standard & Coordinates

In AR, verticality is everything. ARKit (Apple) and ARCore (Google) standardise on a Y-up coordinate system:

  • Y-Axis: Parallel to gravity, pointing upwards.
  • X & Z Axes: Form the horizontal ground plane.

Pro Tip: If your modelling software uses Z-up (like Blender), ensure you apply a −90° rotation on the X-axis or toggle "Y-Up" during export so your model doesn't arrive lying on its side.

The "Floor" Rule

Set your model's origin (pivot point) at the very bottom of the mesh, specifically at Y = 0. This ensures that when the AR app detects a floor, your model sits naturally on the surface rather than floating or sinking underground.

Performance & Optimisation

AR experiences run on mobile devices with limited processing power. To maintain a smooth 60 FPS, follow these constraints:

Polycount Limits

  • Individual object: Keep under 25,000 – 50,000 triangles.
  • Entire AR scene: Aim for a maximum of 100,000 triangles.

Texture Limits

  • Resolution: Use 1024×1024 for standard assets. Avoid exceeding 2048×2048 (high GPU memory cost).
  • Format: Use Power-of-Two dimensions (e.g., 512, 1024, 2048).

Final Export Checklist

  1. Centre the model at world coordinates (0, 0, 0).
  2. Apply scales to 1.0, matching real-world metres.
  3. Minimise draw calls by combining meshes and using texture atlases.
  4. Keep materials low (ideally under 5–10 per scene).
  5. Confirm Y is up before exporting to GLB.