# FlyLo CamFX v2 — Text Engine

A separate build of the live cam-FX engine focused on TEXT and
SYMBOL processing of the camera feed. Three new FX on top of v1's
26, driven by a single global text input. Brash colour palette
flips on every audio drop.

Install side-by-side with v1 — the .dmg has its own app name
(`FlyLo CamFX Text`) and Bundle ID, so it won't overwrite the v1
install in `/Applications`.

## What's new in v2 (slots 27 – 29)

- **27 · MANTRA** — your typed phrase scrolls THROUGH the
  silhouette. Outside is filled with a contrasting block colour
  that snaps on every drop (cyan → magenta → yellow). Bass pushes
  scroll speed, peak gives it a kick.
- **28 · CONCRETE POETRY** — the phrase orbits the performer's
  blob centroid in a tight spiral (or sine wave — flip the mode
  param). Per-character rainbow cycle, peak-burst inflates the
  orbit radius.
- **29 · HIEROGLYPH FIELD** — the silhouette is filled with a
  rotating grid of glyphs drawn from your text. The FlyLo lotus
  mark is mixed into the symbol pool at a tunable ratio. Per-cell
  rotation, scale, and hue drift independently.

Slots 1 – 26 are identical to v1, so v2 is a strict superset.

## Global text input

A new bar at the top-center of the HUD holds the operator's
phrase. Hit `T` to focus, type, `Enter` to commit, `Esc` to
dismiss. The text persists to `localStorage` so it survives
reloads and snapshots. The `⌬ FLYLO` chip toggles whether the
lotus mark is included in the HIEROGLYPH FIELD symbol pool.

## Available now

- **`flylo-camfx-v2-source.zip`** — the v2 source bundle. Same
  shape as v1 — `npm install && npm run dist:mac` to produce
  `release/FlyLo CamFX Text-2.0.0.dmg`.
- **`BUILD-MAC.md`** — full Mac build instructions (mirrors v1's).

## macOS .dmg (build it yourself)

```bash
unzip flylo-camfx-v2-source.zip
cd flylo-camfx-v2-bundle
npm install                       # ~1-2 min
./scripts/download-depth-model.sh # pulls the ~99 MB DepthAnything ONNX
npm run dist:mac                  # ~3-5 min, produces release/FlyLo CamFX Text-2.0.0.dmg
```

First launch on Mac:
1. Right-click the app in Applications → **Open** (Gatekeeper bypass, one-time)
2. Permit **camera + microphone** when prompted
3. Hit `T` to type your mantra, `Tab` to cycle to slot 27 / 28 / 29
4. `Cmd+Opt+I` opens DevTools if anything misbehaves (carry-over from v1's safety net)

## Updating from v2-α to a later build

1. Download the new `flylo-camfx-v2-source.zip`
2. `unzip` → `npm install` → `npm run dist:mac`
3. Drag the new `FlyLo CamFX Text.app` over the old one in
   `/Applications` (Finder will prompt "Replace?" — Replace)
4. Your typed mantra survives the update because it's in
   `localStorage`, not in the app bundle

## Failure modes mid-show

- **`T` doesn't focus the input** — click the text bar to focus,
  it just means the page focus is elsewhere
- **No text visible in MANTRA/POETRY/FIELD** — leave the input
  empty? It seeds to `FLYLO` automatically; commit Enter to push
  any new value
- **Shape FX still works but text bar invisible** — `H` toggled
  the HUD off. Hit `H` again
- **Anything goes wrong** — `Cmd+Q` to quit, relaunch from
  Applications. The v1 .dmg is still installed alongside v2 if
  you need to roll back during a show

## Show prep notes

v2 inherits the entire `docs/SHOW-PRESETS-AU-2026.md` preset bank
from v1 in the source bundle. The text FX (27 – 29) work cleanly
under WILD MODE — peak coupling on each FX is wired through
`store.wildness` like everything else.
