# Platform support

> Compare supported features, requirements, release status, and package sizes across iOS, Android, Flutter, React Native, and Web.

> For AI agents: the complete documentation index is at https://nosmai.com/llms/effects.txt

Product: Nosmai Effects
Group: get-started
Source: https://nosmai.com/docs/effects/platform-support/

## Status definitions

| Status | Meaning |
| --- | --- |
| Supported | Public integration surface is available for production use on the stated targets |
| Beta | API exists, but release qualification or the wider physical-device matrix is still in progress |
| Preview | Developer-preview implementation with intentional capability gaps |
| Partial | Only the explicitly documented subset is exposed by the current package |
| Authored packages only | A compatible `.nosmai` package can provide the result, but no matching direct control method is exposed |
| Host application | The application supplies this operation outside the Nosmai public API |
| Provider bridge | A maintained provider-specific bridge supplies the handoff |
| Analysis sampling only | Low-rate processed-frame inspection is available, but it is not a high-rate streaming handoff |
| Browser-managed | The browser owns the control and Nosmai does not expose a separate method |
| Package compatibility varies | Support depends on the exact authored package and must be checked at runtime |
| Not verified | No production-qualified integration path is currently documented |
| Preview state only | The preview exposes limited state rather than native-level parity |
| Canvas only | Processed output remains on the Web canvas and no native texture bridge is provided |
| NSError domain / Java exceptions and callbacks | The native platform reports errors through its standard public error surface |
| Not available | The current platform package does not expose the capability |

An authored effect can combine several primitives. A supported package type does
not imply that every package authored for another platform has full parity.
Inspect compatibility output where the platform provides it and test the exact
assets used by the application.

## Capability matrix

| Capability | iOS | Android | Flutter | React Native | Web |
| --- | --- | --- | --- | --- | --- |
| GPU camera preview | Supported | Supported | Supported | Supported | Preview |
| Front and back camera | Supported | Supported | Supported | Supported | Preview |
| Camera switching | Supported | Supported | Supported | Supported | Preview |
| Preview mirroring and orientation | Supported | Supported | Supported | Supported | Preview |
| Flash and torch | Supported | Supported | Supported | Supported | Not available |
| Focus, exposure, and zoom controls | Supported | Supported | Not available | Not available | Browser-managed |
| Pause, resume, stop, and cleanup | Supported | Supported | Supported | Supported | Preview |
| Skin smoothing | Supported | Supported | Supported | Supported | Not available |
| Skin whitening | Supported | Supported | Supported | Supported | Not available |
| Teeth whitening | Supported | Supported | Supported | Supported | Not available |
| Sharpening | Supported | Supported | Supported | Supported | Authored packages only |
| Face reshape controls | Supported | Supported | Partial | Supported | Not available |
| Eye-colour adjustment | Supported | Supported | Supported | Supported | Not available |
| Lipstick | Supported | Supported | Supported | Supported | Authored packages only |
| Eyeshadow | Supported | Supported | Supported | Supported | Authored packages only |
| Blusher | Supported | Supported | Supported | Supported | Authored packages only |
| Eyelashes | Supported | Supported | Supported | Supported | Authored packages only |
| Eyebrows | Supported | Supported | Supported | Supported | Authored packages only |
| Brightness and contrast | Supported | Supported | Supported | Supported | Authored packages only |
| Hue, RGB, white balance, and grayscale | Supported | Supported | Supported | Supported | Authored packages only |
| HSB adjustment | Supported | Supported | Not available | Supported | Authored packages only |
| LUT colour filters | Supported | Supported | Supported | Supported | Package compatibility varies |
| `filter` packages | Supported | Supported | Supported | Supported | Preview |
| `effect` AR packages | Supported | Supported | Supported | Supported | Preview |
| `beauty_effect` packages | Supported | Supported | Supported | Supported | Package compatibility varies |
| `background` packages | Supported | Supported | Supported | Supported | Preview |
| `game` packages | Supported | Supported | Supported | Supported | Not available |
| Face-tracked masks and props | Supported | Supported | Supported | Supported | Preview |
| 3D GLB or glTF content | Supported | Supported | Supported | Supported | Preview |
| Face-depth occlusion for 3D | Supported | Supported | Supported | Supported | Preview |
| Face and pass triggers | Supported | Supported | Supported | Supported | Preview |
| Runtime package parameters | Supported | Supported | Supported | Supported | Preview |
| Active package and effect state | Supported | Supported | Supported | Supported | Preview state only |
| App-bundled Asset Store packages | Supported | Supported | Supported | Supported | Preview |
| Cloud catalog and pagination | Supported | Supported | Supported | Supported | Not available |
| Cloud download, cache, and removal | Supported | Supported | Supported | Supported | Not available |
| Interactive tap handling | Supported | Supported | Supported | Supported | Not available |
| Named game input and game events | Supported | Supported | Supported | Supported | Not available |
| Background blur | Supported | Supported | Supported | Supported | Authored packages only |
| Background colour | Supported | Supported | Supported | Supported | Authored packages only |
| Background image | Supported | Supported | Supported | Supported | Authored packages only |
| Background video | Supported | Supported | Supported | Supported | Not available |
| Host-supplied overlay API | Not available | Not available | Not available | Not available | Not available |
| Processed photo capture | Supported | Host application | Supported | Supported | Not available |
| Processed video recording | Supported | Supported | Supported | Supported | Not available |
| Gallery-save helper | Host application | Host application | Supported | Supported | Not available |
| Processed frame or texture access | Supported | Supported | Supported | Supported | Canvas only |
| Off-screen streaming handoff | Supported | Supported | Provider bridge | Analysis sampling only | Not available |
| Agora integration path | Supported | Supported | Supported | Not available | Not verified |
| LiveKit integration path | Supported | Supported | Supported | Not available | Not verified |
| Raw WebRTC integration path | Supported | Supported | Not available | Not available | Not verified |
| License verification and status | Supported | Supported | Supported | Supported | Preview |
| Stable application error codes | NSError domain | Java exceptions and callbacks | Supported | Supported | Preview |
| Runtime compatibility report | Not available | Not available | Not available | Not available | Preview |

