Older and low-end devices

Most AR makeup SDKs quietly assume a recent phone. Ours does not, because your users do not all carry one. We put real makeup through a real video call on Android phones going back to 2018 — including the kind of entry-level hardware other vendors leave out of their spec sheets — and on iPhone, recorded every run, and published the numbers here, good result first.

What to expect

On mid-range and recent devices Lumaris holds a smooth call: our published target is 23 fps and up, with capture-to-published latency well inside what a conversation tolerates. A video call stays comfortable down to roughly 14-15 fps, which is where the older hardware below lands. Under that, the SDK is designed to protect the call rather than the filter: it steps quality down on its own, and at the very bottom it turns makeup off and keeps the video flowing instead of freezing it.

How these numbers were produced

Every device ran the identical test, twice, with nothing else configured differently:

  • The same 15-second clip is pushed through the pipeline in real time, so the numbers include capture, tracking and rendering. On Android the frame then goes into a live Agora call and the numbers include encoding and publishing too.
  • Each device is measured once with the full look — red matte lipstick, black eyeshadow, foundation, blush, mascara — and once with the makeup and face tracking switched off, which gives that device's own ceiling on the same path.
  • Frame rate is counted as new pictures a second on the device, not frames requested; latency is the median from the captured frame to the finished frame the SDK hands to your call.
  • The screen recordings below come from separate runs, so the cost of recording never flatters or distorts the published numbers.

Measured devices

Left: the device without makeup, the ceiling it can reach on this pipeline. Right: the same device with the full look running.

Apple iPhone 12

Released 2020 · Apple A14 Bionic · Apple 4-core · 4 GB · iOS 27.0

Smooth
Without makeup30.0 fps
With Lumaris30.0 fps
Without makeup
30.0 fps
With Lumaris
30.0 fps
Latency
33 ms

Xiaomi Redmi Note 9 Pro

Released 2020 · Snapdragon 720G · Adreno 618 · 6 GB · Android 10

Smooth
Without makeup25.9 fps
With Lumaris19.9 fps
Without makeup
25.9 fps
With Lumaris
19.9 fps
Latency
65 ms

Xiaomi Redmi Note 5

Released 2018 · Snapdragon 636 · Adreno 509 · 3 GB · Android 9

Normal
Without makeup24.0 fps
With Lumaris13.9 fps
Without makeup
24.0 fps
With Lumaris
13.9 fps
Latency
124 ms

OPPO A16

Released 2021 · MediaTek MT6765 · PowerVR GE8320 · 3 GB · Android 11

Low performance
Without makeup25.7 fps
With Lumaris9.9 fps
Without makeup
25.7 fps
With Lumaris
9.9 fps
Latency
175 ms

Samsung Galaxy A10s

Released 2019 · MediaTek MT6765 · PowerVR GE8320 · 2 GB · Android 11

Low performance
Without makeup25.7 fps
With Lumaris7.9 fps
Without makeup
25.7 fps
With Lumaris
7.9 fps
Latency
212 ms

General Mobile GM 8

Released 2018 · Snapdragon 430 · Adreno 505 · 3 GB · Android 9

Not good
Without makeup25.7 fps
With Lumaris7.9 fps
Without makeup
25.7 fps
With Lumaris
7.9 fps
Latency
218 ms

Below the floor

Weaker hardware than this exists, and we have measured it too: four-core entry chips whose GPU simply cannot composite makeup in time. That case is what the quality ladder is for. The SDK lowers the render resolution first, then the frame rate, and at the bottom it switches makeup off and lets the call keep running at the device's own rate rather than freezing the picture. Nothing about that is left to the host app to detect — it happens on its own, during the call, and reverses as soon as the device recovers.

Every figure on this page came off a physical device on our bench, not an emulator or a projection. If a device class matters to you and it is not listed, ask us and we will measure it.