Nosmai  Effects Nosmai  Moderation Nosmai Try-ons coming soon
Docs menu Qualify devices
How-to guide

Qualify devices and effects

Build a repeatable physical-device matrix for frame rate, memory, battery, thermals, lifecycle, recording, and streaming before release.

SDK version Native 3.0.4 · Flutter 1.0.2 · React Native 1.0.0 Updated Aug 22, 2026 Time 10 min

Prerequisites

  • A signed build using the final native and wrapper versions
  • The exact effects, camera resolution, recording, and streaming configuration intended for release
  • At least one lower-tier supported Android device, one current Android device, and one older supported iPhone
  • A stable room-temperature starting condition and repeatable session duration

Define the test cases

Run each device through the same workload sequence:

  1. Preview with no active effect.
  2. One lightweight LUT or colour package.
  3. One face-tracked beauty or AR package.
  4. Background segmentation.
  5. Processed recording.
  6. The production streaming handoff.

Record the authored package identifier and version. Two packages in the same category can have materially different GPU and inference cost.

Capture the matrix

Download the device-matrix CSV template and create one row for every device, effect, and workload combination. Keep raw measurements separate from conclusions so later releases can be compared with the same fields.

FieldRecord
DeviceModel, OS, chipset, RAM, ABI, battery health if known
InputCamera, resolution, target FPS, front or back, lighting
WorkloadPackage ID, enabled beauty/background features, recording or provider
Frame rateAverage, low interval, visible stutter, and time to first processed frame
MemoryBaseline, steady state, peak, and value after cleanup
ThermalInitial state, throttling transition, temperature or platform state, and time
BatteryStart/end percentage and fixed-duration session length
LifecycleNavigation loops, background/foreground, lock/unlock, rotation, camera switch
OutcomePass, conditional pass, fail, logs, and reproduction steps

Run long enough to expose throttling

Warm the app with the target workload and continue for the same fixed duration on every device. A short cold-device run does not represent sustained live streaming. Do not compare devices that began at materially different thermal or battery states without recording that difference.

Set release thresholds

Define thresholds from the product experience rather than publishing one universal SDK number. At minimum specify acceptable frame rate, maximum startup delay, memory recovery after cleanup, recording success, camera lifecycle success rate, and whether thermal throttling is allowed during the target session length.

Nosmai targets 30 FPS under supported conditions, but does not claim one certified accuracy, battery, thermal, or memory value for every device and effect. Report measured values with their complete test configuration.

Verify cleanup and recovery

Repeat open, close, background, foreground, camera switch, recording stop, and provider teardown. Memory should stabilize rather than grow with every cycle, and only one camera owner should exist. Preserve logs for failed cycles after redacting credentials and private service details.

Common errors

MistakeWhy it invalidates the resultFix
Comparing different effects as one benchmarkPass count and inference requirements vary by packageRun the same package version on every device
Testing a debug buildTooling and assertions distort size and timingUse the signed release configuration
Reporting only average FPSLong stalls and thermal drops disappear in the meanInclude low intervals, session duration, and thermal transition

Next steps

References

Was this page helpful?

Your response helps us prioritize documentation improvements.

Nosmai

An AR and AI company. Founded on the idea that the next decade of software will be visual, and that the tools for it should be within reach of anyone building.

Newsletter

Product updates and release notes. No spam.

© 2026 nosmai, inc · all rights reserved