[navigation]
TL;DR:
- We compared Banuba, Zappar Universal AR, DeepAR, MediaPipe Face Landmarker, and Visage Technologies visage SDK across platform reach, language surface, license model, deployment freedom, pricing, and face tracking depth for browser-based AR, based on each vendor's published documentation and pricing pages.
- Bundle weight is the first constraint, not accuracy. Banuba's 12 Mb minimum SDK size is the uncompressed BanubaSDK.wasm binary, which drops to 3.5 Mb gzipped and 2.5 Mb with Brotli, so precompression is a deployment decision that directly affects page load speed and traffic expenditure.
- Self-hosting is not free everywhere. Zappar restricts self-hosted Universal AR sites to Enterprise plans and runs a license check at library initialization, so a Developer or Pro buyer serves from a Zappar domain.
- Landmark density varies by an order of magnitude: MediaPipe's face mesh outputs an estimated 478 3D landmarks, Visage FaceTrack tracks more than 100 facial points, and Zappar's JavaScript face API exposes 13 named landmarks plus a face mesh.
- Banuba's stable 30 FPS for backgrounds is documented for real-time background separation on iOS and high-end Android, and the technical specification records 80° head-angle tracking and up to five simultaneous faces.
- Free does not mean unlicensed. MediaPipe ships under Apache License 2.0 with no published price, but its Tasks APIs send performance and utilization metrics to Google, and the integrator is responsible for obtaining user consent.
- Zappar's Developer plan at $12.99 per month is non-commercial only, and companies or agency clients with revenue or funding above $10 million in the last 12 months are required to take the Enterprise plan.
- DeepAR's free tier carries a watermark, and commercial use is billed by monthly active users starting at $25 per month for up to 1,000 MAU.
- No single vendor wins every scenario. Pick by deployment constraint first, then by landmark depth.
How we selected and evaluated these SDKs
Every vendor here publishes a browser-capable face tracking product and public documentation a developer can read without a sales call. We scored them on six dimensions, applied identically:
- Platform: which browsers and operating systems the face tracker is documented to run on.
- Language / SDK surface: the language bindings, package delivery, and rendering layer a developer actually works with.
- License: what the license permits, and what it gates.
- Deployment: where the experience can be hosted and whether it runs offline.
- Pricing: the published commercial model.
- Face tracking depth: landmark count, simultaneous faces, and what the tracker returns per frame.
Where a vendor does not publish a value, the table says so rather than estimating it.
Banuba Face AR SDK (Web)
Banuba's browser build handles web AR face tracking with the same Face AR engine that ships to iOS, Android, Unity, and desktop, delivered as the @banuba/webar npm package with TypeScript types, or through a jsDelivr CDN import for prototyping. The library is tree-shakable, so a project that only needs the webcam, player, effect, and DOM modules imports those four rather than the whole surface. If you are evaluating the browser architecture specifically, our engineering write-up on how a face tracking pipeline actually runs inside a browser walks through the WebAssembly and WebGL layers in more detail.
The requirement is a browser with WebGL 2.0 or higher, covering Chrome, Firefox, and Safari on both mobile and desktop. Face tracking data comes from the same pipeline as the native builds, which is what makes this option attractive for teams shipping a browser experience first and a native app later.
On performance, the published technical specification records single-face tracking at 80° head angle with detection distance between 170 cm and 230 cm depending on device, and up to five simultaneously tracked faces. Real-time makeup rendering in the browser is measured at 30 FPS in Chrome and 26 FPS in Safari. Background separation is documented at a stable 30 FPS for backgrounds in real time on iOS and high-end Android.
Bundle weight is handled explicitly. BanubaSDK.wasm is a 12 Mb minimum SDK size uncompressed and compresses to 3.5 Mb with gzip or 2.5 Mb with Brotli, and the SDK ships a separate SIMD build that it loads automatically when the browser supports it. Teams that need to cut CPU and GPU load further can override devicePixelRatio or drop the webcam frame from 1280x720 to 640x480.
Pricing is MAU-based with a free trial, and the detailed breakdown sits in the Face AR SDK pricing guide. A Romanian hair-color brand used the browser build to launch virtual try-on directly on its storefront, which is the deployment shape this SDK is built for.
One documented limitation: a MediaStreamCapture stream freezes when a browser tab becomes inactive in Safari, which matters for recording flows.
Best for: teams that need production browser face AR now and the same effect pipeline in a native iOS or Android app later, with all processing on-device.

Zappar Universal AR
Zappar has been building immersive technology since 2011 and positions Universal AR as its computer vision SDK family inside the Zapworks platform. Seven toolkits are published: Three.js, A-Frame, JavaScript, Unity, React-Three.js, PlayCanvas and Babylon.js. Delivery is via npm, CDN, or a standalone zip, and the library ships a WebAssembly binary that a Webpack 5 or later build must handle through a file-loader rule. Rendering is WebGL, with the camera and content drawn through explicit GL calls.
Browser support is documented carefully: Safari for iOS 11.3 and later, Chrome for Android, most WebKit and Blink Android browsers, and WKWebView web views from iOS 14.3. Anything older, including UIWebView and pre-14.3 third-party iOS browsers, cannot access the camera and is unsupported. Zappar ships Zappar.browserIncompatible() helpers so you can detect and message this rather than fail silently.
Face tracking is real-time, running per camera frame inside a requestAnimationFrame loop. It exposes 13 named landmarks including eyes, ears, nose bridge, nose tip, lips, mouth center, chin and eyebrows, each as a 4x4 pose matrix relative to head center, plus two meshes: a default face mesh and a full head simplified mesh for depth-buffer masking. The mesh is returned as raw vertex, UV, normal, and index buffers that the integrator renders. By default, one face is tracked, and Zappar's own documentation warns that setting two or more faces may impact performance and frame rate.
Licensing is the real constraint. Self-hosted experiences must have the full domain registered with Zapworks; the check runs at library initialization, and self-hosting is restricted to Enterprise plans with one free web license. The Developer plan is $12.99 per month or $64.99 annually and is explicitly non-commercial with a Zapworks-branded interstitial and a 50,000 non-commercial view fair-use cap. Pro is $315 per month or $2,640 annually with 12,000 views per year and additional views at $30 per thousand, still on a Zappar-branded domain. Enterprise is quote-only.
Best for: marketing and campaign WebAR where image tracking and instant world tracking matter as much as face tracking, and Zappar-hosted delivery is acceptable.

