Skip to content

lizadaly/a-physical-book

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

A Physical Book

For National Novel Generation Month 2017

Liza Daly

A Physical Book makes a digitized book “physical” by rendering it in a simulated space where properties like gravity, friction, and velocity all apply. The program randomly perturbs the letters, then takes a snapshot at a point in time, re-assembling the images into a new, “un-digitized” book.

Live demo

The raw, uncorrected scanned text of The Up-To-Date Sandwich Book: 400 Ways to Make a Sandwich (1909) is re-imagined as this 251 page (50,964 words) book:





Implementation

A Physical Book uses the web-based game engine Phaser. Each page of the book is rendered into an invisible <div> (to produce correct leading and line-height), then copied into the Phaser game world with each letter instantiated as a distinct addressable sprite.

For each page, one of a dozen transformations is applied to give the text varying physical properties, such as mass, acceleration, collision, or opacity.

On page load, the requested chapter number is rendered, the transformation is assigned, and the world is allowed to run. A Selenium wrapper script calls all 500 pages in succession, taking a screenshot at a random point in the animation:

The final book is rendered in a two-page spread PDF.

Small 30 page sample.

Full 50,000+ word, 250 page PDF (55MB)

In a hilarious bit of recursion, it is also being hosted on The Internet Archive, where the book scan originated.

About

For National Novel Generation Month 2017

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published