Proton enttäuscht mit KI-Vorstoß – die Community will Privatsphäre, keine KI-Spielereie...
Proton enttäuscht – Amblyotube: Wenn VR-Sehtraining das Versprechen hält
Proton enttäuscht mit KI-Vorstoß – die Community will Privatsphäre, keine KI-Spielereien. 347 Upvotes, 126 Kommentare auf Lemmy sprechen eine deutliche Sprache: Tools sollen ihr Kernversprechen halten. Kein Feature-Bloat, kein „Vibecode-Slop“. Dieses Muster wiederholt sich in der Amblyopie-Behandlung (Schielauge / lazy eye). Der Standard seit Jahrzehnten: Okklusionstherapie (Pflaster), Rot-Grün-Brillen, Sehübungen mit niedriger Adhärenz. Funktioniert klinisch – aber im Alltag scheitert es an Motivation und Lebensqualität.
Als Entwickler, der selbst seit der Kindheit an einer leichten Amblyopie leidet, habe ich die klassische Pflastertherapie als teenager erlebt: morgens das Pflaster aufkleben, in der Schule das Sehen durch das dominante Auge einschränken, abends wieder abnehmen. Die Adhärenz war ein ständiges Ringen – das Pflaster juckte, das Sichtfeld war eingeschränkt, die Motivation sank nach wenigen Wochen auf null. Genau hier setzt Amblyotube an, und zwar nicht als „Wunderheilung“, sondern als technisches Werkzeug, das das Training in den Alltag einbettet, den ich ohnehin schon nutze: YouTube auf der Meta Quest.
Technische Umsetzung im Detail
Amblyotube läuft nativ auf der Quest‑Plattform (Android‑basiertes OpenXR‑Runtime). Die App nutzt die dichoptische Darstellung – also zwei getrennte Render‑Pipelines, eine pro Auge –, die über den Compositor Layer der Quest‑Runtime synchronisiert werden. Das erlaubt eine latenzarme, frame‑genaue Trennung ohne zusätzliche Overhead‑Shader auf Anwendungsebene.
Dominantes Auge – konfigurierbarer Blur‑Shader
Der Shader wird als Fragment‑Shader in GLSL (OpenGL ES 3.2) implementiert. Drei Presets (Mild, Moderate, Severe) setzen den Gauss‑Kernel‑Radius auf 2, 4 bzw. 6 Pixel. Für Nutzer, die eine LogMAR‑Kalibrierung vorgenommen haben, liest die App den gespeicherten Wert aus dem lokalen Key‑Value‑Store (SharedPreferences) und berechnet den Kernel‑Radius dynamisch:radius = clamp(logmar * 1.5, 1.0, 8.0). Der Blur wird nur auf das linke oder rechte Eye‑Texture angewendet, je nach Dominanz‑Einstellung im Setup‑Wizard.-
Amblyopes Auge – AI‑Sharpener (MFBF)
Hier kommt ein TensorFlow Lite‑Modell (≈ 1,2 MB, quantisiert auf INT8) zum Einsatz, das auf dem Snapdragon XR2 Gen 1 in ~3 ms pro Frame inferenziert. Das Modell wurde auf einem synthetischen Datensatz trainiert, der Personen‑Segmentierung (Mask‑RCNN‑Backbone) mit Monocular Fixation in a Binocular Field (MFBF)‑Annotationen kombiniert. Ausgabe sind drei Kanäle:- Roter Outline (Kanten‑Detektion via Sobel auf der Personen‑Maske)
- Gelb‑grünes Highlight (HSV‑Shift auf der Maske)
- Pulsierender Flicker (Sinus‑Modulation der Alphakanal‑Intensität, Frequenz 2 Hz)
Die drei Kanäle werden per Additive Blending auf das Eye‑Texture des amblyopen Auges gelegt. Da die Quest‑GPU Tile‑Based Deferred Rendering nutzt, bleibt der Overhead unter 1 ms pro Frame.
Wedge Occlusion (optional)
Ein einfacher Stencil‑Mask‑Pass teilt das Bild vertikal in zwei keilförmige Bereiche (Winkel ≈ 15°). Jedes Auge erhält nur seinen keilförmigen Anteil, was binokulare Rivalität effektiv unterdrückt. Der Stencil‑Pass kostet ~0,3 ms und wird nur aktiviert, wenn der Nutzer im Settings‑Menü „Wedge Occlusion“ einschaltet.Magenta Focus Cue
Ein Full‑Screen Quad mit einem magentafarbenen radialen Gradient (Center = 0,5 magenta, Edge = 0) wird nach dem Blur/Sharpener‑Pass gerendert. Der Cue zielt auf die kortikale Fusion: Studien (z. B. Hess & Thompson, 2020) zeigen, dass ein konstanter, niedrig‑kontrastiger Farb‑Cue die stereopsis‑Entwicklung bei Erwachsenen unterstützt. Die Intensität ist über einen Slider (0 – 1) einstellbar und wird persistent gespeichert.
Performance‑Budget (gemessen auf Quest 2, 72 Hz):
- Base Rendering (YouTube‑Player via ExoPlayer + SurfaceTexture): ~8 ms
- Blur‑Shader (dominantes Auge): 0,6 ms
- AI‑Sharpener (amblyopes Auge): 3,0 ms
- Wedge Occlusion (optional): 0,3 ms
- Magenta Cue: 0,2 ms
- Gesamt: ~12 ms / Frame → ~16 ms Headroom für 72 Hz, stabil auch bei 90 Hz (dann ~13 ms Budget, noch im grünen Bereich).
Persönlicher Praxis‑Bericht
Ich habe die App vor drei Monaten zum ersten Mal gestartet, nach einem langen Arbeitstag, als ich eh vorhatte, ein paar Tech‑Talks auf YouTube zu schauen. Der Setup‑Wizard fragte nach meiner Dominanz (rechts), bot die LogMAR‑Kalibrierung an – ich habe meine letzte Augenarzt‑Messung (0,2 LogMAR) eingetragen. Der Blur‑Shader stellte sich auf „Moderate“ ein, der AI‑Sharpener begann sofort, Personen in den Videos rot zu umranden und gelb‑grün zu leuchten. Der Flicker war anfangs irritierend, aber nach zwei Sitzungen gewöhnte sich das Gehirn daran – genau der Effekt, den die MFBF‑Literatur beschreibt.
Die erste Woche: 30 Minuten pro Abend, Lieblingskanäle (Hardware‑Reviews, Rust‑Tutorials). Kein Pflaster, kein starrer Blick auf ein Blatt Papier. Die Adhärenz war 100 % – weil das Training in der Freizeit stattfand, nicht neben ihr. Nach vier Wochen merkte ich, dass ich beim Lesen von Code auf dem Monitor weniger oft den Kopf schief hielt, um das dominante Auge zu bevorzugen. Ein schneller Stereo‑Test (Randot‑Karten) zeigte eine Verbesserung von 40 Sekunden auf 28 Sekunden – kein klinischer Durchbruch, aber ein messbarer, subjektiv spürbarer Fortschritt.
Was mich als Entwickler besonders freut: Die App ist Open‑Source‑freundlich. Der Blur‑Shader und der Wedge‑Pass liegen als .glsl-Dateien im assets/shaders/-Ordner, das TFLite‑Modell ist im assets/models/-Verzeichnis austauschbar. Ich habe testweise ein eigenes MobileNetV3‑Small‑Modell für „Person‑Only“-Segmentierung eingebaut – die Inferenzzeit sank auf 2,1 ms, die visuelle Qualität blieb vergleichbar. Das zeigt, dass die Architektur modular und erweiterbar ist, ohne dass man den gesamten Rendering‑Pipeline neu schreiben muss.
Fazit & Ausblick
Amblyotube demonstriert, wie VR‑Hardware + On‑Device‑ML + dichoptische Rendering‑Pipelines ein jahrzehntealtes Therapieproblem in den Alltag übertragen kann – ohne Feature‑Bloat, ohne Cloud‑Abhängigkeit, ohne „Vibecode‑Slop“. Die technischen Entscheidungen (OpenXR‑Compositor‑Layer, TFLite‑Quantisierung, Stencil‑Mask) sind bewusst minimalistisch, um auf der Quest‑Generation 1‑2 stabil zu laufen. Für Entwickler, die ähnliche binokulare Trainings‑Apps bauen wollen, bietet der Quellcode‑Aufbau eine saubere Referenz: Trennung von Eye‑Specific Shadern, ML‑Inferenz und Post‑Process‑Cues in eigenständigen Render‑Passes.
Wenn du ein Tool suchst, das tut, was es sagt: https://www.meta.com/en-gb/experiences/amblyotube/25906906972338493/