What You Will Build
You will scaffold one of the published starter apps with@elata-biosciences/create-elata-demo.
Pick the template that matches your goal:
rppg-demo: primary: camera-based pulse/rPPG appeeg-demo: optional: browser EEG processing with synthetic dataeeg-blealias: Bluetooth: use the EEG starter app with the BLE-focused alias when you want a Muse-compatible headset flow
Why Start Here
This is the recommended default because it gives you:- a working app structure
- pinned compatible package versions
- a reference implementation you can compare your own app against
Step 1: Choose A Template
Use this decision table:| If you want to… | Choose |
|---|---|
| Build the default camera-based app (no extra hardware) | rppg-demo |
| Add browser EEG only (synthetic or offline samples first) | eeg-demo |
| Enable a Muse-compatible headset over Bluetooth (Chrome/Edge) | eeg-ble alias for eeg-demo |
rppg-demo.
Step 2: Scaffold The App
Start with the interactive chooser:rppg-demo
directly:
Step 3: Install And Run
Copy one column (pnpm or npm), then run each line in order:Step 4: Confirm What You Have
Once the app starts, verify the expected behavior:rppg-demo: asks for camera access and starts a pulse-style sessioneeg-demo: loads EEG processing in the browser and shows synthetic-data-driven outputeeg-blealias foreeg-demo: adds Bluetooth pairing and streaming guidance for a supported Muse-compatible headset on top of EEG
Step 5: Understand The Generated App
Each scaffolded app gives you:- a minimal Vite + React shell
- Elata packages already wired in
- a
README.mdwith template-specific notes - a
buildscript so you can confirm the app compiles cleanly
Common Gotcha: Scaffolding Inside Another pnpm Workspace
If you create my-app inside another repository that already has a
pnpm-workspace.yaml, pnpm install may attach to the parent workspace
instead of the generated app.
Run these one line at a time from the parent directory (adjust my-app if needed):
Where To Go Next
You already have a running scaffold. The recommended order is camera rPPG first (most people’s primary app), browser EEG second if the product needs brain signals, then Web Bluetooth to connect a headset (transport on top of EEG). Each step splits the same way: stay on the scaffold or integrate into an app you already have.Next: Camera (rPPG): primary
Pick the row that matches you:| Your situation | What to do next |
|---|---|
New app: you will keep building from the generated rppg-demo scaffold | Use rPPG In A Browser App for the integration model, then rppg-web while you change the template. For scaffold CLI details: create-elata-demo. |
| Existing app: you need rPPG inside a codebase you already ship | Follow Add Camera-Based rPPG To An Existing Browser App step by step. |
Then: Browser EEG: optional (no headset yet)
| Your situation | What to do next |
|---|---|
New app: extend or respin eeg-demo | EEG In A Browser App, then eeg-web. Scaffold reference: create-elata-demo. |
| Existing app | Add EEG To An Existing Browser App. |
Then: Enable Bluetooth headset (Muse-compatible)
| Your situation | What to do next |
|---|---|
New app: extend eeg-demo via the eeg-ble alias path | Web Bluetooth With Supported Devices, then eeg-web-ble (and eeg-web). |
| Existing app | Stream Muse-Compatible EEG Over Web Bluetooth. If WASM is not wired yet, do the EEG row above first. |
Full map
For the same choices in one place in priority order (rPPG, then EEG, then Bluetooth), use Build A Browser App.Example Apps
Example Apps
Full product-shaped reference implementations
Choose A Package
Package decision guide