[navigation]
TL;DR:
- Unity's own documentation lists face tracking support for three provider plug-ins only: Google ARCore XR, Apple ARKit XR, and Unity OpenXR Android XR. The visionOS plug-in, HoloLens, OpenXR Meta, and XR Simulation are not listed, so you cannot test faces in the Editor.
- Google documents a 468-point face mesh for ARCore in AR Foundation, plus a centre pose and three region poses on the left forehead, right forehead, and tip of the nose.
- Google also documents a hard limit worth planning around: AR Foundation targeting Android devices can only track a single face at a time.
- Apple's face-tracking configuration detects faces within 3 metres of the front camera, and since iOS 14 it runs on any device with an Apple Neural Engine rather than requiring a TrueDepth camera.
- Banuba Face AR SDK detects 68 facial anchor points, builds a 3D mesh of up to 3,308 vertices and tracks 37 mesh morphs, which is what makes real-time nose, eye, lip and chin reshaping hold its shape.
- Banuba Face AR SDK for Unity is a native library compiled for Windows, macOS, iOS, and Android, so desktop is the platform gap it closes against AR Foundation. Browser face AR runs on Banuba's separate Web SDK, not on the Unity plugin.
- Banuba Face AR SDK requires Android 8.0 (API level 26) with OpenGL ES 3.0 and iOS 13 or later, a higher OS floor than ARCore's Android 7.0, so device reach is a trade, not a clean win.
- Of the thirteen face tracking options a Unity team usually shortlists, only seven publish a Unity integration path. The table below says which.
How to choose a face tracking stack for Unity
Four questions settle this before any code is written.
Which platforms does this one Unity project have to ship to? If the answer is iOS, Android, or both, AR Foundation covers it for free and is the sensible default. If the answer includes Windows or macOS, AR Foundation's face subsystem does not go there at all, and you need a native plugin.
How many faces at once? Google's AR Foundation guide states that on Android only one face can be tracked at a time. A two-player face game, a group filter, or a salon mirror with two people in frame rules ARCore out on its own documentation.
How much mesh do the effects need? Overlay accessories sit happily on a coarse mesh. Structural morphing, beauty retouch, and makeup need a denser one, and that is a vendor-level decision you cannot patch later.
Where does the video go? If frames have to stay on the handset, the tracker has to run on the device. Banuba processes every frame on the user's device, so a live stream carries no cloud round-trip.
If you are weighing the same question for a different workload, we ran the numbers separately on face tracking for real-time video conferencing, where latency and call quality, rather than mesh density, decide the shortlist.

