Getting startedSystem requirements

System requirements

Camera

The SDK requires a camera device that can be accessed via native platform APIs and provides stable 30 FPS video with the resolution of at least 640x480 pixels.

Note that a higher quality camera sensor can enable more accurate measurements under worse light and stability conditions.

Network

Internet connectivity is required for license validation, and optional for telemetry and crash reporting.

Beyond that, there are minimum requirements depending on the target platform.


Android

Android VersionAndroid 8.0 (API level 26) or higher
CPU architecturearm64-v8a
RAMat least 4 GB
OpenGL ES versionat least 3.0

iOS

Minimum supported iOS version is 14.0.

Minimum tested iPhone model is iPhone X. Older models updated to iOS >= 14 may work, but are not currently actively tested.


Web

The Web SDK supports desktop and mobile web browsers (see details below).

💡

Note that due to the extra intermediate layers of the Web platform, the Web SDK is not as performant as the Native SDKs. As a consequence, some older mobile devices which can run the Native SDK may struggle with real-time processing in the Web SDK.

Client browser requirements

The Web version of the SDK utilizes some of the recent web standards in order to make high-performance computations in the browser possible. Browser support for those features varies.

Required browser features

The following features must be available on the client browser in order to use the SDK:

The following feature is optional but highly recommended, as it further improves performance:

Supported browsers

The following browsers are recommended as they implement all the required and recommended features:

  • Chrome and other Chromium-based browsers (e.g. Edge, Opera) on Android/Windows/macOS/Linux

The following browsers are also supported:

  • Safari 17+ on macOS Sonoma (14.0+)
  • Safari/Chrome/other on iOS 17+ (all iOS browsers use the same WebKit engine under the hood)
  • Firefox on Android/Windows/macOS/Linux

Server requirements

In order to utilize the Web SDK, the server from which it is being served must send the following headers to the client browser:

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin

Read more about the COOP and COEP headers at web.dev/coop-coep.

See our public examples repository to see how to set the headers for local development using the serve package.

Transfer requirements

  • One-time ~20MB WebAssembly download (after compression)

Embedding the Web SDK in an Iframe (Cross-Domain)

If you plan to load the Shen.AI Web SDK from a different domain inside an <iframe>, both the top-level page and the iframe content must be set up for cross-origin isolation. This is a requirement for using SharedArrayBuffer and related high-performance web APIs within an iframe. Below is the simplest way to achieve this:

  1. Top-Level Page Headers
    The parent page (the one that hosts the <iframe>) needs:

    Cross-Origin-Opener-Policy: same-origin
    Cross-Origin-Embedder-Policy: require-corp

    This ensures the parent document itself is in a cross-origin isolated context.

  2. Iframe Page Headers
    The iframed page (the one actually running the Shen.AI Web SDK) also needs:

    Cross-Origin-Opener-Policy: same-origin
    Cross-Origin-Embedder-Policy: require-corp
    Cross-Origin-Resource-Policy: same-origin

    or a compatible setup (e.g. using credentialless) so that the iframe is allowed to create and use SharedArrayBuffer.

  3. Iframe Attributes
    In your top-level HTML, when embedding the iframe, include:

    <iframe
      src="https://your-iframe-domain.example.com/sdkindex.html"
      allow="cross-origin-isolated"
    ></iframe>

    The allow="cross-origin-isolated" attribute signals that this iframe can operate in a cross-origin-isolated environment.

  4. Ensure the Domain is Properly Configured

    • The domain serving the parent document must serve it with the COOP/COEP headers, as noted above.
    • The domain serving the Shen.AI Web SDK inside the iframe must also serve the .html, .js, and .wasm files with the correct cross-origin isolation headers.
  5. Verify

    • Open your browser’s Developer Tools.
    • Check the Network tab for each resource. Verify that the response headers Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy are present on both the main page and the iframe’s content.
    • Confirm allow="cross-origin-isolated" is set on the <iframe> element.
    • If everything is correct, the developer console should indicate that your document is in a cross-origin isolated state, allowing usage of SharedArrayBuffer within the embedded SDK.

Tip: If you see errors in your developer console indicating that SharedArrayBuffer is not available or your document is not cross-origin isolated, double-check all headers and the iframe attributes. The presence (and correctness) of COOP and COEP on both the top-level and the iframe responses is crucial.

By following these steps, your cross-domain <iframe> will have the required isolation for SharedArrayBuffer (and thus for the Shen.AI Web SDK). If any one step is missing—such as not including the headers on the parent page, or forgetting allow="cross-origin-isolated" on the <iframe>—the environment won’t be fully cross-origin isolated, and the SDK will fail to initialize.

;