Freiburg Vision Test  ‘FrACT’
by Prof. Michael Bach – FAQ


I found a bug

Congratulations! Don’t hesitate to alert me: Will fix ASAP.

Why can acuity results be better than “→max possible decimal acuity” (under blue ruler)?

The best possible acuity is based on “smallest stroke = smallest landolt gap” being 1 pixel. However, antialiasing allows to present fractional pixels, and the smallest possible element size can be set at:
Settings>Acuity>min. stroke [px]. The default value here is 0.5 px. Since max possible decimal acuity is based on 1 pixel (thus demanding good test properties, safe side), the result can be a better value. The note on display resolution… in the manual provides more detail.

How can I show FrACT₁₀ on a second screen?

I had hoped to have a setting for this. However, after extensive experiments with the Multi-Screen Window Placement API I conclude that it is not possible to programmatically move to 2nd screen without user interaction. So use these simple solutions:

When the window is on the second screen, you can use the Fullscr. button to go, well, fullscreen. Also note: Need to repeat size calibration (“plastic card / blue ruler”) on the 2nd screen – its pixel size probably is different.

How do I invert the optotype = negative contrast = reverse polarity?

Enter a negative value for the Weber contrast in Settings>Acuity>Optotype contrast, e.g. with the max– button.

Can I use FrACT₁₀ for near / reading acuity?

Yes, but you need a visual display unit (VDU) with really tiny pixels. In the Manual there is a note on display resolution… on this, with examples of suitable VDUs.

What is the worst possible acuity that FrACT₁₀ can assess?

The technical limitations are screen size and distance. Going close and using a large screen can bring you into ultra-low vision range. Then the problem arises if the observer has sufficient vision. Here is a discussion on this.

Can I use mirrors to extend testing distance?

Absolutely, use Settings>Display Transformation to compensate for the image inversion. [Need to use surface mirrors to avoid double images.]

What is the spatial frequency of the optotype used in the contrast test?

This was a real question… and the answer is difficult. First: it depends on the size (Diameter), defaulf 60’. Second: an optotype (be it letter, Landolt C, tumbling E…) does not have a spatial frequency, rather it is a mixture (I’ve calculated the spectrum but never published it).

I see only a blank screen (or a thin star) when I start the test

I see two possible scenarios:

If nothing rings a bell, use Settings>Set all to defaults: Now you should something, and you can proceed to apply your preferences in Settings.

What’s the difference between FrACT₁₀ and “classical” FrACT?

Short version: Nothing but implementation details.

Long version: Development of FrACT goes back to 1985; the dynamics of computer technology and specifically of web browsers enabled to go more and more on-line, culminating in FrACT₁₀ around 2020. Now FrACT₁₀ has every feature of the “classic” FrACT, and more. The basic algorithm (Best PEST) uses practically the same code base as three decades ago. Since FrACT₁₀ as a webApp can now be installed for off-line use there is no reason to use “classic” FrACT.
Any new development (e.g. plastic card calibration, or noise embedding) is only available in FrACT₁₀.

I have a research idea which needs FrACT₁₀ modification

Congratulations! Contact me: and we’ll see. Has worked before ;)

How do I find out about FrACT₁₀’s version?

The version number will only increment when I make major changes or add a feature. In contrast, the release date is updated whenever anything changes. Find them both at the main screen, top left; or use the About button – there not only FrACT₁₀’s version date is given but also the versions of embedded frameworks. The export format has its own version scheme, the exported data set starts with this version number; this allows your analysis software to easily deal with changes here.

Please mention the version number when citing FrACT. Thank you!

I have a question not covered here
  1. Take a look at the Manual 😇
  2. If that does not answer your question, don’t hesitate to email me: