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:

Page 3 the old house by the shore
Page 7 in the forest on the ridge
Composite 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:

Page 3 the quick brown fox!
Page 9 one small green tree
Composite 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:

Page 2 one big old box
Page 8 two wee red can
Page 15 any new tan hat
Composite 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

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

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.

← Back to Page stack