GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • GitHub
  • Releases
  • Changelog
  • Security
  • README
  • Architecture
  • Prior art
  • Bionic Page

This view

  • Original page
  • New address

GeezerVison is showing srivtx.github.io — Bionic Docs — read PDF and EPUB with bionic fixation

NewPages as printed, fitted to your window

Read PDF and EPUB with bionic fixation.

Open a document and every page looks the way it was printed, with its figures, colours and layout. Only now the leading letters of each word carry the weight. It all happens inside the extension, so nothing is uploaded.

Try the reader Install from source
  • No upload
  • No account
  • No remote code
annual-report.pdf Half
Section 2Page 14

Reading on screen

Readers move through a page in short jumps, resting on a word for a moment before the next. A heavier opening gives each jump somewhere to land.

Figure 3. The chart stays exactly where it was drawn.

The text is laid over the page in the same place, at the same width, so columns and captions keep their shape.

− Fit page +
0 bytes uploaded
EPUB · Chapter 2 of 9
  • 2formats, PDF and EPUB
  • 5reading modes
  • 160tests across 8 files
  • 0network requests for content

Live demo

Try the reader, right here

This is the same compiled fixation code the extension ships, running in this page. Switch documents, turn pages, change the mode, or paste your own text.

Contents

    ←→to turn pages
    Fixation
    Intensity 50%

    fixtures/sample.pdf

    sample.pdf

    Your text
    Page 1 of 2

    Before and after

    The same page, switched on

    Drag the divider, or focus it and use the arrow keys. Left of the line is what the extension shows; right of it is the page as written.

    A long report is mostly a test of attention. The eye keeps losing its place at the end of a line and has to hunt for the start of the next one. Giving every word a firm opening is a small change, but the page stops feeling like a wall of grey and starts to read like a path.

    A long report is mostly a test of attention. The eye keeps losing its place at the end of a line and has to hunt for the start of the next one. Giving every word a firm opening is a small change, but the page stops feeling like a wall of grey and starts to read like a path.

    Bionic As written 50%

    What it does

    A reader that leaves your document alone

    Most bionic tools strip a PDF down to plain text. Bionic Docs keeps the page and puts the emphasis on top of it.

    Pages as they were printed

    PDF.js draws each page to a canvas: images, diagrams, colours and all. The text is laid back over it in the same position and width, then emphasized, so columns, captions and equations keep their shape.

    canvas
    text layerReadingon screen
    − Fit widthFit page125% +

    Fit page, fit width, 50 to 300%

    Pages open fitted to the window. Zoom keeps your place on the page, and + − 0 work from the keyboard.

    1 · Arrival 2 · The harbour 3 · Letters home

    EPUB, reflowed

    Books are unzipped in memory, their chapters sanitized and reflowed, and their own table of contents becomes the Contents panel.

    Half Classic Vowel anchor Low distraction Custom rule

    Five reading modes

    The same fixation algorithm as its sibling, Bionic Page, with a live intensity control. Changes apply as you move the slider.

    Resume at page 42? Resume

    Picks up where you left off

    Reopen a document and the reader offers your last page or chapter. It remembers the last 25 documents, on this device only.

    Made for the keyboard

    Turn pages, jump to either end, zoom and open the contents without reaching for the mouse. Menus are drawn by the extension and work with arrows, Enter and type-ahead.

    ←→pages +−0zoom CcontentsHomeEnd

    Reading modes

    Each mode anchors a different part of the word

    Every sample below is rendered live by the code the extension runs, so what you see here is what you get in a document.

    Half

    Default

    Comprehension builds steadily through careful attention.

    The first half of each word, as in Bionic Reading.

    Classic

    Comprehension builds steadily through careful attention.

    A leading share of each word; intensity sets how much.

    Vowel anchor

    Comprehension builds steadily through careful attention.

    Up to the first vowel group; suited to many languages.

    Low distraction

    Comprehension builds steadily through careful attention.

    The prefix stays, the rest of the word fades back.

    Custom rule

    Comprehension builds steadily through careful attention.

    Per-length letter counts, plus a fraction for long words.

    How it works

    Sniff, parse, emphasize

    Three steps, all inside the extension page. The document is never parsed anywhere else.

    1. 01

      Sniff

      The first bytes decide the path: %PDF- goes to PDF.js, a PK zip with an EPUB container goes to the book reader. File names are not trusted.

    2. 02

      Parse on device

      A bundled PDF.js renders each page and reports where its text sits. An EPUB is unzipped with fflate; its OPF gives the spine, its nav or NCX the contents.

    3. 03

      Emphasize

      The fixation step wraps each word's opening in <b>. It only touches text nodes, so a mode change repaints in place and the original bytes are never modified.

    Module mapsrc/
    popup / backgroundopens reader.html?src=… for the current tab or a picked file
    reader/reader.tssniffs the bytes, owns the toolbar, zoom, contents and resume
    pdf/pdf.ts · layout.ts · zoom.tscanvas page, positioned text layer, fit and zoom maths
    epub/epub.tsunzip, OPF, spine, contents, sanitized chapters
    core/*the pure fixation algorithm, shared with Bionic Page and unit-tested
    shared/select.tsthe designed menus over native selects, keyboard-accessible

    Privacy

    There is no server.

    Bionic Docs has nowhere to send your document. There is no backend, no analytics and no account, and a test fails the build if a network call appears anywhere in the source except the one that loads the file you opened.

    • PDF.js, its worker, cmaps and fonts are bundled
    • No eval, no remote scripts, a strict extension CSP
    • EPUB chapters are sanitized before they are shown
    Network1 request
    MethodURLStatus
    GETfile:///Users/you/papers/report.pdf200
    The document you opened. That is the only request.

    Honest limits

    What it does not do

    The limits are part of the contract, not footnotes.

    Scanned PDFs

    A scan has no text layer, so the page is shown as the image it is, without emphasis. OCR is out of scope for now.

    Embedded fonts

    Emphasized text is drawn in the browser's own fonts, stretched to the original width, so letter shapes can differ from the document's.

    Special glyphs

    Text PDF.js paints inside transparency groups or as Type 3 glyphs keeps its original look and does not get the emphasis.

    Book styling

    EPUB rendering is intentionally minimal: no pagination and no publisher CSS beyond the sanitized chapter markup.

    Install

    Build it from source

    Store listings are pending. One source tree builds both targets; load the one for your browser.

    1. 1Run the four commands on the right. You need Bun.
    2. 2Chrome or Edge: open chrome://extensions, turn on Developer mode, choose Load unpacked and pick dist/chrome.
    3. 3Firefox 140+: open about:debugging, This Firefox, Load Temporary Add-on, and pick dist/firefox/manifest.json.
    zsh
    $ git clone https://github.com/srivtx/bionic-docs
    $ cd bionic-docs
    $ bun install
    $ bun run build
    built dist/chrome
    built dist/firefox

    FAQ

    Questions, answered plainly

    Does my document get uploaded anywhere?

    No. The file is read and parsed inside the extension page. There is no server to send it to, and the source is checked by a test that fails on any other network call.

    Will the PDF still look like the PDF?

    Yes. Each page is drawn as it was printed, figures and colours included, and the emphasized text sits in the same place on top. Only the letter shapes of the emphasized text can differ, because the browser's fonts stand in for the embedded ones.

    Can I open PDFs from my computer?

    Yes. Use Open a file… in the popup, or drag a file onto the reader. To open file:// PDFs that are already in a tab, allow file access for the extension in your browser's extension settings.

    Does it work offline?

    Yes. Everything it needs, PDF.js and its fonts included, is in the package. Nothing is fetched at run time.

    Why does Firefox need version 140?

    The manifest declares that the extension collects no data, and Firefox only understands that declaration from version 140.

    Is this Bionic Reading?

    No. It is an independent, MIT-licensed project that uses its own fixation algorithm, shared with its sibling Bionic Page. It is not affiliated with Bionic Reading GmbH.

    Your documents, easier to follow.

    Free, open source and on-device. Build it in a minute.

    Install from source View on GitHub
    You are visitor 01402503 — GeezerVison does not store the pages you look up.
    Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.