The Finally neon F
Field Manual

FINALLY

offline · local · yours — the VR video player that respects your library, your network, and your hands.

covers v0.3.13-m3 · quest + galaxy xr · july 2026

Get Finally on the Meta Horizon Store →

01 · basics

Start here

Point the laser. Pull the trigger. That's most of Finally.

The vault is your library. Open a folder to dig in. Open a title to play. Everything happens inside VR — you only ever drop to a flat screen when you explicitly ask for the 2D file pickers.

InputWhat it does
BIn a video: quick strip → full cockpit → hidden — never exits the app
TriggerClick what you point at · summon the quick strip while playing
APlay / pause
Stick ← →Seek

One-controller law. Everything critical in Finally works with a single hand. Left-hand buttons are conveniences, never requirements.

02 · muscle memory

Controls

The full map. B is sacred — it only ever toggles the menu.

ActionInput
Menu on/offB only. Lobby = vault UI · video = strip → cockpit → hidden · photo = full cockpit (see The Cockpit)
Click / confirmTrigger (when the menu is open)
Play / pauseA — or Trigger when the menu is closed
MuteGrip + A
SeekStick ← → (either hand)
Zoom (immersive)Stick ↕ with the menu closed · range 0.5×–2.6×
Flat: distanceStick ↕ — a physical dolly. Flat video is an object in your room, never a FOV trick
Flat: window sizeGrip + Stick ← → — shrink / enlarge in place
List navigationStick ↕ with the menu open
Prev / next titleGrip + Stick ↓ / ↑
Drag the world (dome)Trigger + Grip — grab-the-world
Dome dolly (VR180 / fisheye)Stick ↕ — push forward leans the scene closer. True translation, not optical zoom
Full resetStick click — zoom 1×, distance home, height and drag zeroed, content on gaze
Eye swapY (left hand) — also the Eyes cell on PLAY
Move the menu panelPoint at it + hold Grip + move your hand
Menu pull / pushWhile grip-holding: Stick ↕ slides it along the ray
Resize the menuWhile grip-holding: Stick ← →

Haptics: a hover tick and a click pulse on the pointing hand, with a VIBE toggle on SETUP. Hard rule: grip away from the panel does nothing — no accidental grabs.

Galaxy XR note. Quest binds the full Touch controller profile. Galaxy XR runs the same map through the standard controller profile — laser, trigger, menu, and transport all behave identically.

03 · the lobby

The Club

♡ FINALLY CLUB — your vault, floating in a neon room (or your real one).

The Club is where you land. Titles list in the center; favorites wear a ; folders glow gold. Aim and trigger to open anything.

The chip row

ChipWhat it does
▲ UP ▼ DNScroll the vault
↻ SCANRescan your sources for new files — including your saved NAS share, so server-side additions land without leaving VR
◎ ROOMPassthrough — the vault floats in your real room. Saved as your default
✦ WORLDCycle the lobby environment — bundled worlds plus your own (see Worlds)
★ FAVPin the selected title to favorites

Posters on the rows

Every local title wears a poster — one real frame pulled from ~10% into the video, past the black leaders and intro cards, cached so the vault paints instantly next time. Stereo-packed files are cropped to a single eye first, so a poster is never a double image. Rows still loading show a quiet glyph — and NAS and Blu-ray ISO rows keep the glyph on purpose: pulling megabytes over the network (or spinning up the whole disc stack) just to decorate a list is how library screens start stuttering. The 2D library rows wear the same posters.

Who gets hidden

Files that auto-detect as plain mono — a whole-word mono tag in the filename — are tucked out of the vault and the 2D library, with an honest count in the vault footer: N MONO hidden. Two rules keep this safe: the detector matches whole tags only (Kimono and Monolith never vanish), and a title with your saved settings is never auto-hidden — your choices always beat the detector's. The tag is the switch: rename the file and it's back.

Setup without leaving VR