`Partial` for Flutter face reshape means the current Dart surface exposes face
slimming, eye size, and nose slimming directly. Additional reshape controls are
available in the native SDKs and React Native `1.0.0`, but are not yet
all exposed through Flutter.

`Authored packages only` means the Web preview can render a compatible package
that implements the visual result. It does not expose the matching native-style
parametric method.

The current public SDKs do not expose a separate host-image overlay API. Build
stickers, watermarks, animated props, and face-attached images into an authored
`.nosmai` package so they are included in preview and processed output.

## System requirements

| Requirement | iOS | Android | Flutter | React Native | Web |
| --- | --- | --- | --- | --- | --- |
| Package | `NosmaiCameraSDK` | `nosmai-sdk-3.0.4.aar` | `nosmai_effects_sdk` | `@nosmai/react-native-effects-sdk` | `@nosmai/web-sdk` |
| Current version | `3.0.4` pod compatibility release | `3.0.4` | `1.0.2` | `1.0.0` | `0.2.0` preview |
| Minimum target | iOS 15 | Android API 21 | iOS 15 or Android API 21 | iOS 15 or Android API 24 | Secure browser context |
| Architecture | Physical arm64 | Physical `arm64-v8a` | Physical arm64 target | Physical arm64 target | Hardware-accelerated WebGL2 recommended |
| Primary toolchain | CocoaPods, Swift 5 or Objective-C | Java 11, compile SDK 35 | Flutter 3.22, Dart 3 | React Native 0.81.5, React 19.1, New Architecture | Node 20.19 or 22.12+, modern bundler |
| Camera requirement | AVFoundation camera access | Camera2-capable device | Native camera permission | Native camera permission | `navigator.mediaDevices.getUserMedia` |
| Simulator or emulator | iOS Simulator unsupported | Emulator not qualified | Use physical iOS and Android devices | Use physical devices; Expo Go unsupported | Localhost or HTTPS browser testing supported |
| Distribution | CocoaPods or verified framework ZIP | Verified GitHub release AAR | pub.dev plus native dependencies | Public stable npm package plus native dependencies | Authorized preview package |

The `NosmaiCameraSDK` `3.0.4` pod currently resolves the verified framework
archive published with the iOS `v3.0.4` GitHub release. Flutter `1.0.2` declares
`NosmaiCameraSDK ~> 3.0.4` and Android native `3.0.4`.

### Browser requirements

The Web preview checks capabilities at runtime instead of promising a frozen
browser-version matrix. The browser must provide:

