Skip to content

mthiel74/SpeedReading

Repository files navigation

Speed Reader - RSVP Application

A speed reading tool implementing Rapid Serial Visual Presentation (RSVP) with the Optimal Recognition Point (ORP) algorithm.

Speed Reader Demo

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.

The Science Behind It

RSVP (Rapid Serial Visual Presentation)

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.

ORP (Optimal Recognition Point)

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.

Features

  • 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 .docx files
  • Keyboard controls: Full keyboard navigation

Installation

macOS Application (Recommended)

Download the latest DMG from the Releases page:

  1. Open SpeedReader-X.X.X-macOS.dmg
  2. Drag SpeedReader to your Applications folder
  3. Launch from Applications or Spotlight

Build macOS App from Source

To build the standalone macOS application yourself:

git clone https://github.com/mthiel74/SpeedReading.git
cd SpeedReading
./build_macos.sh

This creates:

  • dist/SpeedReader.app - The application bundle
  • SpeedReader-1.0.0-macOS.dmg - The installer

Requirements: Python 3.8+, pip

Python Script (Cross-platform)

  1. Clone the repository:

    git clone https://github.com/mthiel74/SpeedReading.git
    cd SpeedReading
  2. Install dependencies:

    pip install pypdf python-docx

    Note: tkinter comes pre-installed with most Python distributions.

  3. Run the application:

    python speed_reader.py

Web Application

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).

Gutenberg Speed Reader

Open gutenberg.html in any modern web browser to access 70,000+ free books from Project Gutenberg.

Gutenberg Speed Reader Demo

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

Usage

Keyboard Shortcuts

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)

Tips for Effective Speed Reading

  1. Start slow: Begin at 200-300 WPM and gradually increase
  2. Focus on the red letter: Trust your peripheral vision for the rest
  3. Don't subvocalize: Avoid "speaking" words in your head
  4. Practice regularly: Speed reading is a skill that improves with practice
  5. Use appropriate material: Start with familiar, simple texts

File Structure

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

Technical Details

Timing Algorithm

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.

Design Specifications

  • Background: #000000 (black)
  • Text: #FFFFFF (white)
  • Pivot letter: #FF0000 (red)
  • Font: Courier New (monospace for consistent character width)

Browser Compatibility

The web application works in all modern browsers:

  • Chrome 60+
  • Firefox 55+
  • Safari 11+
  • Edge 79+

Project Gutenberg - Terms of Use & Attribution

The Gutenberg Speed Reader (gutenberg.html) accesses books from Project Gutenberg, a volunteer effort to digitize and archive cultural works.

Content License

  • 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.

API Usage

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.

Trademark Notice

"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.

Attribution

  • 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:

License

MIT License - feel free to use, modify, and distribute.

References

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors