A speed reading tool implementing Rapid Serial Visual Presentation (RSVP) with the Optimal Recognition Point (ORP) algorithm.
Read faster by keeping your eyes still. The red letter marks the optimal recognition point - your eye stays fixed while words flow past at up to 1000 WPM.
Traditional reading involves eye movements called saccades - rapid jumps between fixation points. These movements:
- Consume time (200-300ms per saccade)
- Cause regression (re-reading previous words)
- Limit reading speed to ~250 WPM for most people
RSVP eliminates saccades by presenting words sequentially at a fixed focal point, allowing the brain to process text without eye movement overhead.
Research shows that the eye naturally focuses on a specific point within each word - the Optimal Recognition Point. This is typically:
- Slightly left of center for most words
- The point where word recognition is fastest
This application calculates the ORP (pivot letter) based on word length:
| Word Length | Pivot Index | Example |
|---|---|---|
| 1 character | 0 | a |
| 2-5 characters | 1 | speed |
| 6-9 characters | 2 | reading |
| 10-13 characters | 3 | presentation |
| >13 characters | 4 | comprehension |
The pivot letter is displayed in red and remains fixed at screen center. This anchors the eye, preventing movement while reading.
- Adjustable WPM: 60-1000 words per minute
- Smart pausing: Longer pauses after punctuation and long words
- Sentence pause control: Toggle between Normal (1.5x) and Long (2.0x) pauses at sentence ends
- Progress tracking: Clickable progress bar for seeking
- Multiple formats: Support for
.txt,.pdf, and.docxfiles - Keyboard controls: Full keyboard navigation
Download the latest DMG from the Releases page:
- Open
SpeedReader-X.X.X-macOS.dmg - Drag SpeedReader to your Applications folder
- Launch from Applications or Spotlight
To build the standalone macOS application yourself:
git clone https://github.com/mthiel74/SpeedReading.git
cd SpeedReading
./build_macos.shThis creates:
dist/SpeedReader.app- The application bundleSpeedReader-1.0.0-macOS.dmg- The installer
Requirements: Python 3.8+, pip
-
Clone the repository:
git clone https://github.com/mthiel74/SpeedReading.git cd SpeedReading -
Install dependencies:
pip install pypdf python-docx
Note:
tkintercomes pre-installed with most Python distributions. -
Run the application:
python speed_reader.py
Simply open index.html in any modern web browser. No installation required.
For PDF support in the web version, the page loads PDF.js from a CDN (requires internet connection).
Open gutenberg.html in any modern web browser to access 70,000+ free books from Project Gutenberg.
Download full video demo (MP4)
70,000+ free books at your fingertips. Browse Project Gutenberg's catalog, track your reading progress, and speed read classics like "Pride and Prejudice" or "Moby Dick" at 300+ WPM.
Features:
- Search and browse the Project Gutenberg catalog
- Filter by category: Fiction, Science, History, Philosophy
- Personal library with automatic progress tracking
- Resume reading where you left off
- Smart text processing (skips Gutenberg headers, jumps to Chapter 1)
- Text browser - view full text and click to jump anywhere
- Search within books
- Bookmarks - save your favorite passages
- Skip forward/backward 100 words
Additional Keyboard Shortcuts (Gutenberg version):
| Key | Action |
|---|---|
B |
Browse full text |
M |
Add bookmark |
F |
Toggle focus mode |
Page Up |
Skip back 100 words |
Page Down |
Skip forward 100 words |
| Key | Action |
|---|---|
Space |
Play/Pause |
← |
Previous word |
→ |
Next word |
↑ |
Increase WPM (+50) |
↓ |
Decrease WPM (-50) |
R |
Reset to beginning |
Ctrl+O |
Open file (Python only) |
- Start slow: Begin at 200-300 WPM and gradually increase
- Focus on the red letter: Trust your peripheral vision for the rest
- Don't subvocalize: Avoid "speaking" words in your head
- Practice regularly: Speed reading is a skill that improves with practice
- Use appropriate material: Start with familiar, simple texts
SpeedReading/
├── speed_reader.py # Python/Tkinter application
├── index.html # Web application (single file)
├── gutenberg.html # Gutenberg book reader (single file)
├── build_macos.sh # macOS build script
├── create_icon.py # Icon generator
├── SpeedReader.spec # PyInstaller configuration
└── README.md # This documentation
Base delay per word: 60 / WPM seconds
Modifiers:
- Punctuation (
.,!,?,;): 1.5x delay (Normal) or 2.0x delay (Long) - configurable - Long words (>10 characters): 1.2x delay
These modifiers stack. For example, a long word ending with punctuation gets 1.5 × 1.2 = 1.8x (Normal) or 2.0 × 1.2 = 2.4x (Long) the base delay.
- Background: #000000 (black)
- Text: #FFFFFF (white)
- Pivot letter: #FF0000 (red)
- Font: Courier New (monospace for consistent character width)
The web application works in all modern browsers:
- Chrome 60+
- Firefox 55+
- Safari 11+
- Edge 79+
The Gutenberg Speed Reader (gutenberg.html) accesses books from Project Gutenberg, a volunteer effort to digitize and archive cultural works.
- Public Domain: Most Project Gutenberg eBooks are in the public domain in the United States. This means you can freely read, copy, and redistribute them.
- International Users: Copyright status varies by country. Users outside the US should verify that works are public domain in their jurisdiction before downloading.
- Copyrighted Works: Some books in the collection remain under copyright and are clearly marked in their headers. These require permission from the copyright holder.
This application uses the Gutendex API (a third-party JSON API for Project Gutenberg metadata) rather than directly accessing gutenberg.org. This complies with Project Gutenberg's request that applications avoid heavy direct traffic to their servers.
"Project Gutenberg" is a registered trademark. This application is an independent project and is not affiliated with or endorsed by Project Gutenberg. The trademark is used here solely to accurately describe the source of the book content.
- Book content provided by Project Gutenberg
- Book metadata API by Gutendex
- CORS proxies used for book text retrieval: corsproxy.io, allorigins.win
For more information, see:
MIT License - feel free to use, modify, and distribute.
- Forster, K. I. (1970). Visual perception of rapidly presented word sequences of varying complexity. Perception & Psychophysics.
- Rayner, K. (1998). Eye movements in reading and information processing: 20 years of research. Psychological Bulletin.
- Spritz Inc. - Pioneers of modern ORP-based speed reading technology.

