Skip to content

An SVG animation c++ library, kinda like a video codec for svg and jazz.

License

Notifications You must be signed in to change notification settings

killerdevildog/Qwast-Reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qwast Reader

A speed reading application designed to help humans read faster using RSVP (Rapid Serial Visual Presentation) with ORP (Optimal Recognition Point) highlighting.

License Platform C++

Overview

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.

The Science Behind Speed Reading

RSVP (Rapid Serial Visual Presentation)

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

ORP (Optimal Recognition Point)

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

Features

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

Building

Prerequisites

  • CMake 3.16+
  • C++17 compatible compiler
  • Git

Clone and Build

# 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

Usage

  1. Open a text file - Click "Open File" and browse to any .txt file
  2. Adjust speed - Use the WPM slider (start low, around 200-300 WPM)
  3. Click Play - Words will display one at a time in the center
  4. Click any word in the preview to jump to that position
  5. Customize - Adjust highlight color, font size, and corner text options

Tips for Speed Reading

  • 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

Dependencies

Library Purpose License
SDL3 Window management, rendering zlib
Dear ImGui User interface MIT
stb Single-file libraries MIT/Public Domain

Project Structure

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

References & Further Reading

  • 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

License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright © 2026 Quaylyn Rimer

Acknowledgments

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

About

An SVG animation c++ library, kinda like a video codec for svg and jazz.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published