DeepAR
DeepAR, from I Love Ice Cream Ltd., publishes a feature matrix covering iOS, macOS, Android and Web. Standard face tracking, multiple face tracking, background replacement and background blur are all listed as supported on Web, alongside physics, particles, scripting, render textures, video recording and emotion triggers.
The web platform has documented gaps. Emotion detection is available on iOS, macOS and Android but not Web. Video textures are not available on Web. Hair segmentation is iOS only. Virtual try-on tracking for glasses, footwear, and jewelry sits in ShopAR, a separate platform, not the base SDK, and virtual makeup runs through a separate DeepAR Beauty API still in beta with watermarked preview and a three-minute auto-shutdown.
Pricing is MAU-based and fully published: free up to 10 MAU, $25 per month or $250 per year up to 1,000 MAU, $100 per month up to 5,000, $500 per month up to 30,000, $1,000 per month up to 100,000, and contact sales beyond that. The free development license watermarks the output. DeepAR also documents integrations with Amazon Interactive Video Service, Agora, Vonage and Azure Communication Services, which is relevant if face effects have to sit inside an existing video-calling stack.
Best for: small-scale and early-stage products that want published, predictable MAU pricing and a documented path into an existing video-calling provider.
DeepAR Face tracking
MediaPipe Face Landmarker (Google)
MediaPipe is Google's open-source on-device ML toolkit, with the source in the google-ai-edge GitHub organization and documentation on developers.google.com. The Face Landmarker task publishes implementation guides and code examples for Android, Python and Web, and the Solutions availability table covers Android, Web, Python and iOS.
It is by far the densest landmark output in this comparison. The face mesh model produces an estimated 478 three-dimensional face landmarks, a blendshape model predicts 52 blendshape scores representing facial expressions, and face detection uses the lightweight BlazeFace short-range model optimized for mobile GPU inference. Three running modes are supported: single image, decoded video frames, and live stream with asynchronous results. Outputs include a full face mesh per detected face plus facial transformation matrices for effects rendering.
The caveats are documented by Google itself. The release is labeled an early preview. Landmark smoothing is only applied when num_faces is set to 1. Blendshapes and transformation matrices default to off and must be explicitly enabled. Processing of input data happens on device and is not sent to Google servers, but the Tasks APIs do send API performance and utilization metrics to Google, and the integrator is responsible for obtaining informed user consent where the law requires it. Support for the MediaPipe Legacy Solutions, including the standalone Face Mesh and Iris solutions, ended on 1 March 2023.
The repository license is Apache License 2.0, and Google publishes no pricing page.
Best for: teams that want free, high-density face landmark data in the browser and are prepared to build the rendering, effect authoring, and asset pipeline themselves.
Banuba's face-tracking example
Visage Technologies visage SDK
Visage Technologies AB, based in Linköping, Sweden, splits the Visage SDK into FaceTrack, FaceAnalysis, and FaceRecognition components, with a separate makeup SDK. Web support is HTML5, alongside iOS, Android, Windows, macOS, Linux, embedded targets such as Raspberry Pi and Xilinx, and a Unity plugin.
FaceTrack tracks more than 100 facial points in real time and returns 3D head pose, a full textured 3D model, multiple face tracking, gaze direction, screen-space gaze point and 3D facial-feature coordinates across face contour, eyes, eyebrows, nose, lips, ears and irises. FaceAnalysis adds gender, age and emotion detection. The SDK runs both online and offline, on-device or in the cloud, and Visage states that no photos, names or similar personal data are captured, stored or processed by default.
Licensing has an unusual shape. FaceTrack LITE is a free perpetual license covering one free or promotional app and up to 10,000 users, where each install-and-launch on a device counts as one user; past 10,000, new users lose tracking features until a FaceTrack license is purchased. Full FaceTrack is yearly or perpetual. There is no public price list, only a custom quote, and technical support is charged separately at a fixed €1,500 per year per client.
Best for: products that need gaze tracking, age and emotion analysis, or embedded and Linux targets alongside the browser, and can work with a quote-based license.

Comparison table

Final recommendation
For a production browser experience that has to stay on-device and later share an effect pipeline with a native app, Banuba Face AR SDK is the option that removes the most future rework, because the browser build and the native builds come from the same engine and the same effect format.
Scenario winners, where a different vendor is the better call:
- Free, maximum landmark density, no license negotiation: MediaPipe Face Landmarker. 478 landmarks and 52 blendshapes under Apache 2.0 is not something a commercial license can beat on cost, provided you are willing to build the effect tooling yourself and can handle the metrics-consent requirement.
- Campaign WebAR that also needs image and world tracking: Zappar Universal AR. Three tracking types in one SDK, with seven rendering-framework integrations, is a broader campaign toolkit than a face-only tracker.
- Published, low-entry commercial pricing: DeepAR. Free to 10 MAU and $25 per month to 1,000 MAU is the clearest small-scale commercial on-ramp here, and the video-calling integrations are documented.
- Gaze tracking, age and emotion analysis, or embedded targets: Visage Technologies. More than 100 tracked points plus gaze direction, and FaceAnalysis covers research and analytics use cases the others do not publish.
- Strict page-weight budget with no build step: none of these is small. Plan for a multi-megabyte WebAssembly download in every case and budget for precompression.
References and further reading