> ## Documentation Index
> Fetch the complete documentation index at: https://developer.neurofit.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> What the NEUROFIT Vitals SDK does, what a reading returns, and how the pieces fit together.

The NEUROFIT Vitals SDK adds a 60-second fingertip reading to your iOS or Android app. Your user covers the rear
camera and flash with a fingertip, sits still for a minute, and the SDK returns heart rate, HRV (RMSSD) and
breathing rate, together with SDNN, the Baevsky stress index, the Poincaré SD2:SD1 ratio, a signal-quality tier
and diagnostics. No wearable is needed.

Readings are processed entirely on the phone with deterministic signal processing, not machine learning. No
images are stored or transmitted; the SDK returns only the metrics, a quality tier and diagnostics.

It is the same engine that powers the Vitals feature in the NEUROFIT app (engine 1.3.0), so the numbers your app
shows match the numbers NEUROFIT shows.

<Note>
  The NEUROFIT Vitals SDK is not a medical device and does not diagnose, treat or prevent any condition. Use it for
  wellness, fitness and self-tracking features.
</Note>

## Validated against a chest strap

In the NEUROFIT validation study, 30 participants took 265 accepted readings while wearing a Polar H10 chest
strap. Against the strap's beat-to-beat timing:

| Metric | Mean absolute error | Correlation (r) |
| - | - | - |
| Heart rate | 0.46 bpm | 0.999 |
| HRV (RMSSD) | 3.39 ms | 0.979 |

94.7% of HRV (RMSSD) readings were within 10 ms of the strap and none was off by 20 ms or more. The SDK withheld
the 3.3% of readings it flagged as unreliable. These figures apply to seated, still, 60-second readings. See
[Metrics](/metrics) for every metric, the limits of agreement and what is not yet claimed.

## What ships

<CardGroup cols={2}>
  <Card title="Native SDKs" icon="mobile">
    Swift package for iOS 15+ (xcframework, or sources for Xcode 16+) and Kotlin AAR for Android 9+ (API 28).
    Each adds under 1 MB to your app download.
  </Card>

  <Card title="Wrappers" icon="layer-group">
    Thin React Native, Flutter and Capacitor wrappers over the native SDKs, with the same events and result fields.
  </Card>

  <Card title="Sample apps" icon="play">
    A SwiftUI sample and a plain-Views Android sample that walk through activation, permissions, the live reading
    and the result screen.
  </Card>

  <Card title="Two license types" icon="key">
    A binary license gated by an offline license key, or a source-available license to the engine and SDK.
    See [License keys](/license-keys).
  </Card>
</CardGroup>

## How a reading works

1. **Activate** the SDK once at launch with your license key. Verification is offline.
2. **Ask for camera access** (the SDK provides the permission calls on both platforms).
3. **Create a session** and start it. The camera and torch turn on and the session waits for a fingertip.
4. **Show guidance** from the events the session emits (cover the camera, adjust pressure, hold still).
5. **Show live values** during the 60 seconds: heart rate, a provisional HRV (RMSSD) from about 20 seconds in,
   a provisional breathing rate from about 30 seconds in, a signal level and the elapsed time.
6. **Receive the result**: metrics, a quality tier of `clean`, `usable` or `withheld`, flags and diagnostics.

The session handles restarts for you: if the finger lifts or the signal drops during a reading, the reading is
cancelled and the session returns to positioning, ready to start again as soon as the signal is back.
[Reading lifecycle](/reading-lifecycle) has the full state machine.

## Where to go next

<CardGroup cols={3}>
  <Card title="iOS quickstart" icon="apple" href="/quickstart-ios">
    Swift, SwiftUI or UIKit.
  </Card>

  <Card title="Android quickstart" icon="android" href="/quickstart-android">
    Kotlin or Java.
  </Card>

  <Card title="React Native" icon="react" href="/quickstart-react-native">
    TypeScript wrapper.
  </Card>

  <Card title="Flutter" icon="code" href="/quickstart-flutter">
    Dart wrapper.
  </Card>

  <Card title="Capacitor" icon="bolt" href="/quickstart-capacitor">
    Capacitor 6 plugin.
  </Card>

  <Card title="Outcomes" icon="chart-line" href="/outcomes-best-practices">
    Pre/post designs and trends.
  </Card>
</CardGroup>

## Support

Licensing and technical questions: [contact@neurofit.app](mailto:contact@neurofit.app). Please include the SDK
version (`VitalsSDK.sdkVersion`), the platform and, for a reading question, the result's `diagnostics`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.