A speed reading application designed to help humans read faster using RSVP (Rapid Serial Visual Presentation) with ORP (Optimal Recognition Point) highlighting.
Qwast Reader is a desktop application that presents text one word at a time at high speeds, allowing readers to absorb content much faster than traditional reading methods. By eliminating eye movement (saccades) and reducing subvocalization, users can achieve reading speeds of up to 1500+ words per minute with practice.
RSVP is a technique developed in the 1970s by cognitive psychologists studying visual perception and reading. Instead of moving your eyes across a page, words are presented one at a time in a fixed location, eliminating the time lost to eye movements (saccades) which typically account for 10-20% of reading time.
Key researchers and contributors:
- Mary C. Potter (MIT) - Pioneering research on RSVP and sentence comprehension in the 1980s
- Kenneth I. Forster - Early work on rapid word recognition
- Jonathan Grainger - Research on letter position coding and word recognition
The Optimal Recognition Point is the letter within a word where the eye naturally focuses for fastest recognition. Research shows this is typically:
- For odd-length words: The middle letter
- For even-length words: Slightly left of center, preferring consonants over vowels
This technique was popularized by applications like Spritz (founded by Frank Waldman and Maik Maurer, 2013) which demonstrated that positioning words so the ORP aligns with a fixed focal point significantly improves reading speed and comprehension.
Research foundation:
- Keith Rayner (University of Massachusetts) - Decades of eye-tracking research on reading
- O'Regan & Lévy-Schoen (1987) - "Optimal Landing Position" hypothesis in word recognition
- 📖 RSVP Word Display - Single word presentation with configurable speed (60-10,000 WPM)
- 🎯 ORP Highlighting - Center letter highlighted with color options (Red, Orange, Yellow, Green)
- 📑 Chunked File Loading - Memory-efficient loading of large text files (similar to how video games load world chunks)
- 🔍 Text Preview - Scrollable preview of loaded text with clickable word navigation
- ⚡ Corner Text Display - Optional first/last 3 letters shown in corners for peripheral vision training
- 🎨 Customizable Font Size - Adjustable center word size for comfort
- 🖱️ Interactive Controls - Play, pause, previous, next, and progress tracking
- CMake 3.16+
- C++17 compatible compiler
- Git
# Clone the repository
git clone https://github.com/yourusername/qwast_reader.git
cd qwast_reader
# Initialize submodules (SDL3, ImGui, stb)
git submodule update --init --recursive
# Or clone dependencies manually:
mkdir -p thirdparty
cd thirdparty
git clone https://github.com/libsdl-org/SDL.git
git clone https://github.com/ocornut/imgui.git
git clone https://github.com/nothings/stb.git
cd ..
# Build
mkdir build && cd build
cmake ..
make -j$(nproc)
# Run
./qwast_reader- Open a text file - Click "Open File" and browse to any .txt file
- Adjust speed - Use the WPM slider (start low, around 200-300 WPM)
- Click Play - Words will display one at a time in the center
- Click any word in the preview to jump to that position
- Customize - Adjust highlight color, font size, and corner text options
- Start at your normal reading speed and gradually increase
- Focus on the highlighted center letter
- Don't subvocalize (say words in your head)
- Take breaks every 15-20 minutes
- Practice regularly for best results
| Library | Purpose | License |
|---|---|---|
| SDL3 | Window management, rendering | zlib |
| Dear ImGui | User interface | MIT |
| stb | Single-file libraries | MIT/Public Domain |
qwast_reader/
├── src/
│ ├── main.cpp # Application entry, UI, rendering
│ ├── chunked_reader.h # Chunked text loading header
│ └── chunked_reader.cpp # Memory-efficient file reading
├── thirdparty/
│ ├── SDL/ # SDL3 library
│ ├── imgui/ # Dear ImGui library
│ └── stb/ # stb single-file libraries
├── CMakeLists.txt # Build configuration
└── README.md # This file
- Potter, M. C. (1984). "Rapid Serial Visual Presentation (RSVP): A Method for Studying Language Processing"
- Rayner, K. (1998). "Eye Movements in Reading and Information Processing: 20 Years of Research"
- O'Regan, J.K. & Lévy-Schoen, A. (1987). "Eye-movement strategy and tactics in word recognition and reading"
- Maurer, M. & Waldman, F. (2013). Spritz - https://spritz.com
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright © 2026 Quaylyn Rimer
Special thanks to:
- The researchers who pioneered RSVP and eye-tracking studies in reading
- The Spritz team for popularizing ORP-based speed reading
- The open-source communities behind SDL, ImGui, and stb