Maybe some of you remember the graphs I’ve been posting from time to time, or cryptic remarks about working on a data format for vision logging. This thread aims to explain these things and gauge interest in a version of these tools that everyone can use.
In case I haven’t spammed them often enough yet (), here’s the kind of plot I’m talking about; this one shows my left eye’s spherical equivalent diopters over time (and that winter fail ):
These are made from a custom log format and software I’ve written, using libraries with permissive or otherwise unproblematic licenses, so that I can share both the program and its results freely. Right now, the software is not really suitable for most people to use, because it requires some technical actions, like typing XML by hand. But if there is enough interest, I could improve its usability to a point where I could share it on this forum.
I’d like to discuss three spotlights on this topic; let’s start with the most relevant one for reusability:
Draft for a Windows UI
So, adding to the log could use some more user-friendliness. I’ve been drafting how an input form could look:
See how it already color-marks the fields that don’t have proper data. Praise mah mad WPF skillz!!!111
The “Comments or Diary” and “Advanced Items” on the bottom would be expandable, where the first allows to add any text to the entry, while the second would allow inputs for more involved types of measurement, like axial length, autorefractor or keratometer results, or acuity tests à la optometry prescriptions.
Unfolded comment/diary section:
Would any of you be interested in using something like this? I’m interested in any thoughts.
Focus Range Target Image Design
This topic has already come up in my troubleshooting-turned-tech-orgy thread: many people are lacking a standard image to look at for centimeter measurements.
In search of something better than the messy test image I currently use, I started toying with the longitudinal chromatic aberration of our eyes. Have a look at this:
If you’re being a good kitteh and using some form of computer glasses / Differentials, you should see some curious things happening with the focus and perceived distance here. The upper two lines should appear crisper and closer, the lower two very fuzzy and further away, and green somewhere in the middle. This is because different wavelengths aren’t refracted the same way, and so color plays into the perceived focus distance.
While I’m not yet using this for measurements, it could be a lead how to standardize focus range measurements. Quite possibly, the right computer glasses and distance get the red contrasts at the top into focus, but keep green just a tiny bit fuzzy. And the blue contrast should look bad. Maybe blue getting crisp is how the eye detects hyperopic defocus? Or the green being crisper than the red? Anyway, the point is, these things could be useful to determine the right focus challenge on a screen, and might help making these measurements more comparable between people.
If something comes out of this and the Windows UI, then I could put this kind of test image to the right of the focus range input form, with lots of white around it to keep overall screen brightness high. Then you’d measure to the screen and have the form to log the results right there. HOW PRACTICAL
I’m considering to add something like astigmatism wheels in magenta and cyan (inverse green and red) around the above color test image, to give an indication of directional blur / uncorrected astigmatism in the relevant color range. There’s enough space anyway, I guess…?
As with everything, I’d appreciate any ideas and comments!
Creating a Format for Sharing and Analyzing Vision Logs
This is where things get a bit more technical, but it might be the most important topic if we want to advance the state of knowledge about myopia.
Because right now, the data situation on vision improvement is a mess.
- Everyone does their own thing.
- Most people just write text.
- Almost nothing can be easily compared or quantitatively analyzed.
This is holding us back, because we can’t even ask the simplest questions to this kind of data. Try answering some quantitative questions:
- Does the optimal undercorrection depend on total diopters?
- What is the average effect of a dark winter?
- How much does improvement fluctuate randomly?
- Are there diminishing returns?
- Are contact lenses better than glasses?
- What difference does age make?
- … and so on, and so forth, etc.
While Jake is making an admirable effort to create standards within BackTo2020, this is a small group in a walled garden. By and large, everyone is starved for usable data. Better ways to create and share it would not only help the community at large, but also be of personal interest to anyone working on their eyesight, as personal logs are very useful for improving habits, choosing glasses, quantifying progress, and more.
This places us in a rare position where we could create a standard that might spread in the future of vision improvement, allowing us to share results and run data analyses that give us more reliable answers to the big questions. This is why I started on this format pretty much the moment I began systematic logging about a year ago. Here’s an excerpt from my log:
The tech-savvy will quickly recognize XML, the markup language that is also behind websites and various other technologies (like the Windows UI layout from before). I won’t go into the details of why I think XML is suitable here, but if someone wants to discuss this, please ask and I’ll give deatils. For this post, it is more important to talk about the kind of content that the format should support.
Agreeing on Format Contents
The thing with data formats is that once they are out in the world, they are hard to expand and practically impossible to change. Make an error in its small beginnings, and people may be cursing about it decades down the line. This is why I’d like to ask anyone who survived this far into this post () to chime in on what a vision log absolutely needs, what might go wrong with the definitions we make, and what problem cases I might have overlooked.
The Windows UI above should already give a rough idea how the format works. Here’s more precisely what the current draft entails:
- Every person’s history is organized as a list of entries, which must record the local date and time and may record a location.
- Entries can contain any number of comments – which are free text – or measurements.
- Measurements always concern a single eye. The following kinds are currently supported:
- Focus range measurements record centimeters to blur, optionally a text to identify the target looked at, and optionally the spherical and cylindrical power of any lens worn while measuring.
- Automated refractive measurements record machine estimates for an eye (Sph, Cyl, Axis), as well as the name of the machine (that is technically optional, though I’m not sure if that’s a good idea in typical usage).
- Axial length measurements contain the name of the device and a list of samples that estimate the eye’s length.
- Acuity tests contain the information about the lens worn / prescribed for good distance vision, and optionally a LogMAR value of how well the eye sees with them. I think in the future, an optional Snellen value could be useful to add here. And maybe a parameter to denote self-measured results, for the living room Snellen?
If all of this becomes a thing, the format will be formally specified via an XSD schema, including annotations that hopefully make it rigorously defined. For the XML-savvy, here’s the current XSD draft (Pastebin, expires in six months).
Something I’m uncertain about are binocular measurements (using both eyes at the same time). In the current draft, this isn’t supported, since refraction physically exists on a per-eye basis and the brain magic of binocular vision just obscures errors. But given how many people track this in one way or another, maybe it should be included after all?
Bottom line on the format, the point is to make something that can be used in various contexts of tracking eyesight, promote its usage, and then hopefully get more people to share logs to run data analysis on. If enough people help out, the resulting information could be a very powerful resource to better understand myopia.
Damn, my threads get longer every time.
If there’s interest in this stuff, I should be able to get a rudimentary release together next month. So, a program that can create a log in the new format, add entries with focus range measurements and text to it, and make graphs for each eye, as well as a moving average if enough data is entered. Does that sound useful?
Okay, I’ll stop now. Hope I didn’t scare anyone away with this monstrosity of a post. Any opinions appreciated! It would be kinda sad if I made a user interface that’s only used by myself in the end.
If I respond more slowly than usual, that’s because I’ll be on two bike tours shortly after posting this: one to a wedding and then another over the Alps to Venice. Outdoor stimulus!