Myopia, Exotropia, and Code: Developing a Vision Training Tool for Near-Sighted Professionals
Source: Dev.to
Target audience: people whose work is mostly near‑sight (developers, etc.), with myopia or other eye‑focusing‑related problems, or those willing to keep their vision sharp regardless of near‑sight work strain.
Disclaimer: The following text does not make any medical claims; it only assumes the existing possibility of improving vision with eye‑muscle exercises.
Introduction
I am myopic (‑4.5 d). In 2023 I started doing simple eye exercises for 5–10 minutes before falling asleep. Since then my vision improved to some degree, which I considered worth sharing, so I created a YouTube channel in Russian to document my experience.
By that time, regular exercises had given me pretty good eye‑muscle sensitivity: I could feel which eye muscles contract and relax, having learned the extra‑ocular muscle anatomy in detail. This allowed me to develop my own precise view of what causes myopia. It is a logical continuation of the Bates method.
Regardless of the mainstream consensus that the Bates method is false, its main idea—that coarse focusing is done by extra‑ocular muscles and fine focusing by the eye lens—helped many people who shared their experiences with me to get rid of myopia and other eye‑focusing problems. I even read a 2018 article in an ophthalmological journal claiming that the Bates theory is not entirely without merit and that further studies should be conducted on the matter (unfortunately, I cannot find it now).
My experience suggested that myopia happens due to shortening of the eye rectus muscles, especially the medial ones (internal, near the nose), which converge the eyes for near focusing.
In July 2025 I began stereo reading—reading text in two columns in parallel view—where the eyes diverge to the point of exotropia, a state in which the eyes diverge beyond parallel alignment. I also found that my myopic audience has a very poor ability to diverge and achieve any significant exotropia, whereas people without myopia have strong exotropia ability. Since then, exotropia and stereo reading have become my main tools for training my eyes. Reading alone is used in many vision‑improvement systems, including Bates’.
Progress
- June 2025 – I could read (non‑stereo mode, regular text) 2 mm lowercase letters from a 33 cm distance.
- December 31 2025 – I could read 7 mm lowercase letters from a 3 m distance.
That is a 2.6× improvement in angular letter size, which also corresponded to a significant improvement in my everyday vision. Since then I have been convinced that eye‑muscle exercises can be a working tool to mitigate eye‑focusing problems such as myopia.
Stereo Reader web app
In June 2025 I started the Stereo Reader web app as my tool for stereo reading. Vue / TypeScript / PWA were selected for the implementation. What seemed like an easy project soon became a challenge.
Screenshots
After sharing the app with my eye‑training audience, it became clear that support for many e‑book formats was required, including those with large amounts of text. Moreover, when adjusting reading settings such as font size, gap between text columns, and the span of the reading area, the currently visible text on the screen should not be lost.
Layout engine
I developed a simple semantic system where any text‑document format is split into paragraphs (called chunks for brevity), each with its own font style. Lines are calculated dynamically character by character based on the text‑column width.
Because I had spent a lot of time benchmarking JavaScript and avoiding any extra string/array allocation (see my benchmark posts and series on avoiding allocations), the layout calculation is fairly fast. However, processing a huge novel like Asimov’s Forward the Foundation (≈ 140 k words) still takes 300–400 ms on mid‑range mobile devices (tested on Snapdragon 720G). The issue is that layout recalculation occurs on any setting change that affects column width. In any case, the UX is acceptable.
Virtual scrolling
With the layout available, I implemented virtual scrolling while maintaining the full text container’s real height. This makes the text appear as if it were loaded into a single DOM element with native scrolling. Further improvements could include:
- Rethinking how users interact with partial scrolling.
- Using Web Workers to process text in parallel.
Additional features
- Stereo image viewing.
- Mini‑games (e.g., a moving ball to train exotropia in motion).
Join the journey
This project has become my ongoing lifelong journey, and I welcome anyone to join.
- Website: (includes documentation).
- Try the app: .
- YouTube channel: .
- Telegram channel: .
Feel free to ask any questions, share your experiences, or contribute to the project!