Face tracking options for Unity, and which ones publish a Unity path
Thirteen options come up repeatedly on a Unity face AR shortlist. Only seven of them document a Unity integration; the rest are good SDKs that you would have to wrap yourself.
|
Option
|
Best for
|
Documented Unity path
|
Cost model
|
|
Apple ARKit XR Plug-in (AR Foundation)
|
Free native iOS face tracking
|
Yes, first-party Unity plug-in
|
Free with the platform
|
|
Google ARCore XR Plug-in (AR Foundation)
|
Free native Android face tracking
|
Yes, first-party Unity plug-in
|
Free with the platform
|
|
Unity OpenXR: Android XR
|
Face tracking on Android XR devices
|
Yes, listed as supported in AR Foundation 6.1
|
Free with the platform
|
|
Banuba Face AR SDK for Unity
|
One Unity build covering phones and desktop
|
Yes, first-party Unity package
|
Flat annual licence or active-user model, 14-day trial
|
|
Visage Technologies (Visage SDK)
|
Precision head pose, gaze and multi-face work
|
Yes, Unity plugin documented
|
Quote only, free evaluation licence
|
|
Zappar Universal AR
|
Browser-first WebAR built out of Unity
|
Yes, Unity iOS, Android and WebGL build targets
|
Cost per view
|
|
Faceunity Nama SDK
|
Large effect catalogue across mobile and desktop
|
Yes, Unity listed and an official Unity demo repo
|
Quote only
|
|
DeepAR
|
Effects engine for native apps and the web
|
No, Unity is not in the official SDK feature matrix
|
Public pricing, free watermarked dev licence
|
|
Snap Camera Kit
|
Reaching the Snapchat Lens ecosystem
|
Not publicly documented for Unity
|
No published price, access by application
|
|
Google MediaPipe Face Landmarker
|
Open-source landmarks with no licence cost
|
No first-party Unity package
|
Apache 2.0
|
|
Google ML Kit Face Detection
|
Free on-device detection and basic landmarks
|
No first-party Unity wrapper
|
Free
|
|
BytePlus Effects
|
TikTok-grade effect catalogue at volume
|
Not listed among its supported platforms
|
Quote only
|
|
OpenCV
|
Building the pipeline yourself
|
No documented Unity bindings
|
Apache 2.0 for the 4.x branch
|
Read the right-hand column as "what the vendor publishes", not "what is technically impossible". Community wrappers exist for several of these. They are also the thing that breaks when the vendor ships a native update, which is why the column matters to anyone planning a release schedule.
Unity face tracking: AR Foundation, ARCore, ARkit, Banuba
AR Foundation is Unity's augmented reality framework. Among its features, it exposes a face subsystem that lets the camera detect and track human faces in real time, through the AR Face Manager component, which creates an ARFace trackable for every detected face.
AR Foundation does not do the tracking itself. It delegates to a provider plug-in, and Unity's own platform-support table lists face tracking for the Google ARCore XR Plug-in, the Apple ARKit XR Plug-in and Unity OpenXR Android XR. The Apple visionOS plug-in, Microsoft HoloLens, Unity OpenXR Meta and XR Simulation are not in that list. The XR Simulation gap is the one that costs the most time in practice, because it means face tracking cannot be exercised in the Editor and every iteration needs a device build.
Each provider overlays textures and 3D models on a detected face through a face mesh. The mesh carries vertices, triangle indices, normals and texture coordinates, and the optional feature descriptors on XRFaceSubsystemDescriptor tell you at runtime which of those the current device actually produces.
ARCore face tracking Unity features
The ARCore XR Plug-in enables face tracking in Unity apps on Android through the Augmented Faces API. Google documents what you get: a 468-point 3D face mesh, a centre pose that sits inside the skull behind the nose, and three region poses on the left forehead, right forehead and tip of the nose. Region poses are reached by downcasting the ARFaceManager's subsystem to ARCoreFaceSubsystem and calling GetRegionPoses.
Two things in that documentation decide architectures. The first is that the Augmented Faces API in AR Foundation needs no ARCore Extensions package. The second is the constraint quoted above: AR Foundation targeting Android devices can only track a single face at a time.
Unity ARKit face tracking overview
The Apple ARKit face-tracking configuration recognises facial position, orientation, topology and expressions, and hands your Unity scene an ARFaceAnchor to animate against. It detects faces within 3 metres of the device's front camera.
The device requirement has changed since this article first ran and is worth restating, because the old version is still repeated widely. Apple's documentation now reads that face tracking supports devices with an Apple Neural Engine in iOS 14 and iPadOS 14, and required a TrueDepth camera only on iOS 13 and iPadOS 13 and earlier. A TrueDepth camera is therefore no longer the gate it was, and the list of supported iPhones is much wider than the iPhone X to iPhone 11 range this page used to name.
Mesh topology on ARKit is fixed across sessions. Only the vertex positions change as the mesh adapts to the user's face, and the triangle count is exposed at runtime through triangleCount rather than published as a number, so build your asset budget against the device, not against a figure from a blog post.
Face mesh density and polygon budgets in Unity face tracking
This is the question most Unity teams arrive with, and it has two halves that get conflated.
The first half is the tracker's own mesh, which you do not control. It is a vendor decision. ARCore in AR Foundation gives 468 mesh points. Banuba's face tracking software detects 68 facial anchor points and builds a 3D mesh of up to 3,308 vertices, with 37 mesh morphs on top. More mesh is not automatically better: 468 points are ample for sitting a pair of glasses or a hat on a face, and the density only starts to pay for itself when the effect deforms the face itself, which is why beauty retouch, face morphing, and makeup are where the gap shows.
The second half is your own content budget, which you do control and which no vendor can set for you. The triangle count your attachments can afford depends on the handsets you actually ship to, how many draw calls the rest of the scene already spends, and how long a session runs before the device throttles. Published "safe" polygon numbers for mobile AR circulate widely and none of them come from Unity, Apple or Google, so the honest answer is to measure: build the scene, run it on the cheapest handset in your target list, and watch the frame time and the device temperature over a few minutes rather than a few seconds. Performance optimization for mobile AR face tracking starts with that measurement, not with a target number copied from somewhere else, because the budget moves with the handset, the shader count, and the session length.
What a vendor can give you is a floor to measure against. Banuba's SDK documents a minimum of 30 FPS at a recommended 1280x720 camera resolution, with all tracking and rendering done on the device. A 14-day trial token exists precisely so that number can be checked on your own handsets and your own effects before a licence is signed.
Face AR plugin for Unity
To bring face AR to Unity cross-platform, Banuba provides the Unity face tracking plugin, which handles face detection and tracking inside Unity3D. It supports realistic face filters, 3D lenses, facial animation, and AR background effects.
Banuba Face AR SDK for Unity ships as a native library compiled for Windows, macOS, iOS, and Android. The asset package is imported through the Unity Package Manager, the client token goes into Assets/Resources/BanubaClientToken.txt, and the bundled demo scene runs from there. Banuba's documentation gives a minimum Unity Editor version of 2019.3.13f1 and asks for the Unity platform plugin for each target you build.
Face AR for Unity overview
Where Banuba differs from AR Foundation in Unity
AR Foundation is the best option in its category, and the category is free native face AR on one mobile platform at a time. It is maintained by Unity, it costs nothing, it ships with the engine, and for an iOS-only or Android-only app with overlay effects there is no argument for paying for anything else.
The one case where Banuba's Unity plugin is the stronger choice is narrow and worth stating plainly: a single Unity project that has to ship the same face AR, with morph-grade mesh density, to phones and to Windows and macOS desktops, with every frame staying on the device. The differences below are what that comes down to.
1. Desktop coverage from one Unity project
The ARKit and ARCore plug-ins cover iOS and Android. AR Foundation's face subsystem is not listed as supported on any desktop or headset provider plug-in. Banuba Face AR SDK for Unity is compiled for Windows and macOS as well as iOS and Android, so a desktop build of the same project keeps its face AR instead of losing it.
Note what this is not. Browser face AR is not part of the Unity plugin: Banuba serves the web through a separate Web SDK that needs WebGL 2.0, and an earlier version of this article wrongly listed the web as a Unity platform.
2. Device requirements, stated both ways
This one is a trade rather than an advantage, and the honest numbers matter more than the pitch. Banuba Face AR SDK requires Android 8.0, API level 26, with OpenGL ES 3.0, and iOS 13 or later. ARCore requires Android 7.0 or newer plus an ARCore-certified device and the Google Play Services for AR package. So Banuba sits on a higher Android OS floor, while ARCore adds a device-certification and a Play Services dependency that Banuba does not have. Banuba states coverage of 97% of Apple smartphones and 80% of Android ones from a single cross-platform integration.
3. Multi-face tracking
Google's own guide limits AR Foundation on Android to one tracked face at a time. If two people have to be in frame, that is a blocker rather than a preference, and it is the clearest functional difference on this list.
4. Face filter assets included
Banuba imported a set of its face filters into Unity, and over 1,000 AR face filters can be licensed from the asset store, with the same assets usable as templates for custom effects. Beards, AR hairstyles, animation, beauty effects and virtual try-on for glasses, hats or jewellery are all in that library. AR Foundation ships no content; the mesh is yours to populate.
5. Background segmentation
Banuba background segmentation in Unity
Banuba's Business version supports background segmentation in Unity, so users can remove or replace a background in real time without a green screen, using images, animated wallpapers, or video. Neural-network segmentation is a separate capability from face tracking, and AR Foundation's face subsystem does not provide it.
6. Mesh density for morph-grade effects
ARCore's 468 mesh points against Banuba's up to 3,308 vertices and 37 mesh morphs is the difference between placing something on a face and changing the face. If the roadmap includes beautification, reshaping, or makeup, this is the line that decides it. If it does not, it is not worth paying for.
7. A tracker built only for faces
Banuba develops and optimises its tracking for mobile face AR specifically, which is also why it carries figures AR Foundation does not publish: tracking holds across the -80° to +80° head-angle range, under up to 70% occlusion, and at distances up to 3.7 metres, against the 3 metres Apple documents for its front-camera face configuration. AR Foundation is a general AR framework in which faces are one subsystem among planes, images, bodies and meshes.
If the target is Android specifically, we ran the same comparison on that platform alone in 3D face tracking for Android, Banuba against ARCore, and the wider market view sits in best facial tracking software. For the Unity-specific how-to steps, see implementing Unity camera filters in 3 steps and Unity face beautification.
References
Apple Inc. (n.d.) ARFaceGeometry triangleIndices. Apple Developer Documentation. https://developer.apple.com/documentation/arkit/arfacegeometry/triangleindices-3tb1o
Apple Inc. (n.d.) ARFaceTrackingConfiguration. Apple Developer Documentation. https://developer.apple.com/documentation/arkit/arfacetrackingconfiguration
Banuba (n.d.) Banuba Face AR SDK for Unity: basic integration. Banuba documentation. https://docs.banuba.com/far-sdk/tutorials/unity/basic_integration/
Banuba (n.d.) Face Filters SDK. Banuba. https://www.banuba.com/facear-sdk/face-filters
BytePlus (n.d.) Technical requirements, Effects SDK. BytePlus documentation. https://docs.byteplus.com/en/docs/effects/docs-technical-requirements
DeepAR (n.d.) SDK features. DeepAR documentation. https://docs.deepar.ai/deepar-sdk/specification/sdk-features
Faceunity (n.d.) Effects. Faceunity. https://www.faceunity.com/en/effects.html
Google (n.d.) Augmented Faces developer guide for AR Foundation. ARCore documentation. https://developers.google.com/ar/develop/unity-arf/augmented-faces/developer-guide
Google (n.d.) Face Landmarker. MediaPipe documentation. https://developers.google.com/edge/mediapipe/solutions/vision/face_landmarker
Google (n.d.) ML Kit guides. Google for Developers. https://developers.google.com/ml-kit/guides
Google (n.d.) Supported devices. ARCore documentation. https://developers.google.com/ar/devices
OpenCV (n.d.) License. OpenCV. https://opencv.org/license/
Snap Inc. (n.d.) What is Camera Kit. Snap Developer Documentation. https://developers.snap.com/camera-kit/getting-started/what-is-camera-kit
Unity Technologies (2025) Face tracking. AR Foundation 6.1 manual. https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@6.1/manual/features/face-tracking.html
Unity Technologies (2025) Face tracking platform support. AR Foundation 6.1 manual. https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@6.1/manual/features/face-tracking/platform-support.html
Visage Technologies (n.d.) Visage SDK. Visage Technologies. https://visagetechnologies.com/visage-sdk/
Zappar (n.d.) Platform support, Universal AR for Unity. Zapworks documentation. https://docs.zap.works/universal-ar/unity/platform-support/
Building cross-platform AR apps in Unity? Discover Face AR SDK possibilities.
