A cross-platform RSVP built in Rust with egui
- What is RSVP
- Core Features
- Built with...
- Installation & Quick Start
- Keyboard Shortcuts
- Stardance Devlogs ᕙ( •̀ ᗜ •́ )ᕗ
- Developement
- Boring Stuff
Rapid serial visual representation (RSVP) is an experimental method for displaying information [...]. In RSVP, a sequence of stimuli, usually letter, digits, or words, appear at the same location on a screen or another display in short successive intervals [...]. Because each word appears at the same fixed point, the eyes never have to move (saccade) to find the next word, which is where most of the time lost during normal reading comes from.
Source: Wikipedia
demo.mov
![]() Home |
![]() Drag & Drop |
||||||
![]() Running |
|||||||
- Word-by-word display: the text is split into words and shown one at the time, centered on screen
- Optimal Recognition Point (ORP): each word have the center letter highlighted in red and align with the Guide bar
- Eye guide bar: top & bottom line with a notch to guide your eyes to the centered red letter
- Adjustable speed: a WPM (words per minute) slider, plus
UP/DOWNkeyboard shortcut, from 10 to 1000 WPM (the recommanded value is around 300 WPM) - Sentence Navigation: jump to the previous or next sentence with
LEFT/RIGHTon the keyboard or with the buttons - File loading:
- Open a
.txtfile viaCtrl+O/Cmd+Oor the toolbar button - Drag & drop: drop a
.txtfile directly in the window, with a visual overlay while hovering. - Bult-in demo text (
D) if you just want to try R(ust)SVP
- Open a
- No UI mode: hide the UI with
H, to leave only the guide line and the words on the screen - Theme: dark mode with the Ubuntu Bold font
This project was built to learn Rust GUI development and experiment with RSVP. Here is what I used:
- Rust: for the whole app !
ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧ - egui / eframe: easy GUI, native windowing and coss-platform rendering (Windows, macOS, Linux)
- rfd: native "Open File" dialogs on every platform
The easiest way to get the emulator is to install it directly via crates.io using Cargo:
cargo install rustsvpTip
Press D on launch to load a demo RSVP text, or Ctrl+O / Cmd+O to open your own .txt file
| Key | Action |
|---|---|
Space |
Play / Pause |
LEFT / RIGHT |
Jump to previous / next sentence |
UP / DOWN |
Increase / decrease WPM |
Ctrl+O / Cmd+O |
Open a .txt file |
D |
Load the demo text |
R |
Reset to the beginning of the text |
H |
Toggle the UI |
On Stardance you can watch the full development process via all the devlogs I've created here: R(ust)SVP Devlogs
- Clone the repository with
git clone https://github.com/wirenux/RustSVP.git
cd RustSVP- Then install the dependencies and run the program with:
cargo run- Debugging
egui/eframeAPI changes across versions, and brainstorming
This project is created by @wirenux in Rust and use egui
This project is released under the MIT License



