Ever finish a book and forget who everyone was? These interactive maps help.
Interactive network visualizations of character relationships across different stories. Select a book below to explore character connections, track relationships through chapters, and visualize the narrative structure. Play with it. Adjust it to suit. Save your changes, load your changes.
The easiest way to create a book template is ask you favorite AI to populate the schema (json) documented below. Then take creative control of the layout. You can drag and drop characters, double-clicking to release them, or use 'recenter' to start over.
Capture the diagram and save your edited JSON when ready.
Use 0 in the chapter array to make nodes/links part of the master layout (Chapter 0 is the title).
For evolving relationships, assign specific chapter numbers instead of 0. Nodes and links will only appear when their chapter data matches. Removing 0 makes them disappear entirely."
For portability, efficiency and future feature compatibility the visualizer uses JSON files with this structure: Many of the diagrams were created by first populating this file with AI then manually positioning the nodes to a users liking. Chapter 0 is the Book title and may have main characters associated with it. (Those on the illustrated cover for example). This allows characters and relationships to evolve through chapters by having both characters and links vary by chapter. The View button allow seeing all nodes either at once or by chapter. Leave a comment using the feedback button.
{
"nodes": [
{
"id": "Alice",
"title": "Alice Cooper",
"group": 0,
"notes": "Godfather of shock rock",
"chapters": [0,1,2]
},
{
"id": "Bob",
"title": "Bob Ezrin",
"group": 1,
"notes": "Sent to get Rid of Alice Cooper.",
"chapters": [0,1,2]
}
],
"links": [
{
"source": "Alice",
"target": "Bob",
"relationship": "Singer",
"bondlevel": 5,
"linkchapters": [0]
},
{
"source": "Alice",
"target": "Bob",
"relationship": "Producer",
"bondlevel": 5,
"linkchapters": [0]
}
],
"chapters": [
{
"number": 0,
"title": "Beginning"
}
],
"groups": [
{
"number": 0,
"name": "Performer",
"description": "Concert and Recording Artist"
},
{
"number": 1,
"name": "Manager",
"description": "Producer"
}
]
}
Generate a JSON graph dataset for the book using the schema below. Save the file as YourBookName.json. If the output is generated in another file format, rename it with a .json extension. If the resulting graph appears too sparse, ask the AI to generate additional nodes and relationships to create a richer, more connected dataset.
RULESNodes represent characters, creatures, places, organizations, or important concepts.
Links represent relationships between nodes.
Chapters use indexed numbering: Chapter numbers must be sequential graph indexes. Do not use original printed chapter numbers.
Remap source chapters into continuous numbering beginning at 1.
Changes Conversion to chapter Array for Nodes and Links. Forwards compatible change.
Changes Better text fit for Elipses Better for large books better for printing. Forwards compatible change.
Credit to d3js for the original idea.