Comment l'IA qui lit le cerveau inspire mon entraînement visuel en VR avec Amblyotube
J’ai lu l’article du MIT Technology Review sur ce modèle d’IA capable de reconstruire l’image que quelqu’un regarde rien qu’à partir de ses signaux cérébraux. En tant que développeur VR, ma première réaction a été : « Et si on pouvait brancher ce genre de décodage neural directement dans un entraînement dichoptique ? » L’idée de fermer la boucle entre ce que le cerveau « voit » et ce que l’affichage présente aux deux yeux m’a tout de suite rappelé un projet sur lequel je travaille depuis quelques mois : Amblyotube, développé par Seven Sportz pour Meta Quest.
La première fois que j’ai ouvert le repo Unity, j’ai été frappé par la simplicité de l’architecture : deux caméras distinctes, chacune branchée sur son propre Render Texture, puis un shader de composition qui applique un Dominant Eye Shader (occlusion numérique) sur l’œil fort. Le shader expose des propriétés — blur, contrast, brightness, opacity — qu’on peut animer en temps réel via un script EyeShaderController. C’est là que j’ai vu le premier levier pour injecter une métrique externe : si l’IA détecte que l’utilisateur fixe une zone précise, on peut moduler l’opacité du patch numérique pour forcer l’œil paresseux à prendre le relais.
Le cœur de l’exercice, c’est le Lazy Eye Sharpener (MFBF). Le pipeline utilise un modèle de détection de personnes (YOLO‑v8 léger, quantifié pour Quest) qui tourne sur le CPU / GPU du casque. Chaque frame, le masque de détection est passé au fragment shader de l’œil faible où un filtre de netteté (un kernel 3 × 3 de type unsharp‑mask) est appliqué uniquement sur les pixels masqués. J’ai ajouté un petit profilateur (Profiler.BeginSample("MFBF_Sharpen")) pour m’assurer que le coût reste sous les 2 ms par frame, ce qui tient largement dans le budget 72 fps du Quest 2.
Autre brique intéressante : le Flicker Stimulation. Le shader ajoute une modulation sinusoïdale de l’intensité (fréquence configurable, par défaut 4 Hz) sur les zones détectées. Le code ressemble à :
float flicker = sin(_Time.y * _FlickerFreq * 6.28318) * 0.5 + 0.5;
col.rgb *= lerp(1.0, _FlickerStrength, flicker * mask);
C’est volontairement léger pour ne pas provoquer de fatigue, mais suffisant pour déclencher la réponse magnéto‑encéphalographique que l’article du MIT mentionne.
Le Magenta Focus Cue est un autre point d’accroche. Un petit cercle magenta (couleur rare dans les vidéos YouTube) suit le regard de l’œil paresseux, pendant qu’un cercle gris neutre suit l’œil dominant. Dans le script FusionCueManager, je synchronise la position du curseur avec les données de XRInputSubsystem (eye‑tracking si disponible, sinon head‑pose). Cette cueur force le cerveau à fusionner les deux flux, un principe de neuroplasticité bien documenté.
Les Visual Accents récents (Highlight jaune‑vert, Outline rouge, Pulse « respiration » à 0,5 Hz) sont implémentés comme des passes post‑process additionnelles. J’ai dû faire un compromis : activer les deux accents simultanément ajoutait ~1 ms, alors j’ai exposé un toggle UseBothAccents dans l’inspecteur pour laisser l’utilisateur choisir selon la puissance de son casque.
Côté utilisation, le guide recommande des sessions de 30 à 40 minutes, jamais plus d’une heure, et impose 13 ans minimum. J’ai respecté ça à la lettre : ma première semaine, je lançais l’appli après le déjeuner, 35 minutes, en regardant une chaîne de vulgarisation scientifique. Au début, le flou sur l’œil dominant me gênait, mais le Dominant Eye Shader à 30 % d’opacité a vite rendu l’exercice supportable. Le MFBF a rendu les visages nets pour mon œil faible, et le Flicker a donné une sensation de « pulsation » qui maintenait mon attention sans m’épuiser.
Après deux semaines, j’ai remarqué que la profondeur de champ dans les scènes VR (les menus du Quest, les jeux de tir) me paraissait plus naturelle. Ce n’est pas une cure médicale — le disclaimer le répète — mais une pratique de coordination visuelle qui complète le suivi orthoptique. Le fait que tout tourne sur du Unity standard, avec des shaders HLSL et un peu de C#, veut dire que n’importe quel développeur peut fork le projet, brancher son propre modèle de détection ou même y greffer un flux EEG si l’API du casque le permet un jour.
Ce qui me fascine, c’est la convergence : l’IA du MIT lit le cerveau, Amblyotube écrit deux images différentes pour les deux yeux, et le développeur que je suis se retrouve au milieu, à écrire le pont entre les deux. Si vous cherchez un terrain de jeu concret pour explorer la vision dichoptique, le rendering multi‑eye, ou simplement voir comment un projet open‑source gère la performance sur Quest, plongez dans le code d’Amblyotube. Vous y trouverez une base saine, documentée, et suffisamment modulaire pour y greffer vos propres idées de neuro‑feedback.
Essayez l’application sur Meta Quest : https://www.meta.com/en-gb/experiences/amblyotube/25906906972338493/
Top comments (0)