⚙ SOURCES opens the sources panel in the same room — no screen switch, no splash. It shows every source Finally knows (auto folder + scans + NAS shares). Beside it, 🎛 SET holds the lobby settings — menu level, resume, skip intro, tilt follow, stick zoom direction, seek step, Seek landing (FAST ⇄ EXACT, see Seeking), and the cockpit Menu style (SIMPLE ⇄ PRO, see The Cockpit) — and 📖 HELP is this manual, in-headset, no title required.

Only one door leads out of VR: FOLDERS, which intentionally drops to the 2D library for the Android folder and NAS pickers (those dialogs are system UI and can't render in-headset). Everything else keeps you inside.

LEAVE exits to your headset home — labeled LEAVE → QUEST on Quest and LEAVE → HOME on Galaxy XR. On the empty first run the vault says so: "Vault is empty — tap ⚙ SETUP for sources, or drop files in Movies/Finally and ↻ SCAN."

04 · while playing

The Cockpit

Press B during playback: quick strip first, full cockpit second, gone third.

The B cycle

While a video plays, B walks a three-step cycle: nothing open → quick strip → full cockpit → hidden. The strip spawns low, below your eyeline — a glance down, not a wall of controls in your face. A second press grows it into the full cockpit in place; a third puts everything away. A bare Trigger pull summons the strip too, so the common moves are always one squeeze away.

Photos skip the strip — B opens the full cockpit directly, because transport means nothing to a still. In the lobby, B is the vault, same as always.

The quick strip

The strip carries the moves you actually make mid-video: the timeline scrubber, -30s / -5s / PLAY / +5s / +30s (the small step is adjustable in SETUP), ■ STOP, speed, volume, mute, PREV / ◆ CLUB / NEXT, ◀ CLOSER / FARTHER ▶, and ◎ ROOM. In PRO mode it adds the A·B·C·D loop chips and a ◎ STATS chip (see Stats for nerds below). If a network stream stalls, the strip raises itself with a REBUFFERING banner and stands back down when the flow recovers — details in Sources & NAS.

SIMPLE and PRO

The full cockpit ships in SIMPLE mode: three tabs — PLAY · VIEW · HELP — with the essentials. PLAY keeps the transport, speed, volume, mute, Eyes, passthrough, PREV/NEXT, and the core lens row (AUTO · VR180 · VR360 · Flat · SBS · OU). VIEW keeps scene height, distance, zoom, and screen curve, plus the resets and the AUTO escape hatch.

Tap the PRO chip in the tab row and the exact five-tab cockpit below unlocks; BASIC brings SIMPLE back. Your choice is saved, and it's also flippable from the lobby — 🎛 SETMenu style — no title required. SIMPLE hides the pro tools — A–B loops, the MKX/FE190/VRCA lens profiles, the chroma/alpha keying suite, the fine placement sliders — it never removes them. Everything is one chip away.

The five PRO pages:

PLAY

The transport. Timeline scrubber, -30s / -5s / PLAY / +5s / +30s, ■ STOP, ◆ CLUB to return to the lobby, speed, volume, mute, Eyes (L·R ⇄ R·L), the preset AUTO/MANUAL toggle, passthrough, A·B·C·D loop marks, PREV/NEXT, and the quick lens row (VR180 · VR360 · Flat · SBS · OU · AUTO).

SBS and OU are toggles: press the lit one and the title drops back to 2D — the lit cell even says so: again = 2D. Stereo always has a one-press exit, in SIMPLE and PRO alike.

PLACE / EYES

Where the scene sits and how your eyes meet it. Sliders for scene height, move scene (left/right), distance, zoom, depth position (stereo convergence), eye height align, scene tilt, scene roll, and screen curve (flat titles only — 0 to ~100° of cylindrical wrap, saved per title). Plus flip left/right, flip up/down, Reset place + eyes, and the full manual lens row — see Lenses.

These sliders are live twice over: every cockpit slider repaints while your trigger drags it, and tilt, roll, zoom, and distance also follow the grip and stick gestures in real time — roll the dome with your wrist and SCENE ROLL moves with you, instead of showing a stale value that later snaps the scene back.

COLOR / KEY

A full color grade: brightness, contrast, gamma, saturation, hue, and warmth — six proper sliders with a one-tap Reset. The grade touches the video only (the menu panel stays neutral) and starts clean each session. Below them, the entire passthrough keying suite: master passthrough toggle, packed-alpha matte, four-color chroma key with per-color edge controls. Detailed in Your room.

SETUP

Seek step size, menu distance and size, theme, menu spawn (at gaze or fixed origin), default-SBS-for-180 toggle, skip intro, resume on/off, stick zoom direction (pull = smaller by default, flippable), wrist-roll dome tilt, haptics, the Stats HUD toggle — and the lying-down suite: tilt follow rolls the picture with your head so it stays upright to your face instead of the room (lie on your side; the movie comes with you — menus and laser stay world-anchored), and menu level makes the cockpit spawn gravity-level instead of matching your head tilt.

HELP

The in-headset version of this manual: subjects on the left, article on the right, stick ↕ scrolls. It also hides two extra chapters this page only summarizes — THEORY (teal) and DEEPER (green). See Theory.

Stats for nerds

PRO only. Tap ◎ STATS on the quick strip's header (or the Stats HUD cell on SETUP) and the strip's lower half becomes a live readout: file and source, video codec with resolution @ fps, decoder and dropped frames, audio codec, color info, buffer seconds against target, NAS fill % with live MB/s, position / speed / state, and the active lens + stereo. It refreshes once a second while open, the scrubber and transport stay live above it, and it never appears on photos — a still has no stats worth nerding over.

Nothing decorative. A cockpit toggle must never be a placebo — if a switch is visible, it does something real. That's a design law, not a promise.

05 · the projection brain

Lenses & projection

Filenames hint the shape. Untagged files use the real frame geometry. Your fixes stick per title — forever.

Every VR video is a flat rectangle of pixels that has to be wrapped back into a world. Get the wrap wrong and the scale, depth, and edges all lie to you. Finally reads the filename, checks the frame, picks a projection — and when it can't know, gives you manual overrides that persist.

The lens family

LensFOVWhat it is
VR180180°Equirectangular half-dome — the standard stitched VR180 format
VR360360°Equirectangular full sphere
FISHEYE180°Plain circular fisheye disk — unstitched lens image
FE190190°190° fisheye — SLR originals and the Canon lens family
MKX200200°SLR MKX lens (plus a RAW variant)
MKX220220°Wider MKX lens
VRCA220°VRCA lens correction
FlatA 2D panel in your room — optionally curved, never warped

180 vs 190 — yes, they're different. Same fisheye disk, different lens coverage. A 190° file played on a 180° mesh looks subtly zoomed-in with warped edges; the reverse looks shrunken. When something's off but you can't name it, audition the lens row.

Canon RF 5.2mm dual-fisheye (rf52) exports are treated as stitched VR180 — Canon's EOS VR Utility outputs equirect, so that's where those files belong.

When there's no tag at all

A filename tag is a promise, and Finally keeps it — tagged 180 files keep the ecosystem's SBS convention. An untagged file gets a much more careful guess: the frame is only eye-split when halving it actually yields two roughly square eyes (the classic 2:1 full-SBS dome). Portrait video is never VR. An ultra-wide frame (32:9-class) resolves to a flat 3D SBS screen — that shape is a movie pack or a monitor capture, never a hemisphere. And an odd, non-standard aspect plays mono instead of being torn in half — a wrong mono is watchable; a wrong eye-split is soup. Your manual override still beats everything.

AUTO, MANUAL, and the consent card

Finally's override system exists to kill a disease other players have: silently forgetting your fixes, or silently fighting the filename. The rules:

  • AUTO (default): identity is re-derived from the filename and frame every open — detector improvements and renames stay live.
  • The first big manual change on a tagged file asks once: OVERRIDE (manual settings for this file) or KEEP AUTO (follow the filename preset).
  • Choose OVERRIDE and your settings beat the filename forever — surviving reopens, rescans, and app updates.
  • AUTO leads both lens rows as the escape hatch — one tap hands the file back to the detector. Nobody gets trapped in MKX land.

06 · reference

Filename tags

Deo-compatible and then some. Tags are case-insensitive; separators are _ - . space ( ) [ ].

Projection / lens

TagsResult
180 vr180 180x180VR180 equirect
360 vr360VR360 equirect
fisheyeFisheye 180°
fisheye190 fe190Fisheye 190°
mkx200 · mkx200rawMKX 200° (raw variant kept distinct)
mkx220MKX 220°
vrca220 vrcaVRCA 220°
rf52 rf5.2 canonrf52 dualfisheyeStitched VR180 (Canon workflow)
flat 2dFlat panel
fb360VR360 (Facebook spatial-audio marker)

Stereo packing

TagsResult
sbs lr 3dh sidebysideSide-by-side
rlSBS with swapped eyes (Deo convention: right eye in the left half)
ou tb tab 3dv overunderOver-under
btOver-under, swapped eyes — unless it's sitting next to a colorimetry token like bt709 / bt2020, which don't count
hsbs half-sbs · hou half-ouHalf-width / half-height variants
monoOne image to both eyes. Whole-token only — Kimono and Monolith are safe

Untagged fisheye-family files default to SBS — that's how the ecosystem ships them.

Extras

TagsResult
_alpha passthroughPassthrough hint — arms the packed-alpha / chroma path
flip fliph · flipvHorizontal / vertical flip

07 · your library

Sources & NAS

Three ways in: the auto folder, any folder you pick, and your NAS over SMB.

The zero-setup path

Drop files into Movies/Finally on the headset and hit ↻ SCAN. Done.

Folders and files

The 2D library (reached via FOLDERS) adds any folder with + Add videos folder — and it chains: Android's picker grants one folder per round, so after each scan lands Finally asks "add another?" and relaunches the picker until you're done. Two taps per extra folder, not a hunt for the pill. + Add files is multi-select — long-press or tap several in the system picker and they land together, each checked for compatibility, with one summary at the end. Sidecar import/export lives here too. Clear vault removes library rows only — it never deletes files on disk or NAS.

NAS / PC share (SMB)

Finally treats SMB2/3 as a first-class library source — stream straight off your PC or NAS over Wi-Fi, no copying.

  1. On your computer, share a folder (Windows: Properties → Sharing).
  2. Put some videos in that folder.
  3. Note the PC's IP (e.g. 192.168.1.151) and the share name (e.g. Media) — not the full path.
  4. Headset and PC on the same Wi-Fi / home network.
  5. Turn off any VPN on the PC if connect fails.

Then: 2D library → + Add NAS share → host, share name, an optional Folder (e.g. media/vr — scans just that subfolder instead of crawling a big share), Windows username + password, port 445. Hit Test first — it signs in and lists the share, and the verdict lands right in the form: teal with an entry count when it works, amber plain language when it doesn't. The form never closes on a mistake, and everything you typed survives a failure — password included. Fix the one wrong field and go again. A how-to row opens the full setup guide right over the form.

Then hit Scan and the vault labels those titles NAS · your-host. Credentials are stored encrypted, on-device, keyed to that share — never in plain preferences, never in any cloud.

Share name, not path. The most common connect failure is typing C:\Media where the share name goes. Use the short name only. Second most common: a VPN on the PC eating local discovery.

Big files welcome. Multi-GB videos — 2, 3, 4 GB and up, which is most real VR files — stream reliably over SMB. That was the 0.3.9 bug fix: if huge titles used to die partway in, they don't anymore.

What the scan tells you

Scans report what they skipped instead of silently dropping it. The result card names folders that couldn't be opened (permissions), counts files skipped for unsupported types and album-art-sized stills, and says so if the scan hit its cap and stopped early — point the Folder field at a subfolder to go deeper. NAS housekeeping folders (@eaDir, #recycle, dot-folders and their cousins) are pruned by design. And one locked folder no longer kills the whole scan — you get everything else, plus its name in the report.

Network scans also skip music album art automatically (cover.jpg, folder.jpg, fanart, and any thumbnail-sized still) — a share with a music library won't flood your vault with sleeve scans. Folders you add directly keep every still you pointed at.

Rescan without leaving VR

The vault's ↻ SCAN re-walks your saved NAS share along with the local sources. Dropped new files on the server mid-session? One chip, headset stays on, and they're in the vault.

When the stream stalls

NAS playback narrates itself. While a network title loads, the vault shows a real buffering percentage — the actual readahead fill, not a spinner. If the stream stalls mid-play, the quick strip raises itself with a REBUFFERING banner and hides again once the flow recovers.

If a video can't play at all, the reason lands on the vault panel as a bold amber alert band, in plain language: corrupt file, unsupported codec, no permission, file missing, or "NAS stopped responding." A server that's connected but frozen is declared dead in about 20 seconds — no eternal hourglass. A network that drops out entirely gets a ~45-second self-heal window: Finally keeps reconnecting, and if the network comes back in that window, playback resumes by itself.

What plays

Video: mp4 mkv mov webm avi m2ts ts mpg vob 3gp and friends — plus decrypted Blu-ray iso images, which play as discs (see Blu-ray ISO). Stills: jpg png webp heic avif bmp and friends. wmv / asf are deliberately not listed — the headset ships no decoder for them, so they could never play; a library row that can't play is a lie. Dead entries from older versions clean themselves up on first launch.

Hardware decode up to 8K where the headset allows. Audio decodes in hardware when possible and falls back to FFmpeg software for AC-3, E-AC-3, and DTS — so MKV rips are not silent. Sidecar notes (*.finally.json) carry projection, prefs, and resume position with the title itself, matched by content hash — your fixes travel with the file, not with an account.

08 · discs

Blu-ray ISO

Your decrypted Blu-ray backups play as discs — from local storage or straight off the NAS.

Drop a decrypted Blu-ray ISO into any source — a local folder or your SMB share — and it's a title in the vault like everything else. Finally walks the disc's UDF filesystem itself, reads the playlists, and picks the main movie automatically: the feature-length playlist, not a menu loop or a trailer. Scrubbing and the full cockpit work as usual. NAS ISOs stream in place — the disc never gets copied to the headset. Big images take a moment to open; the vault says so (⏳ opening ISO…) instead of freezing.

The honest part

AACS-encrypted discs do not play. Finally ships no decryption — an encrypted image gets a plain amber card: "This ISO is still AACS-encrypted — rip it with MakeMKV first." That's the whole workflow: MakeMKV makes the decrypted backup, Finally plays it. And if you'd rather skip ISOs entirely, MakeMKV-remuxed MKV files still play great too.

DVD ISOs aren't supported yet — they get the same honest treatment, in plain language. So does an incomplete image (BDMV folder present, STREAM clips missing): the card says exactly that instead of a mystery error code.

Posters: ISO rows keep the glyph placeholder on purpose — spinning up the whole disc stack just to paint a list row isn't worth the stutter (see The Club).

09 · mixed reality

Your room

Passthrough puts the video in your actual space. The keying suite makes it belong there.

Toggle ◎ ROOM in the lobby (persisted as your default) or PASSTHRU while playing. Then, on COLOR / KEY:

Chroma key — up to four colors

◆ MULTI-PICK samples a key color from the frame itself — point the laser at the green screen, pull the trigger. Each of the four color slots gets independent tolerance (tight ↔ wide), edge (sharp ↔ feather), and bleed (none ↔ clean) sliders. A pixel is removed when it matches any enabled color.

Packed alpha

Titles tagged _alpha in the SBS fisheye family carry their own transparency matte packed into the frame corners. The ALPHA cell decodes it directly — with optional override sliders for trim, choke, sharpen ↔ feather, and defringe when the source matte needs cleanup.

Rule of the suite: chroma without a color picker is forbidden. You will never be asked to type an RGB value in VR.

10 · environments

Worlds

The lobby dome is an 8K 360 photo — and it's a drop-in slot.

The ✦ WORLD chip cycles the lobby environment through the bundled worlds plus anything you put in Movies/Finally/environments — any equirect 360 image (jpg / png / webp, up to 8192×4096). Drop a skybox in the folder and it's a world. Your selection persists across sessions.

AI skybox generators, panorama apps, and 360 cameras all output exactly this format — your lobby can be anywhere.

11 · stills

Photos

Same vault, same lenses, same dome — full resolution.

Stills live in the library beside videos and project through the identical lens system: a VR180 photo wraps the half-dome, a flat photo is a panel you can place and curve. The transport row politely dims (◆ PHOTO) since speed and seek mean nothing to a photograph. On a photo, B opens the full cockpit directly — the quick strip is transport, and a still doesn't need one. Camera originals render at full sensor resolution on the dome — up to 8192px wide.

12 · playback

Loops, seeking & sound

A–B loops, and then some

Set A, then B — hard loop. Add C and Dcascade: A→B jumps to C, C→D jumps back to A, forever. Seek far past an end marker to escape; Clear wipes the marks; loops reset when you change titles.

Loop chips are a PRO tool — they live on the PRO cockpit and the PRO quick strip. If you don't see them, tap PRO in the tab row (see The Cockpit).

Seeking

Seeks land FAST by default: on the nearest keyframe, so the picture is there the instant you let go — an exact seek into a long 8K GOP silently decodes seconds of video before showing you anything. FAST also makes A–B loop jumps and resume instant. Need frame-perfect landings? Flip the lobby setting: 🎛 SETSeek landing → EXACT.

Loading is quieter after a seek, too: the brief catch-up buffer after a jump gets several seconds of grace before the REBUFFERING strip would appear. Genuine stalls still raise it immediately.

Speed

0.25× to 3×, pitch-corrected, from the PLAY page or the quick strip.

Sound

Volume rides the quick strip and the PLAY page; Grip+A mutes. Multichannel tracks that the headset can't decode in hardware (AC-3, E-AC-3, DTS) fall back to software so they play anyway. Silent MKV is a bug, not a feature.

13 · skins

Themes

Eight cockpit skins. Two of them are love letters to air traffic control.

ThemeCharacter
NightDeep club black, neon accent — the default
ClubWarmer, pinker, stage-lit
DeoFor the switchers — familiar blues
ZNY CenterMustard-on-black ERAM console
N90 TRACONSTARS radar green
Ash AirfoilHouse colors
Boiler UpOld gold and black
Hometown HeroVarsity royal blue and white

14 · devices

Quest vs Galaxy XR

Meta QuestSamsung Galaxy XR
LaunchStraight into the Club (when your vault has titles)Library first — tap ENTER THE CLUB
PassthroughMeta passthrough layerSystem blend-through — same controls, same keying
RefreshMatched to content: 24 fps → 72 Hz, 30 → 90, 60 → 120Same matching with a 72 Hz floor (the micro-OLED panel flickers at 60)
Exit labelLEAVE → QUESTLEAVE → HOME
ControllersTouch — full map incl. Y eye-swapStandard profile — every control still reachable via menu

One vault, one brain, one manual — the app is the same on both. NTSC rates (23.976 / 29.97 / 59.94) count as their round siblings for refresh matching.

15 · troubleshooting

Fix it

SymptomFix
Warped shapePLAY → AUTO to re-detect — or audition the lens row (a "slightly zoomed" fisheye is usually 180 vs 190)
Double visionPLAY → Eyes · or AUTO
Eye strainPLACE / EYES → depth position and eye height · Reset place + eyes
Ends instantlyResume was at the last frame — the next open starts clean
Silent MKVShouldn't happen — software decode covers AC-3 / DTS. Check mute and volume, then report it
NAS won't connectShare name not path · same network · VPN off on the PC · check share permissions — and use the form's Test button, it tells you exactly what's wrong
REBUFFERING bannerThe stream stalled — wait. Finally reconnects for ~45 s and resumes by itself; if the NAS is truly gone, the reason lands on the vault panel
Files missing after a scanRead the scan report — it names locked folders and counts skipped types. wmv/asf are never listed (no decoder)
A video vanished from the listsIt auto-detected as mono (a whole-word mono filename tag) — the vault footer counts it as MONO hidden. Rename the file to bring it back; titles with your saved settings are never hidden
ISO won't playRead the amber card — an AACS-encrypted image needs a MakeMKV rip first, and DVD ISOs aren't supported yet (see Blu-ray ISO)
Seek lands off a beatFAST landing snaps to keyframes for speed — lobby 🎛 SETSeek landing → EXACT for frame-perfect
File won't openFinally names the reason in plain language on the vault panel — a truncated download is the usual culprit
Missing controlsYou're in SIMPLE mode — tap PRO in the cockpit tab row, or lobby 🎛 SETMenu style

Still stuck? coldbricks@gmail.com — reports go to a person, not a queue.


appendix · the teal chapter

Theory of Operation

HELP tells you which button to press. Theory tells you why the picture looks the way it does.

Inside the headset, the HELP page hides two extra chapters: THEORY (teal) and DEEPER (green). They're engineering notes, not marketing — a guided walk from "what is pitch, roll, yaw" all the way down to why the runtime stores your head's orientation as four floats on a 3-sphere. This page keeps the map; the full articles live in the app.

SubjectThe idea
AxesPitch · roll · yaw — aviation named the triad; your headset reports it every frame
6DoFYou move six ways; a video file captured light from one point. Finally locks the projection to your head and refuses to invent rays that were never recorded — honest 6DoF
VisionTwo eyes ~63 mm apart; SBS/OU routes each half-frame to the right one. Swapped eyes = inverted depth = nausea — hence the Eyes control
MappingFlat panel vs equirect dome vs fisheye disk. When shape looks wrong, the map is wrong — not your eyes
PipelineSource → detect → decode → project → compose. No cloud hop anywhere in the chain
DEEPERUnit quaternions, coordinate frames, gimbal lock, and the linear algebra your neck already believes
“A quick word…” — the essay hiding in the THEORY chapter

Somewhere past the pipeline diagrams sits a personal essay: on loving math, on what school did to it, on why SOHCAHTOA was a door and not the house, why JPEG is trigonometry being polite, and why Euler's identity is the reason the dome doesn't jitter when you nod.

It ends like this: "Beauty is not decoration on top of rigor. Beauty is the rigor when you finally see it whole. And please… don't blame SOHCAHTOA for your hatred of math. It was an unfair story. Lol."

— Dave

Read the whole thing in the headset: HELP → THEORY → A word…

16 · the promise

Privacy & about

No account. No cloud. No analytics. Airplane mode is fine.

Your vault, your settings, your NAS credentials — all of it stays on your hardware. The network is used exactly once: to stream from sources you configure, on your network. Full policy: coldbricks.github.io/finally/privacy.

Decode: MediaCodec hardware path with decoder fallback; FFmpeg software audio where hardware can't. Sisters: Finally is built alongside ChloeVibes and ChloeVR in the same shop.

DEVELOPED AND BUILT IN NEW YORK
BY THE PERSON WHO NEEDED A BETTER APP