mirror of
https://github.com/baketnk/frame-yap.git
synced 2026-10-06 06:00:04 +02:00
Document native Frame POC evidence and unresolved runtime permission
This commit is contained in:
1 parent
d60d8d2f5d
commit
26113906f0
10 files changed
+553
-56
No files matched your search
@@ -0,0 +1,103 @@
|
||||
# FrameYap POC observations — 2026-09-24
|
||||
|
||||
Dated observations on one user-authorized Steam Frame, not proof of future device
|
||||
availability, full dictation acceptance or runtime redistribution rights. No audio,
|
||||
weights, private transcript/log files, credentials or runtime binaries are included.
|
||||
The final native package below was built from source commit **`d60d8d2`**.
|
||||
|
||||
## CPU compatibility trial (before runtime-license review)
|
||||
|
||||
Isolated user-local environment: ARM64, glibc 2.39, Python 3.12.3,
|
||||
moondream 2.4.0 / kestrel 0.8.0 / kernels 0.7.0 / native 0.1.8,
|
||||
Torch **2.8.0+cpu** (`torch.version.cuda is None`). Model weights/config/tokenizer
|
||||
verified against pinned Redux revision `fad622f25f303105c20d70e201bcc477c88b620c`.
|
||||
No dense model substitution or desktop/cloud inference was used.
|
||||
|
||||
A one-second synthetic silence trial loaded in 5.645 s; three decodes took
|
||||
0.187 / 0.149 / 0.167 s and returned no text. Peak process RSS in that trial was
|
||||
989,844 KiB (~967 MiB). This is not peak RSS for arbitrary 20-second speech clips.
|
||||
|
||||
Public 11.0-second JFK speech fixture:
|
||||
<https://github.com/openai/whisper/blob/v20250625/tests/jfk.flac>.
|
||||
Source FLAC SHA-256 `63a4b1e4c1dc655ac70961ffbf518acd249df237e5a0152faae9a4a836949715`.
|
||||
Converted to PCM16/mono/16 kHz WAV with ffmpeg; WAV SHA-256
|
||||
`0c397b12d7dbdd89e4fd0d9a0840c14a2c5c3707758562755cda96a931b25a91`.
|
||||
The persistent worker used bounded file/pipe IPC; no microphone was opened.
|
||||
|
||||
| CPU threads | Worker load | Five request times (seconds) | Median | RTF | Audio/compute ratio |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2 | 5.190 s | 1.550, 1.619, 1.587, 1.619, 1.659 | 1.619 s | 0.147 | 6.8× realtime |
|
||||
| 4 | 4.655 s | 1.196, 1.158, 1.143, 1.249, 1.502 | 1.196 s | 0.109 | 9.2× realtime |
|
||||
|
||||
The first result reproduced the fixture's known sentence; all five replies in
|
||||
each run were correlated and 108 UTF-8 bytes. These are medians/maxima from one
|
||||
public clip, not representative accuracy/WER, p95, streaming realtime performance,
|
||||
or compositor/thermal acceptance. Load time is excluded from RTF. Two threads
|
||||
remain the default pending scene-contention measurements.
|
||||
|
||||
An unconstrained dependency install initially selected CUDA Torch/NVIDIA wheels;
|
||||
these were replaced/removed from the owned venv before measurement. No system
|
||||
packages were changed. Later inspection found the proprietary kernel license's
|
||||
separate-agreement requirement. Permission was declared unresolved; further
|
||||
inference and proprietary-runtime packaging were paused pending vendor clarification.
|
||||
See [license boundary](../third-party.md). The acquired development environment
|
||||
remains user-local and is not included in the native-only installation.
|
||||
|
||||
## Native runtime / controller / overlay checks
|
||||
|
||||
- Native CMake build succeeded on Frame using standalone OpenVR SDK v2.15.6,
|
||||
explicitly built SDL 3.2.16, system Wayland and FreeType. No unrelated app tree
|
||||
or environment was linked/copied. No sudo or system/session restart.
|
||||
- Installed executable connected to `gamescope-0`, bound the IME and received
|
||||
ready/done state; each discovery check disconnected **without text or Enter**.
|
||||
- OpenVR accepted the raw panel. The user reported seeing the five-second window.
|
||||
This confirms visibility, not readability/comfort or successful pointer clicks.
|
||||
- Device controller properties identified `frame_controller` and its input profile.
|
||||
The profile exposes grip `click`; authored default bindings were added. A
|
||||
controls-only run reported both grip actions tracked/active. **No physical
|
||||
gesture delivery was observed in that run.** Double-tap/hold/loss behavior is
|
||||
currently verified by deterministic unit tests, not a human controller trial.
|
||||
- The ARM loader initially tried `/data/work/openvrpaths.vrpath`. Selecting the
|
||||
existing standard user registry fixed initialization; code now does so only
|
||||
when no explicit override is supplied.
|
||||
- Registration initially returned API success but did not install the app.
|
||||
Frame's manifest parser requires **`binary_path_linux_arm`**. Adding it fixed
|
||||
registration. Code now verifies `IsApplicationInstalled`, not return status alone.
|
||||
- Repeated Add, Remove and re-Add of **only** `local.frameyap.overlay` succeeded;
|
||||
autolaunch queried **off**. The final installed panel check also succeeded after
|
||||
explicit identification with that registered key. Menu-driven launch and cold
|
||||
SteamVR startup were not exercised.
|
||||
|
||||
## Installer and final state
|
||||
|
||||
Native-only artifacts `v0.1.0-poc1`/`poc2` exercised installation, same-version
|
||||
rerun, upgrade, rollback and forward selection. A producer-prefix SDL RUNPATH leak
|
||||
was found and removed; final ELF RUNPATH is only `$ORIGIN/../lib` and bundled
|
||||
SDL/OpenVR resolve inside the installed tree.
|
||||
|
||||
Explicit OpenVR unregister followed by `--uninstall --unregistered` succeeded.
|
||||
The final `v0.1.0-poc3` artifact was then installed twice and registered with
|
||||
autolaunch off. It includes native code, SDL/OpenVR, Hack font/notices and the
|
||||
worker adapter, **no ASR runtime or weights**. Installed size: ~8.1 MiB.
|
||||
|
||||
Local archive SHA-256:
|
||||
`90aab107feea2cb501bf815806bdc1d04d84bb6f87f7c795b60ad43c7fdc0634`.
|
||||
The artifact is retained only in the device's project-owned development directory;
|
||||
no GitHub release/upload was performed. Installed launcher is `~/.local/bin/frameyap`.
|
||||
Actual native CLI and installer both refused an independently held install lock.
|
||||
At the final check, no owned `frameyap` process or transient `frameyap-*` runtime
|
||||
directory remained. Installation/registration remain; nothing was autostarted.
|
||||
|
||||
Final verification on source `d60d8d2`: default local build **8/8 CTests**;
|
||||
optional native local build **9/9**; native ARM64 build **9/9**. Suites include
|
||||
13 installer cases, worker framing/hash/cancellation/deadlines, gestures, state,
|
||||
instance locking, and an isolated fake Wayland server. Those tests do not connect
|
||||
to the live compositor or record audio. `git diff --check` passed locally.
|
||||
|
||||
## Still open
|
||||
|
||||
Runtime permission and any public distribution; live microphone quality/device
|
||||
selection; physical tap/hold/buttons; actual text/Enter delivery into disposable
|
||||
and real target apps; focus/held-modifier behavior; quick typing's focus observer;
|
||||
scene/dashboard collisions; compositor cost, battery/thermal and headset comfort.
|
||||
No live microphone recording or input injection occurred in this POC pass.
|
||||
Reference in new issue
Block a user