Skip to content

Instantly share code, notes, and snippets.

@cpudney
Created October 17, 2011 00:19
Show Gist options
  • Save cpudney/1291635 to your computer and use it in GitHub Desktop.
Save cpudney/1291635 to your computer and use it in GitHub Desktop.
Infinite Jest Visualization
TODO
Improved year labels (mouseover -> shows full name in tooltip)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Infinite Jest</title>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<link href="style.css" media="screen" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js?2.4.5"></script>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.csv.js?2.4.5"></script>
<style type="text/css">
</style>
</head>
<body>
<div>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left"><span class="title">Infinte Jest v1.0</span>
<a href="http://creativecommons.org/licenses/by-sa/3.0/"><img align="top" alt="Creative Commons License"
src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png"/></a>
</td>
<td align="right">By <a href="http://vislives.com/" target="_blank">Chris Pudney</a>;
Data courtesy of
<a href="http://faculty.sunydutchess.edu/oneill/Infinite.htm" target="_blank">Dr, Keith O'Neill</a>
&amp;
<a href="http://infinitejest.wallacewiki.com/david-foster-wallace/index.php" target="_blank">The
Infinite Jest Wiki</a></td>
</tr>
</table>
</div>
<div id="chart"></div>
<div id="infobox"></div>
<script src="infinite-jest.js" type="text/javascript"></script>
</body>
</html>
Chapter Scene Page Year DayName MonthDay CharactersPresent Synopsis
1 1 3 Year of Glad Hal Incandenza Hal narrates: interview with University of Arizona Deans. Questions regarding Hal's rather stellar record.
1 2 10 (unspecified) Hal Incandenza Hal narrates: Eating the mold.
1 3 11 Year of Glad Hal Incandenza Hal attempts to explain his record to the deans. Is there something wrong with his voice?
1 4 13 Year of Glad Hal Incandenza Hal restrained in a University of Arizona men's room.
1 5 15 Year of Glad Hal Incandenza Hal is taken away in an ambulance.
2 6 17 Year of the Depend Adult Undergarment Ken Erdedy Ken Erdedy, preparing for a marijuana binge, waits for a woman to deliver the goods.
3 7 27 Year of the Tucks Medicated Pad 4/1 Hal Incandenza;James Orin Incandenza 12-year-old Hal goes to see a "conversation" doctor, who turns out to be his father in disguise.
4 8 32 Year of the Depend Adult Undergarment 5/9 Hal Incandenza;Orin Incandenza;Mario Incandenza Hal gets phone call from Orin, Mario wakes up.
5 9 33 Year of the Depend Adult Undergarment 4/1 Medical Attache The medical attaché comes home to relax and watch some "Entertainment".
5 10 37 Year of the Trial-Size Dove Bar Clenette Henderson;Wardine Clenette narrates: tells a tale about her friend Wardine's abusive family.
5 11 38 (unspecified) Bruce Green;Mildred Bonk The tale of Bruce Green and Mildred Bonk.
6 12 39 Year of the Depend Adult Undergarment Hal Incandenza;Mario Incandenza Hal and Mario in their room at night. They discuss Himself's funeral.
6 13 42 Year of the Depend Adult Undergarment 4/1 Medical Attache The medical attaché is still watching the “Entertainment”
6 14 42 Year of the Depend Adult Undergarment October 10/16 Orin Incandenza Orin wakes up in Arizona, wishes last night's "subject" would leave.
7 15 49 Year of the Depend Adult Undergarment Hal Incandenza 17-year-old Hal getting high in the basement of Enfield Tennis Academy.
7 16 55 Year of Dairy Products from the American Heartland Autumn 9/22 Don Gately Don Gately's criminal career comes to an end after accidentally murdering a Canadian VIP during a robbery. This VIP has ties to various anti-ONAN groups.
7 17 60 Year of the Depend Adult Undergarment Description of a state-of-the-art teleputer.
7 18 60 Year of the Depend Adult Undergarment 11/3 Jim Troeltsch Troelsch sick in bed at ETA.
7 19 60 (unspecified) Description of 12 yr old's nightmare at ETA.
8 20 63 Year of the Depend Adult Undergarment James Orin Incandenza Brief description and history of ETA and its founder, James O. Incandenza.
8 21 65 Year of the Depend Adult Undergarment 11/1 Orin Incandenza Orin at football practice.
9 22 66 Year of the Depend Adult Undergarment Michael Pemulis Michael Pemulis as "Big Buddy," talks about drugs to his younger charges
9 23 67 Year of the Depend Adult Undergarment Hal Incandenza Hal, after a bong hit, relates a tennis dream.
10 24 68 Year of the Depend Adult Undergarment Kate Gompert Kate Gompert explains the extent of her addiction to marijuana ("Bob Hope") to a young doctor.
10 25 78 Year of the Depend Adult Undergarment 4/2 Medical Attache The medical attaché's wife returns home.
10 26 79 Year of the Depend Adult Undergarment Gerhardt Schtitt;Mario Incandenza Gerhardt Schtitt and Mario talk game theory.
10 27 85 Year of the Depend Adult Undergarment Tiny Ewell Tiny Ewell and an unnamed passenger are transported to the Enfiled Marine VA hospital.
11 28 87 Year of the Depend Adult Undergarment 4/2 Medical Attache The list of people who have come to the medical attaché's house to look at him.
11 29 87 Year of the Depend Adult Undergarment 4/30 Remy Marathe;Hugh/Helen Steeply Tuscon, Arizona: Maranthe and special agent Hugh Steeply (in drag) meet on a hillside to discuss the appearance, earlier that month, of a special form of “Entertainment”.
11 30 93 (unspecified) Description of a herd of feral hamsters in the Great Concavity
11 31 93 Year of the Depend Adult Undergarment 4/30 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued.
11 32 95 Year of the Depend Adult Undergarment 11/3 Jim Troeltsch;Michael Pemulis;John "No Relation" Wayne;Ortho "The Darkness" Stice;Jim Struck Jr.;Keith "The Viking" Freer;Hal Incandenza Locker room banter at ETA. Troelsch, Pemulis, Wayne, Stice, Struck, Freer and Hal are present.
11 33 97 Year of the Depend Adult Undergarment 4/30 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued. Sunset.
11 34 97 Year of the Depend Adult Undergarment 11/3 Jim Troeltsch;Michael Pemulis;John "No Relation" Wayne;Ortho "The Darkness" Stice;Jim Struck Jr.;Keith "The Viking" Freer;Hal Incandenza More banter in the locker room. Complaints about Schtitt's expectations of them.
11 35 105 Year of the Depend Adult Undergarment 4/30 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued. Talk of love.
11 36 109 Year of the Depend Adult Undergarment 11/3 Jim Troeltsch;John "No Relation" Wayne;Ortho "The Darkness" Stice;Jim Struck Jr.;Hal Incandenza;Idris Arslanian;Evan Ingersoll;Kent Blott Hal with his "little buddies" (Kent Blott, Idris Arslanian, Ingersol). He convinces them that their resentment of Schtitt is engineered by Schtitt and his staff. Switches to John (NR) Wayne, Troelsch, Struck, and Stice, each with his group of younger students.
11 37 121 Year of the Depend Adult Undergarment Mid October 10/16 Mario Incandenza;"USS" Millicent Kent “Mario Incandenza's first and Only Even Remotely Romantic Experience, Thus Far". It is indeed only remote, with "USS" Millicent Kent.
11 38 126 Year of the Depend Adult Undergarment 4/30 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued.
11 39 127 Year of the Depend Adult Undergarment 4/30 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued. (One line)
12 40 127 Year of the Depend Adult Undergarment Lyle First description of the ETA's oiled guru, Lyle.
12 41 128 (unspecified) Poor Tony Krause "Yrstruly" narrates a gruesome story involving C, Poor Tony and the despicable Dr. Wo in Chinatown. C ODs
13 42 135 Year of the Depend Adult Undergarment 11/3 Hal Incandenza;Orin Incandenza Hal receives a phone call from Orin, who asks him about Canadian separatism.
13 43 137 (unspecified) Introduction to the Ennet House Drug and Alcohol Recovery House (sic).
13 44 138 Year of Dairy Products from the American Heartland Excerpt from a letter to State Farm detailing a bricklayer's bizarre accident. This is perhaps Wallace's most obvious example of borrowing from urban myths.
13 45 140 Year of the Perdue Wonderchicken Hal Incandenza Hal's seventh-grade essay comparing "Hawaii-Five-O"'s Steve McGarrett with "Hill Street Blues"'s Frank Furillo. The latter is a post-modern, more complicated, and perhaps too mild hero.
13 46 142 Year of the Depend Adult Undergarment 8/10 Hugh/Helen Steeply;Poor Tony Krause "Helen" Steeply's Moment article about a woman who carried her artificial heart in her purse. She was mugged. Poor Tony was the purse snatcher.
13 47 144 (unspecified) Alphabetic list of anti-ONAN groups.
13 48 144 (unspecified) Why videophony didn't work.
14 49 151 Year of the Depend Adult Undergarment 10/15 Michael Pemulis Urine tests at ETA; Pemulis sells clean samples.
15 50 157 1960 James Orin Incandenza James Incandenza's father narrates (addressing 10-year-old Jim): Discusses Marlon Brando, tennis, and his own father's reaction when he blew out his knee at a match.
15 51 169 Year of the Depend Adult Undergarment 11/4 Michael Pemulis Pemulis scores some DMZ (Madame Psychosis).
15 52 172 Year of the Yushityu 2007 Mimetic-Resolution-Cartridge-View-Motherboard-Easy-To-Install-Upgrade For Infernatron/InterLace TP Systems For Home, Office, Or Mobile (sic) Hal Incandenza Hal's narration of “Tennis and the Feral Prodigy”, a film by Mario Incandenza.
15 53 176 Year of the Depend Adult Undergarment 11/5 Pat Montesian Selected transcripts from Patricia Montesian's log at Ennet House. Voices of recovering drug and alcohol abusers.
16 54 181 Year of the Depend Adult Undergarment Late October 10/30 Madame Psychosis;Mario Incandenza;Hal Incandenza At WYYY, “Sixty Minutes More or Less” with Madame Psychosis, is about to go on. The late shift engineer goes to the roof to drink a Millennial Fizzy and listen to the show. Mario, with Hal at the Headmaster's House listens to the show.
16 55 193 Year of the Depend Adult Undergarment Description of units 1-7 of Ennet House.
16 56 198 Year of the Depend Adult Undergarment 11/6 Keith "The Viking" Freer;Eliot Kornspan;Graham Rader;Lyle;Michael Pemulis Freer and Kornspan work out while Rader consults with Lyle. Pemulis eavesdrops.
16 57 200 Year of the Depend Adult Undergarment Tiny Ewell More detailed introduction to Ennet House and its residents. Tiny Ewell's obsession with tattoos.
16 58 211 Year of the Depend Adult Undergarment Michael Pemulis Michael Pemulis explains that he has scored some DMZ, the "Yale U. of the Ivy League of Acid" from some Canadian insurgents. The boys decide to plan on taking it the weekend before the WhataBurger Invitational.
17 59 219 Year of the Depend Adult Undergarment 11/7 Joelle Van Dyne;Molly Nitkin Joelle Van Dyne, star of Jim Incandenza's movies, goes to Molly Notkin's MA thesis party.
17 60 223 Year of Glad Chronology of Subsidized Time.
17 61 223 Year of the Depend Adult Undergarment Joelle Van Dyne;Orin Incandenza;James Orin Incandenza Joelle thinks about Orin and his father, the "world's best hailer of Boston cabs”.
17 62 227 Year of the Depend Adult Undergarment Hugh/Helen Steeply;Poor Tony Krause Helen P. Steeply's (putative) Curriculum Vitae.
17 63 227 Year of the Depend Adult Undergarment Joelle Van Dyne;Molly Nitkin Joelle attempts to overdose in the bathroom at a party of cinema graduate students.
18 64 240 Year of the Depend Adult Undergarment Geographical description of Enfield, Massachusetts.
18 65 242 Year of the Depend Adult Undergarment 11/5 Hal Incandenza;Orin Incandenza Hal and Orin on the telephone. Now Orin wants to discuss Himself's suicide. (He put his head in a microwave) Meanwhile, Hal is clipping his toenails and making miraculous shots into the wastepaper basket.
19 66 258 Year of the Depend Adult Undergarment 11/6 Hal Incandenza;John "No Relation" Wayne;Michael Pemulis;Ted Schacht Tennis meet at Port Washington Tennis Academy, Long Island, New York. Descriptions of Hal and John "No Relation" Wayne playing their respective games. Pemulis gets sick, Schacht plays a French-Canadian.
19 67 270 Year of the Depend Adult Undergarment Don Gately;Geoffrey Day;Charlotte Treat;Randy Lenz Gately (substance-free for 421 days) is now on staff at Ennet House. Geoffrey Day, Charlotte Treat, Randy Lenz all appear.
19 68 281 Year of the Depend Adult Undergarment ETA returns from Long Island Triumphant.
20 69 283 (unspecified) Orin Incandenza;Joelle Van Dyne The story of Orin and Joelle, the Prettiest Girl of All Time (PGOAT). His switch from tennis to football in college.
20 70 299 Year of the Depend Adult Undergarment 11/14 Poor Tony Krause Poor Tony goes through withdrawal in the bathroom stall of a Boston public library.
21 71 306 Year of the Depend Adult Undergarment 11/6 Hal Incandenza;Jim Troeltsch Mary Esther Thode's "The Personal is the Political is the Pathological”. Example of an exam on psychopathological double-binds. Troelsch's broadcast of the morning's games on WETA (ETA's intercom). Hal is in Theirry Poutrincourt's class on Canadian political history. Some details of anti-ONAN activity (large mirrors across highways).
21 72 312 (unspecified) Mario Incandenza Mario's surprise birth, and a description of some of his deformaties.
21 73 317 Year of the Depend Adult Undergarment Around midnight April 30 5/1 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued.
22 74 321 Year of the Depend Adult Undergarment 11/8 Michael Pemulis;Hal Incandenza;Evan Ingersoll;Jim Troeltsch;LaMont Chu;Jim Struck Jr.;Otis P. Lord;Trevor "The Axehandle" Axford;Josh Gopnik;J. J. Penn;Keiran McKenna;Todd "Postal Weight" Poselthwaite;Ann Kittenplan;Timmy "Sleepy TP" Peterson;Mary Esther Thode Interdependence Day. A game of Eschaton.
22 75 343 Year of the Depend Adult Undergarment 11/8 Don Gately;Joelle Van Dyne Boston AA meeting: description of several speakers (a "fifty year old immigrant" waxes eloquently about his first solid bowel movement in years) and the "crocodiles". Gately is curious about new girl Joelle.
22 76 367 (unspecified) The Statue of Liberty's product is changed every January 1st.
22 77 367 Year of the Depend Adult Undergarment Boston AA meeting: a young girl describes her foster father sexually abusing her paraplegic stepsister.
22 78 375 Year of the Depend Adult Undergarment Around midnight April 30 5/1 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued.
22 79 375 (unspecified) James Orin Incandenza;Lyle James Incandenza's “Found Drama” came out of a late-night session with Lyle.
22 80 376 Year of the Depend Adult Undergarment 11/8 Boston AA meeting: story of baby's death.
22 81 379 (unspecified) James Orin Incandenza;Lyle James Incandenza and Lyle in the weight room.
23 82 380 Year of the Depend Adult Undergarment 11/8 Mario Incandenza Mario Incandenza's film interpretation of the formation of ONAN.
23 83 386 Year of the Depend Adult Undergarment 11/8 Lyle;Mario Incandenza;Marlon Bain Lyle in the weightroom with sweaty ETA student Marlon and others (Anton "Booger" Douchette). Return to Mario's film, which is now covering major political events with a montage of newspaper headlines. History of Johnny Genlte's CUSP and the Great Concavity.
23 84 394 Year of the Depend Adult Undergarment 11/8 Lyle;Ortho "The Darkness" Stice Lyle tells Ortho "The Darkness" Stice,"Do not underestimate objects". Stice's bed has been moving at night.
23 85 395 Year of the Depend Adult Undergarment 11/8 Hal Incandenza Hal watching Mario's film. Description of Himself's “The Medusa vs. the Odalisque” and “THE JOKE”.
23 86 398 Year of the Depend Adult Undergarment 11/8 Hal Incandenza Continuation of Mario's film, with more headlines and a puppet show of Gentle and Rodney Tine, Chief, US Office of Unspecified Services. The story of legendary tennis player Eric Clipperton and his Glock 17 semiautomatic.
23 87 410 Year of the Depend Adult Undergarment 11/8 Hal Incandenza Hal watching Mario's film. History of Interlace, proliferation of advertising, and garbage in space.
23 88 418 Year of the Depend Adult Undergarment Around midnight April 30 5/1 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued.
23 89 430 (unspecified) Eric Clipperton's death.
23 90 434 Year of the Depend Adult Undergarment Don Gately Gately's other job: cleaning bathrooms.
23 91 436 Year of the Depend Adult Undergarment Hal Incandenza Mario's film continued. More headlines and puppets. The origin of subsidized time.
24 92 442 Year of the Depend Adult Undergarment Gately's relationship with the crocodiles. He remembers the death of his mother.
24 93 449 Year of the Depend Adult Undergarment Very late October 10/31 James Orin Incandenza;Lyle Hal's bad dream.
24 94 450 Year of the Depend Adult Undergarment 11/9 Morning drills at ETA.
24 95 461 Year of the Depend Adult Undergarment Don Gately Don Gately's responsibilities at Ennet House. His boss, Pat Montesian.
24 96 470 Year of the Depend Adult Undergarment Pre-dawn May 1 5/1 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued. Discussion of BS governmentt experiments on human subjects.
24 97 475 Year of the Depend Adult Undergarment Don Gately;Pat Montesian Gately out in Pat Montesian's car. Interesting shift, via a piece of garbage, to Lucien and Bertraud Anitoi's store. Arrival of and interrogation by the dreaded ATF.
25 98 490 Year of the Depend Adult Undergarment Pre-dawn May 1 5/1 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued.
25 99 491 1963 James Orin Incandenza Jim Incandenza helps his father fix a mattress.
25 100 503 Year of the Depend Adult Undergarment Ken Erdedy At a NA meeting, Ken Erdedy gets a hug.
25 101 507 Year of the Depend Adult Undergarment Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued.
25 102 508 Year of the Depend Adult Undergarment Hal Incandenza;Charles Tavis;"Lateral" Alice Moore;Avril Incandenza Hal anticipates an official scolding from Charles Tavis for the Eschaton game. He waits in "Lateral" Alice Moore's office, overhears Avril counseling the pre-teen female ETAs.
25 103 528 Year of the Depend Adult Undergarment Pre-dawn May 1 5/1 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued.
25 104 531 Year of the Depend Adult Undergarment 11/11 Don Gately;Joelle Van Dyne Discussion between Gately and Joelle. The latter explains her membership in UHID.
26 105 538 Year of the Depend Adult Undergarment Randy Lenz Randy Lenz discovers his penchant for killing animals.
26 106 548 Year of the Depend Adult Undergarment No door at Ennet House.
26 107 548 Year of the Depend Adult Undergarment Early November 11/1 Rodney Tine Sr. Rodney Tine and his special metric ruler.
26 108 550 Year of the Depend Adult Undergarment Michael Pemulis;John "No Relation" Wayne;Avril Incandenza Pemulis interrupts John Wayne and Avril Incandenza in a game of sexual football.
26 109 553 Year of the Depend Adult Undergarment Randy Lenz;Bruce Green Randy Lenz and Bruce Green walking Boston at night.
26 110 560 Year of the Depend Adult Undergarment Hal Incandenza;John "No Relation" Wayne Hal in bed after lunch. John Wayne stops by.
26 111 560 Year of the Depend Adult Undergarment Randy Lenz;Bruce Green Randy Lenz and Bruce Green walking Boston at night.
26 112 563 Year of the Depend Adult Undergarment 11/11 Don Gately Selected snippets of Gately's interactions with Ennet House residents.
26 113 565 Year of the Depend Adult Undergarment Orin Incandenza Orin and a Swiss hand model in a motel room.
26 114 567 Year of the Depend Adult Undergarment Idris Arslanian;Ted Schacht;Michael Pemulis Idris Arslanian, in a blindfold, runs into first Ted Schacht and then Mike Pemulis.
26 115 574 Year of the Depend Adult Undergarment Orin Incandenza Orin at motel door with a man in a wheelchair.
26 116 575 Year of the Depend Adult Undergarment Randy Lenz;Bruce Green Bruce Green and Randy Lenz. Green remembers the death of his mother (coiled toy snake in a can). Lenz separates, kills a dog tied up in yard of a house having a Hawaiian party.
26 117 589 Year of the Depend Adult Undergarment Mario Incandenza Mario, who can't sleep, walks outside.
26 118 593 Year of the Depend Adult Undergarment Don Gately More of Gately's responsibilities at Ennet House.
26 119 596 Year of the Depend Adult Undergarment Orin Incandenza Still at the motel door, Orin answers the man in the wheelchair's "survey".
26 120 601 Year of the Depend Adult Undergarment Don Gately Gately's showdown with the Canadians. Gately seriously wounded.
27 121 620 Year of the Depend Adult Undergarment "The new millennium's passion for standing live witness to things". Grad student engineer for WYYY is kidnapped by a man in a wheelchair.
27 122 627 Year of the Depend Adult Undergarment 11/11 Jim Troeltsch Suppertime at ETA. Troelsch's conspiracy theory that the milk is powdered.
27 123 638 Year of the Depend Adult Undergarment 5/1 Remy Marathe;Hugh/Helen Steeply Maranthe and Steeply continued. Steeply's father's addiction to BS-era show "M*A*S*H".
27 124 648 Year of the Depend Adult Undergarment 11/13 Kate Gompert;Geoffrey Day;Bruce Green Kate Gompert, Geoffrey Day and Bruce Green late-night rap session. Day describes the "large, dark, billowing, black shape" he's felt twice in his life.
27 125 651 Year of the Depend Adult Undergarment 11/11 Ortho "The Darkness" Stice;Hal Incandenza;Don Gately;Poor Tony Krause;Michael Pemulis;Jim Struck Jr.;Hugh/Helen Steeply;Charles Tavis;Orin Incandenza;Aubrey DeLint The match between Stice and Hal. Narrrative "clicks" to scan Gatley, Poor Tony, Pemulis and Struck, Steeply's sedan, CT and even Orin in Arizona. Steeply chats with Aubrey deLint as they watch the match.
27 126 663 Year of the Depend Adult Undergarment Hugh/Helen Steeply;Mildred Bonk Epistolary exchange between Steeply and Marlon Bain, friend of Orin's during adolescence.
27 127 666 Year of the Depend Adult Undergarment 11/11 Sub-14 males in ETA's tunnels on clean-up detail. There are rumors of feral hamsters but instead they find a refrigerator full of rotting food.
27 128 673 Year of the Depend Adult Undergarment 11/11 Hugh/Helen Steeply Steeply speaks, in French, to female prorector Thierry Poutrincourt.
27 129 682 Year of the Depend Adult Undergarment 11/11 Matty Pemulis Matty Pemulis, male prostitute, eats in a diner. Memories of sexual abuse from his father.
27 130 686 Year of the Depend Adult Undergarment 11/11 Matty Pemulis After supper Hal decides to watch some of Himself's films. Description of “Wave Bye-Bye to the Bureaucrat”.
27 131 689 Year of the Depend Adult Undergarment 11/14 Poor Tony Krause Poor Tony contemplates a purse snatching before he heads to the Antitois' shop.
27 132 692 Year of the Depend Adult Undergarment Geoffrey Day;Randy Lenz Geoffrey Day: almost misses Lenz "brandishing the Hog" in the three-man room.
27 133 692 Year of the Depend Adult Undergarment Kate Gompert On Kate Gompert's depression and depression in general. Himself's “The American Century as Seen Through a Brick” described.
27 134 698 Year of the Depend Adult Undergarment 11/14 Kate Gompert;Ruth van Cleve;Poor Tony Krause Kate Gompert and Ruth van Cleve on the street, followed by Poor Tony Krause.
27 135 700 Year of the Depend Adult Undergarment Jim Troeltsch Troelsch puts in a pro-wrestling cartridge.
27 136 700 Year of the Depend Adult Undergarment Michael Pemulis Pemulis adjusts a ceiling tile in subdorm B.
27 137 700 Year of the Depend Adult Undergarment Lyle Lyle sitting.
27 138 701 Year of the Depend Adult Undergarment Mario Incandenza;Gerhardt Schtitt Coach Schtitt with Mario in his BMW.
27 139 701 Year of the Depend Adult Undergarment Avril Incandenza Avril calling Arizona.
27 140 701 Year of the Depend Adult Undergarment Hal Incandenza;Joelle Van Dyne Hal watches “Blood Sister: One Tough Nun”. The plot of this film in detail. Hal thinks about another of his father's films, “Low-Temperature Civics”. Switches to Joelle at a Cocaine Anonymous meeting, listening to a speaker describe his lowest moment (walking out on his wife and child).
27 141 711 Year of the Depend Adult Undergarment Hal Incandenza The end of “Blood Sister: One Tough Nun”.
27 142 714 Year of the Depend Adult Undergarment Kate Gompert;Poor Tony Krause Kate Gompert right after Poor Tony snatched her purse.
27 143 716 Year of the Depend Adult Undergarment Randy Lenz Lenz, high on coke, plans to rob the "oriental women".
27 144 719 Year of the Depend Adult Undergarment The plan of Les Assassins des Fauteuil Rollents.
27 145 719 Year of the Depend Adult Undergarment Poor Tony Krause;Ruth van Cleve Poor Tony running from Ruth van Cleve.
27 146 721 Year of the Depend Adult Undergarment M. Fortier AFR's USA cell's leader, M. Fortier: how the AFR found the Entertainment at the Antitois' shop.
27 147 723 Year of the Depend Adult Undergarment M. Fortier M. Fortier enjoys the USA's condescension toward the wheelchaired.
27 148 723 Year of the Depend Adult Undergarment Joelle Van Dyne;Molly Nitkin Joelle worries about her teeth.
27 149 724 Year of the Depend Adult Undergarment The Wheelchair Assassins discover the samizdat “Entertainment”.
27 150 728 Year of the Depend Adult Undergarment Randy Lenz Lenz in a back alley after robbing the Asian women.
27 151 729 Year of the Depend Adult Undergarment Remy Marathe Maranthe at Ennet House.
27 152 736 Year of the Depend Adult Undergarment Joelle Van Dyne Joelle cleaning her room. How Joelle and Himself became close. Descriptions of “Prenuptual Agreement of Heaven and Hell” and “The Medusa vs. The Odalisque”. Thanksgiving dinner at the Incandenza house.
27 153 747 Year of the Depend Adult Undergarment Remy Marathe Maranthe's entry interview (with Pat Montesian) at Ennet House.
27 154 751 Year of the Depend Adult Undergarment Joelle Van Dyne Joelle cleaning.
27 155 752 Year of the Depend Adult Undergarment Remy Marathe;Pat Montesian Maranthe's entry interview (with Pat Montesian) at Ennet House continued.
27 156 755 Year of the Depend Adult Undergarment 11/11 Mario Incandenza;Avril Incandenza;LaMont Chu Mario filming for his documentary. Interviews Felicity Zweig, LaMont Chu, and then the Moms. He asks her,"How can tell if somebody's sad?"
27 157 769 Year of the Depend Adult Undergarment Mario Incandenza;Hal Incandenza Mario and Hal talk in their room. Hal describes how Pemulis talked his way out of the urine test.
27 158 775 Year of the Depend Adult Undergarment Remy Marathe;Kate Gompert Maranthe and Kate Gompert meet in a bar.
27 159 782 Year of the Depend Adult Undergarment Remy Marathe;Hal Incandenza Mario tells Hal that he seems sad.
27 160 785 Year of the Depend Adult Undergarment 11/17 Hal Incandenza Johnette lets an upscale kid (Hal) into Ennet House.
27 161 787 (unspecified) Footnote 324.
27 162 787 Year of the Depend Adult Undergarment Molly Nitkin;Rodney Tine Jr. Results of Rodney Tine Jr.'s interrogation of Molly Notkin. Description of Thanksgiving dinner at Joelle's parents house, YTMP.
27 163 795 (unspecified) Footnote 332.
27 164 795 Year of the Depend Adult Undergarment Hal Incandenza Hal at what he thinks is a meeting for Narcotics Anonymous. Turns out the meeting focuses on the Inner Infant, and one of the speakers is Kevin Bain, Orin's friend Marlon's brother.
28 165 809 Year of the Depend Adult Undergarment Don Gately;Tiny Ewell;Joelle Van Dyne;Pat Montesian Gately in the hospital. Interactions with Tiny Ewell, Joelle, Pat Montesian and Calvin Thrust.
28 166 827 Year of the Depend Adult Undergarment Don Gately Gately in the hospital. The Wraith. Gately remembers the MP that used to live with his mother.
28 167 845 Year of the Depend Adult Undergarment 11/16 The AFR's plan to replace the Quebecois tennis players en route to ETA.
28 168 846 Year of the Depend Adult Undergarment Don Gately Gately in the hospital: His memories of Mrs. Waite and his vision of Joelle as death.
28 169 851 Year of the Depend Adult Undergarment 11/20 Hal Incandenza Hal narrates: he wakes up after a bad dream.
28 170 854 Year of the Depend Adult Undergarment Don Gately;Joelle Van Dyne Gately in the hospital: Joelle visits him.
28 171 864 Year of the Depend Adult Undergarment Ortho "The Darkness" Stice Hal narrates: Ortho "The Darkness" Stice with his forehead stuck to a window in the dorm's hallway. Late introduction of Kenkle and Brandt, ETA janitorial staff.
28 172 876 Year of the Depend Adult Undergarment 11/20 Rodney Tine Sr. Meeting between Rodney Tine, Sr. (and staff) with Glad regarding Year of Glad and "Fully Functional Phil" the prancing ass.
28 173 883 Year of the Depend Adult Undergarment Don Gately Gately in the hospital” Memories of "Nom" from "Cheers!". Ferocious Francis visits. More about Gatley's past: how he started crewing.
28 174 896 Year of the Depend Adult Undergarment Hal Incandenza Hal narrates: in his room, he lies down and is unable to get up.
28 175 902 Year of the Depend Adult Undergarment Don Gately Gately in the hospital: the history of his substance abuse.
28 176 906 Year of the Depend Adult Undergarment Hal Incandenza;Michael Pemulis Hal narrates: he talks with Pemulis then watches part of his father's film “Good-Looking Men in Small Clever Rooms That Utilize Every Centimeter of Available Space with Mind-Boggling Efficiency”.
28 177 911 Year of the Depend Adult Undergarment Don Gately Gately in the hospital: remembers working for Willie Sorkin with Gene Fackelmann.
28 178 916 Year of the Depend Adult Undergarment Michael Pemulis Pemulis finds several drop-ceiling panels on the floor of subdorm B. He's looking for an old sneaker behind the relevant panel.
28 179 916 Year of the Depend Adult Undergarment Don Gately Gately in the hospital: memories of Gene Fackelmann. His ex-girlfriend Pamela Hoffman-Jeep. His dream about a kid and Joelle in a graveyard… "Too Late".
28 180 934 Year of the Depend Adult Undergarment Joelle Van Dyne Joelle is apprehended.
28 181 934 Year of the Depend Adult Undergarment Don Gately Gately in the hospital: remembers getting high with Gene on the drugs Gene bought with stolen money.
28 182 938 Year of the Depend Adult Undergarment Joelle Van Dyne;Hugh/Helen Steeply Joelle being interviewed by Helen Steeply.
28 183 941 Year of the Depend Adult Undergarment Hal Incandenza;Mario Incandenza Hal narrates: Mario and Kyle Dempy Coyle are also watching one of Himself's films. Explanation of what happened to Stice. Description of “Accomplice!”
28 184 958 Year of the Depend Adult Undergarment Joelle Van Dyne Joelle returns to Ennett House, sees a police car stationed outside.
28 185 958 Year of the Depend Adult Undergarment Mikey, a "sick fuck", tells his story at an AA meeting.
28 186 960 Year of the Depend Adult Undergarment Pat Montesian An ADA talks with Pat Montesian about the Ninth Step. He needs to Gately to forgive him.
28 187 964 Year of the Depend Adult Undergarment 11/20 Immediately pre-Fundraiser Exhibition Fête. Narrated by an unnamed ETA student.
28 188 971 Year of the Depend Adult Undergarment Orin Incandenza Orin in a huge inverted glass, interrogation by Luria P------
28 189 972 Year of the Depend Adult Undergarment Don Gately Gately in the hospital: after the drug binge, Bobby C arrives to punish Gene Fackelman.
// Dimensions.
const DIMENSIONS = getWindowDimensions();
const WIDTH = DIMENSIONS.width;
const HEIGHT = DIMENSIONS.height - 100;
// Padding.
const INSETS = {'left': 200, 'right': 200, 'top': 0, 'bottom': 60};
// Tick length.
const TICK_LENGTH = 7;
// Max label length.
const MAX_LABEL_LENGTH = 35;
// Radius highlight factor.
const RADIUS_HIGHLIGHT_FACTOR = 1.5;
// Years.
const YEARS = [
"(unspecified)",
"1960",
"1963",
"Year of the Whopper",
"Year of the Tucks Medicated Pad",
"Year of the Trial-Size Dove Bar",
"Year of the Perdue Wonderchicken",
"Year of the Whisper-Quiet Maytag Dishmaster",
"Year of the Yushityu 2007 Mimetic-Resolution-Cartridge-View-Motherboard-Easy-To-Install-Upgrade For Infernatron/InterLace TP Systems For Home, Office, Or Mobile (sic)",
"Year of Dairy Products from the American Heartland",
"Year of the Depend Adult Undergarment",
"Year of Glad"
];
// Months.
const MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
const CHARACTERS = {
'INCANDENZA FAMILY': [
'Avril Incandenza',
'Hal Incandenza',
'James Orin Incandenza',
'Orin Incandenza',
'Mario Incandenza'
],
'ENFIELD TENNIS ACADEMY': [
'Ann Kittenplan',
'Aubrey DeLint',
'Charles Tavis',
'Clenette Henderson',
'Eliot Kornspan',
'Evan Ingersoll',
'Gerhardt Schtitt',
'Graham Rader',
'Idris Arslanian',
'J. J. Penn',
'Jim Struck Jr.',
'Jim Troeltsch',
'John "No Relation" Wayne',
'Josh Gopnik',
'Keiran McKenna',
'Keith "The Viking" Freer',
'Kent Blott',
'LaMont Chu',
'Lyle',
'Marlon Bain',
'Mary Esther Thode',
'Michael Pemulis',
'Ortho "The Darkness" Stice',
'Otis P. Lord',
'Ted Schacht',
'Timmy "Sleepy TP" Peterson',
'Tiny Ewell',
'Todd "Postal Weight" Poselthwaite',
'Trevor "The Axehandle" Axford',
'"Lateral" Alice Moore',
'"USS" Millicent Kent'
],
'ENNET HOUSE': [
'Bruce Green',
'Charlotte Treat',
'Don Gately',
'Geoffrey Day',
'Joelle Van Dyne',
'Kate Gompert',
'Ken Erdedy',
'Pat Montesian',
'Randy Lenz',
'Ruth van Cleve'
],
'OTHER': [
'Hugh/Helen Steeply',
'M. Fortier',
'Madame Psychosis',
'Matty Pemulis',
'Medical Attache',
'Mildred Bonk',
'Molly Nitkin',
'Poor Tony Krause',
'Remy Marathe',
'Rodney Tine Jr.',
'Rodney Tine Sr.',
'Wardine']
};
// Chapters.
var chapters = [];
// Characters.
var characters = [];
// Maps characters to their categories.
var categoryMap = {};
// Legend entries.
var legendEntries = [];
// Scales.
var scales = [];
// Circle glyph sets.
var sceneCircles;
var legendText;
// Scene glyph radius.
var radius;
// Visualize when document has loaded.
window.onload = function() {
// Read the data set.
d3.csv("infinite-jest.csv", function(d) {
visualize(parseData(d));
});
};
// Process the data set.
function parseData(data) {
// Calendar values.
var year = 2004;
var daysPerYear = 366.0;
var mSecPerDay = 86400000;
var undefDay = 0;
var jan1st = new Date(year, 0, 1);
// Create year map.
var yearMap = {};
for (var i = 0;
i < YEARS.length;
i++) {
yearMap[YEARS[i]] = i;
}
// Create character array.
var cat = 0;
for (var group in CHARACTERS) {
// Append to characters list.
var groupCharacters = CHARACTERS[group];
characters.push.apply(characters, groupCharacters);
// Add legend entries.
legendEntries.push(null);
legendEntries.push(group);
legendEntries.push.apply(legendEntries, groupCharacters);
// Build categories map.
categoryMap[group] = cat;
for (var g = 0; g < groupCharacters.length; g++) {
var character = groupCharacters[g];
categoryMap[character] = cat;
}
cat++;
}
// Initialize chapter index.
var chapter = {"index": 0};
// Process each row.
for (var r = 0;
r < data.length;
r++) {
var row = data[r];
// Process each column.
for (var prop in row) {
// Parse numbers.
var value = row[prop].trim();
if (!isNaN(value) && value.length > 0) {
row[prop] = parseFloat(value);
}
}
// Look up year.
if (row.Year in yearMap) {
row.YearNumber = yearMap[row.Year];
}
// Day of year.
var doy = row.MonthDay.split('/', 2);
row.DayOfYear =
(doy.length == 2 ? Math.ceil((new Date(year, doy[0] - 1, doy[1]) - jan1st) / mSecPerDay) : undefDay)
/ (daysPerYear - 1);
if (row.DayName.length == 0 && doy.length == 2) {
row.DayName = MONTHS[doy[0] - 1] + " " + doy[1];
}
// Chapter bounds.
if (row.Chapter != chapter.index) {
chapter = {"index": row.Chapter, "start": row.Scene, "end": row.Scene};
chapters.push(chapter);
}
else {
chapter.end = row.Scene;
}
// Characters.
row.present = row.CharactersPresent.split(';');
if (row.present.length == 1 && row.present[0].length == 0) {
row.present = [];
}
// Check characters are known.
// for (var j = 0; j < row.present.length; j++) {
//
// if (characters.indexOf(row.present[j]) < 0) {
//
// console.log("Unknown character " + row.present[j]);
// }
// }
}
return data;
}
// Create the visualization.
function visualize(data) {
// Scene range.
var sceneMin = d3.min(data,
function(d) {
return d.Scene;
});
var sceneMax = d3.max(data,
function(d) {
return d.Scene;
});
// Radius.
radius = (WIDTH - INSETS.left - INSETS.right) / (sceneMax - sceneMin) / 2;
// Calculate scales.
scales.scenes = d3.scale.linear()
.domain([sceneMin, sceneMax])
.range([INSETS.left + radius, WIDTH - INSETS.right - radius]);
scales.years = d3.scale.linear()
.domain([0, YEARS.length])
.range([HEIGHT - INSETS.bottom - radius, radius + INSETS.top]);
scales.legend = d3.scale.linear()
.domain([0, legendEntries.length - 1])
.range([radius + INSETS.top, HEIGHT - INSETS.bottom - radius]);
scales.categories = d3.scale.category10();
// Root panel.
var vis = d3.select("#chart")
.append("svg:svg")
.attr("width", WIDTH)
.attr("height", HEIGHT);
// Year tick-lines.
vis.selectAll("line.year")
.data(scales.years.ticks(YEARS.length))
.enter()
.append("svg:line")
.attr("class", "tickLine year")
.attr("x1", scales.scenes(sceneMin))
.attr("x2", scales.scenes(sceneMax))
.attr("y1", function (d) {
return scales.years(d);
})
.attr("y2", function (d) {
return scales.years(d);
})
.style("visibility", function(d) {
var label = YEARS[d];
return isUndefined(label) ? "hidden" : "visible";
});
// Year tick labels.
vis.selectAll("text.rule.year")
.data(scales.years.ticks(YEARS.length))
.enter()
.append("svg:text")
.attr("class", "rule year")
.attr("x", INSETS.left)
.attr("y", function (d) {
return scales.years(d);
})
.attr("dy", "0.35em")
.attr("text-anchor", "end")
.text(function(d) {
var label = YEARS[d];
var len = typeof label === 'undefined' ? 0 : label.length;
if (len > MAX_LABEL_LENGTH + 5) {
var delLen = len - MAX_LABEL_LENGTH;
label = label.replace(label.substring((len - delLen) / 2, (len + delLen) / 2), " ... ");
}
return typeof label === 'undefined' ? "" : label;
});
// Chapter ticks.
vis.selectAll("line.chapter")
.data(chapters)
.enter()
.append("svg:line")
.attr("class", "tickLine chapter")
.attr("x1", function(d) {
return scales.scenes(d.start);
})
.attr("x2", function(d) {
return scales.scenes(d.start);
})
.attr("y2", function () {
return scales.years(0);
})
.attr("y1", function (d, i) {
return scales.years(0) + (isMajorChapterTickMark(i) ? 2.0 * TICK_LENGTH : TICK_LENGTH);
});
// Chapter tick labels.
vis.selectAll("text.rule.chapter")
.data(chapters)
.enter()
.append("svg:text")
.attr("class", "rule chapter")
.attr("x", function(d) {
return scales.scenes(d.start);
})
.attr("y", function () {
return HEIGHT;
})
.attr("dy", "-4.0em")
.attr("text-anchor", "middle")
.text(function(d, i) {
return isMajorChapterTickMark(i) ? "Ch. " + d.index : null;
});
// Scene circles.
sceneCircles = vis.selectAll("circle")
.data(data)
.enter()
.append("svg:circle")
.attr("cy", function(d) {
return scales.years(d.YearNumber + d.DayOfYear);
})
.attr("cx", function(d) {
return scales.scenes(d.Scene);
})
.attr("r", radius)
.on("mouseover", function(d) {
showInfoBox(d);
highlight(this, d.present.length > 0 ? scales.categories(categoryMap[d.present[0]]) : null);
highlightLegend(d.present)
})
.on("mouseout", function() {
hideInfoBox();
unHighlight()
});
// Character legend.
var legendX = WIDTH - INSETS.right + radius;
legendText = vis.selectAll("text.character")
.data(legendEntries)
.enter()
.append("svg:text")
.attr("x", legendX)
.attr("dx", "0.35em")
.attr("dy", "0.35em")
.attr("y", function (d, i) {
return scales.legend(i);
})
.text(function(d) {
return d;
})
.on("mouseover", function(d) {
var chars = d in CHARACTERS ? CHARACTERS[d] : [];
chars.push(d);
highlightLegend(chars);
highlightScenes(chars);
})
.on("mouseout", function() {
unHighlight();
});
}
// Highlight characters in the legend
function highlightLegend(characters) {
// List of nodes to highlight.
var highlights = [];
legendText
.each(function(d) {
if (characters.indexOf(d) >= 0) {
highlights.push(this);
}
});
// Apply highlighting.
d3.selectAll(highlights)
.style("fill", function(d) {
return scales.categories(categoryMap[d]);
})
.attr("class", function() {
return "highlight";
});
}
// Highlight character in the scenes.
function highlightScenes(characters) {
// List of nodes to highlight.
var highlights = [];
sceneCircles
.each(function(d) {
var present = false;
for (var c = 0; !present && c < characters.length; c++) {
present = d.present.indexOf(characters[c]) >= 0;
}
if (present) {
highlights.push(this);
}
});
// Apply highlighting.
d3.selectAll(highlights)
.style("fill", function() {
return scales.categories(categoryMap[characters[0]]);
})
.attr("r", function() {
return radius * RADIUS_HIGHLIGHT_FACTOR;
})
.attr("class", function() {
return "highlight";
});
}
// Highlight an element.
function highlight(obj, color) {
d3.select(obj)
.attr("r", radius * RADIUS_HIGHLIGHT_FACTOR)
.attr("class", "highlight")
.style("fill", color);
}
// Remove highlights.
function unHighlight() {
legendText
.attr("class", "")
.style("fill", null);
sceneCircles
.attr("r", radius)
.attr("class", "")
.style("fill", null);
}
// Display the info box.
function showInfoBox(d) {
// Create text strings.
var date = (d.DayName.length > 0 ? (d.DayName + ", ") : "") + d.Year;
// Display the box.
d3.select("#infobox")
.attr("class", "text")
.style('left', INSETS.left + "px")
.style('top', HEIGHT + "px")
.style('width', (WIDTH - INSETS.left - INSETS.right) + "px")
.style('display', 'inline')
.html("Ch. " + d.Chapter + " (scene " + d.Scene + "; page " + d.Page + ") &mdash; " + date + "<br/>"
+ "<blockquote>" + d.Synopsis + "</blockquote>");
}
// Hide the info box.
function hideInfoBox() {
d3.select("#infobox")
.style('display', 'none');
}
// Is this a major tick mark?
function isMajorChapterTickMark(i) {
// Is first, last or divisible by five.
return i == 0 || i + 1 == chapters.length || (i + 1) % 5 == 0;
}
// Tests whether a value is defined.
function isUndefined(value) {
return typeof value === 'undefined';
}
// Gets the window dimensions.
function getWindowDimensions() {
var width = 630;
var height = 460;
if (document.body && document.body.offsetWidth) {
width = document.body.offsetWidth;
height = document.body.offsetHeight;
}
if (document.compatMode == 'CSS1Compat' && document.documentElement && document.documentElement.offsetWidth) {
width = document.documentElement.offsetWidth;
height = document.documentElement.offsetHeight;
}
if (window.innerWidth && window.innerHeight) {
width = window.innerWidth;
height = window.innerHeight;
}
return {'width': width, 'height': height};
}
body {
margin: 0;
padding: 0;
background-color: #ffffff;
font-family: sans-serif;
font-size: 12px;
color: #666666;
overflow: hidden;
}
a {
color: #003399;
cursor: pointer;
text-decoration: none;
}
a.active {
color: #6699ff;
}
circle {
fill: #999999;
}
.highlight {
font-weight: bold;
}
line.tickLine {
stroke: #999999;
}
text {
font-family: sans-serif;
font-size: 9px;
fill: #999999;
}
#infobox {
position: absolute;
height: auto;
padding: 8px;
display: none;
background: #eeeeee;
color: #333333;
font-family: sans-serif;
font-size: 11px;
}
.title {
color: #000000;
font-weight: bold;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment