Why I built this

The story behind railreader2.

I'm a statistics lecturer at Nelson Mandela University in South Africa. I prefer to read academic PDFs at high magnification — it's simply more comfortable for me — but high magnification turns even simple reading into a navigation puzzle. You lose context, scrolling becomes inefficient, and most viewers simply aren't designed for sustained use at 3× zoom and above.

The problem isn't unique to people with visual impairments. Anyone who works with dense academic documents — papers packed with equations, tables, and multi-column layouts — can benefit from structured, guided navigation at higher zoom levels. Standard PDF viewers just aren't built for this kind of sustained, focused reading.

railreader2 solves this with AI-guided rail reading: a layout-analysis model (Docling Heron-INT8 by default, with PP-DocLayoutV3 as an alternative) detects text blocks and reading order, then the viewer guides you through the document line by line, block by block. It's not a screen magnifier — it's a purpose-built reading environment that understands document structure.

There's an "AI inception" to the whole project: railreader2 was built almost entirely with Claude Code, an AI coding agent. So an AI agent wrote the code for an app that itself leverages an AI vision model to function. It's a small example of how AI-assisted development can bring niche, genuinely needed tools into existence when the traditional software market would never justify building them.

A note on accessibility: railreader2 includes features that help readers with visual impairments — colour filters, line focus, high-contrast modes — but it is designed for comfortable reading at high magnification, not as a full assistive-technology solution. It is not a screen magnifier and may not suit users who need dedicated software with screen-reader integration, cursor tracking, or system-wide magnification.

Acknowledgements

railreader2 stands on the shoulders of a lot of open-source work. Thank you to Avalonia for the cross-platform UI framework; PDFium (via bblanchon's native builds) and PDFtoImage by David Sungaila for PDF rasterisation; SkiaSharp for GPU-accelerated rendering; ONNX Runtime, Docling (the Heron layout model), and PaddlePaddle (PP-DocLayoutV3 / PP-DocLayout-S) for the layout-detection models rail mode is built on; RapidOCR and RapidOcrNet by BobLd for opt-in OCR on scanned pages; and CommunityToolkit.Mvvm for MVVM plumbing.

railreader2 is one option in a small field of open-source PDF readers, each with a different focus. If it isn't the right fit for you, these are worth a look:

  • Sioyek — a keyboard-driven PDF reader built for research papers. Its Portals feature — pinning a linked figure or table in view while you read past the text that cites it — directly inspired railreader2's own Portals; the concept and the name are borrowed with thanks.
  • Caly by BobLd — a cross-platform PDF reader built on PdfPig and PdfPig.Rendering.Skia, from the same author behind RapidOcrNet above. If you want a lean, PdfPig-native reading experience, it's worth trying.

Get railreader2   ← Back to home