- a secure context, using HTTPS or `localhost`
- `navigator.mediaDevices.getUserMedia`
- WebGL2
- WebAssembly and Web Crypto APIs
- camera access allowed by browser permissions and any iframe policy
- Content Security Policy access to camera, package, WASM, and model hosts

Hardware acceleration is recommended. Software WebGL or CPU inference can make
the preview substantially slower. Read the SDK `diagnostics` object to confirm
the renderer and inference delegates selected on the test device.

## Native artifact size

| Artifact | Published size | What the number means |
| --- | --- | --- |
| Android `3.0.4` AAR | 53,876,984 bytes, about 51.4 MiB | Downloaded development artifact before app-bundle optimization |
| iOS `v3.0.4` framework ZIP | 23,962,678 bytes, about 22.9 MiB | Compressed framework archive used by the `3.0.4` pod compatibility release |
| Flutter `1.0.2` Dart package | Small wrapper package | Native Android AAR and iOS framework are resolved separately |
| React Native `1.0.0` | About 226.1 kB packed and 1.1 MB unpacked | Proprietary native binaries are resolved separately |
| Web `0.2.0` preview | Build-dependent | Face and segmentation models can be self-hosted and loaded only when needed |

These are source artifact sizes, not guaranteed store-download increases. Build
mode, compression, store thinning, existing dependencies, symbols, selected
assets, and ABI splits determine the final application size. Measure the signed
release artifact for the application that will ship.

## Device and performance notes

- The rendering target is 30 FPS under supported conditions.
- Face and segmentation inference are enabled only when the active feature needs
  them.
- Mobile performance-aware behaviour can skip selected inference work or reduce
  recording resolution on measured lower-tier Android devices.
- Effect complexity, camera resolution, device load, session length, and thermal
  state can change frame rate, memory use, and battery consumption.
- No single certified tracking-accuracy, battery, thermal, or memory figure is
  published for every device. Use a representative physical-device matrix for
  release qualification.
- A 32-bit-only Android device cannot install an app whose only native ABI is
  `arm64-v8a`. A 64-bit device that lists `arm64-v8a` can install it even if the
  device also lists 32-bit fallback ABIs.

## Verify platform eligibility

Before integration, confirm all of the following:

1. The target meets the minimum OS and architecture requirement.
2. The required capability is marked Supported or accepted as Beta or Preview.
3. A physical device is available for native camera verification.
4. The application identifier or web origin is registered in Nosmai Console.
5. The release artifact can include the proprietary native dependency.
6. The exact authored `.nosmai` packages have been tested on every target.

## Common errors

| Error or symptom | Cause | Fix |
| --- | --- | --- |
| `INSTALL_FAILED_NO_MATCHING_ABIS` | Android device or build does not provide `arm64-v8a` | Use a physical ARM64 device and keep `arm64-v8a` in the app ABI filters |
| `building for iOS Simulator, but linking in object file built for iOS` | The current iOS framework contains a device slice only | Select a physical iPhone or a generic iOS device target |
| `WEBGL_UNAVAILABLE` | WebGL2 could not be created | Enable hardware acceleration, use a compatible browser, and avoid a blocked or software-only context |
| `E_NO_PREVIEW` | React Native processing started before a Fabric preview owned the session | Mount `NosmaiCameraView`, wait for its layout boundary, then call `startProcessing()` |
| Camera preview never starts on a 32-bit Android device | The native library is ARM64-only | Exclude the unsupported device or provide a separately supported architecture in a future SDK release |

## Next steps

- [Install Nosmai Effects for iOS](/docs/effects/installation/ios/)
- [Install Nosmai Effects for Android](/docs/effects/installation/android/)
- [Install Nosmai Effects for Flutter](/docs/effects/installation/flutter/)
- [Install Nosmai Effects for React Native](/docs/effects/installation/react-native/)
- [Understand camera games](/docs/effects/concepts/camera-games/)
- [Install the Web developer preview](/docs/effects/installation/web/)

## References

- [Nosmai Effects](/docs/effects/)
- [Nosmai Effects product page](https://nosmai.com/effects/)
- [Nosmai Effects pricing](https://nosmai.com/effects/#pricing)
- [Flutter package](https://pub.dev/packages/nosmai_effects_sdk)
- [React Native package](https://www.npmjs.com/package/@nosmai/react-native-effects-sdk)
- [Android releases](https://github.com/nosmai/nosmai_effects_sdk_android/releases/latest)
- [iOS releases](https://github.com/nosmai/nosmai_effects_sdk_ios/releases/latest)
