Page Stack is a tool for creating text assemblages from the pages of classic books.
How it works
Page Stack lets you create a new page of text by selecting text from different pages of a classic book. Each selection is copied over onto the composite page, starting from the front of the book and working back to the end.
To understand how Page Stack works, imagine a page in a book as a grid of characters. Each character of text appears in a single unique cell in that grid. Now imagine a book as stack of these pages/grids. The composite page is formed by laying all the page grids on top of each other and then taking the topmost selected character from each cell to form the final composite page.
You can use Page Stack to create poetry, art, or just have fun creating silly new interpretations of classic texts.
How the composite page is built
Here are few 2D examples explaining how the composite page is built.
Selections on different pages that don't overlap merge together:
the old house by the shore
in the forest on the ridge
the old house on the ridge
When two pages have text at the same position, the page above wins. The overwritten text is shown in yellow on the lower page:
the quick brown fox!
one small green tree
the quick brown tree
"small green" from page 9 is hidden because page 3 has "quick brown" at the same positions.
Multiple pages work the same way. Selections on earlier pages take priority:
one big old box
two wee red can
any new tan hat
one big red hat
Page 2's "one big" takes priority over page 8's "two wee" at the same positions. Page 8's "red" takes priority over page 15's "tan". Each position keeps only the topmost page's character.
Drawing tools
- + Select
- Drag over text to mark it as visible in the composite. This is the default tool. With Overwrite enabled (the default), selections automatically remove overlapping selections from pages above so that the current page wins. Hold Alt / ⌥ while dragging to toggle overwrite behavior.
- − Erase
- Drag over existing selections to remove them. With Overwrite enabled, erasing removes from all pages, not just the current one. Hold Alt / ⌥ while dragging to toggle overwrite behavior.
Modifiers
- Box
- When enabled, selections are rectangular regions instead of normal text-style selections.
- Whitespace
- When enabled, includes leading and trailing whitespace in selections.
- Overwrite
- When enabled (the default), Select forces the current page to win by removing overlapping selections from pages above, and Erase removes from all pages instead of just the current one. This is the same behavior as holding Alt / ⌥. Holding Alt / ⌥ temporarily toggles this mode while dragging.
Color key
- Visible — Selected on the current page and in the composite.
- — Selected but overwritten by a page above.
- Above — Selected on a page above.
- Below — Selected on a page below.
Hover over a character in the composite to see which page it came from. You can also hold ⌘ / Ctrl and click to jump directly to that page.
Other controls
- Share
- Copy a link to the clipboard with your book and selections encoded in the URL. Anyone who opens the link will see the same book and selections.
- Undo
- Revert the last selection change.
- Reset
- Clear all selections from every page. This cannot be undone.
3D stack view
The 3D toggle shows the composite in a 3D view. This shows each page from the book in a 3D stack. Only the selections are rendered.
- Rotate
- Click and drag to orbit the stack.
- Zoom
- Scroll to zoom in and out.
Use the □ Front and ⟲ Reset buttons in the top-right corner to snap to a head-on view or return to the default perspective.
Pages with selections are highlighted. The current page is outlined, and the composite page appears at the top of the stack.
Keyboard shortcuts
- ← / ↑ — previous page
- → / ↓ — next page
- Space — toggle between Select and Erase tools
- Shift (hold) — temporarily switch to the other tool while dragging
- Ctrl+Z / ⌘Z — undo
- Ctrl+F / ⌘F — open Find
Find
Press Ctrl+F / ⌘F to open the find panel. Type a search term to find all occurrences across the entire book. Results on the current page are shown first.
Use the Word toggle to switch between matching whole words or any substring. Click a result to jump to that page, or use the + button to add it as a highlight.
Highlight all adds every match. Visible only adds matches front-to-back, skipping any that would be occluded by an earlier page's selection.
Examples
Credits
All texts belong to their original authors. Book sources are from Project Gutenberg, a library of free public domain eBooks.