Twigs
Short notes on how TreeLine works — written for the curious, shown where they are most useful.
Arrangement
Why larger TreeLines take longer
Arranging a TreeLine means solving a placement puzzle — finding the best position for every person across every generation. Larger families have many more possible arrangements to consider, so the process takes proportionally longer.
How TreeLine arranges your family
TreeLine places each person in a row according to their generation, then optimises the overall layout to minimise visual crossings and maximise clarity. The result is a chart that reads naturally from left to right through time.
Why some branches fold back
When a family has complex inter-relationships — cousins who married, or families connected across multiple lines — TreeLine sometimes folds a branch back to keep the chart readable. This is a deliberate layout choice, not an error.
Selecting people for row dragging
Click a person to select them. **Shift + click** selects all descendants. **Alt + Shift + click** selects all ancestors. **Ctrl + Shift** toggles a person and their descendants; **Ctrl + Shift + Alt** toggles ancestors. Hover over a selected person and drag to move all selected rows together. Press **Ctrl + Z** to undo, or **Escape** to clear the selection.
How dates place people in time
TreeLine uses **birth dates** to position each person horizontally on the timeline. More complete dates produce more accurate placement — and a more meaningful chart.
Clarity & Simplification
Why simplifying can improve clarity
A chart with every person visible is not always the most readable chart. Pruning lets you focus on the people and lines that matter most, making the resulting TreeLine easier to read and more meaningful to share.
Branches view
Colours every person by their relationship to the **mainline** — the direct path connecting your protagonists plus all their ancestors. **Mainline** people are highlighted in one colour, **immediate** family (spouses and siblings of the mainline) in another, and each **branch** gets its own colour. A badge on each bar shows the separation distance and generation number.
Separation view
Shows how many family-link steps each person is from the **mainline**. Mainline people are distance 0, their spouses and siblings are 1, and each further step outward adds another degree. Bars fade in opacity the further they are from the mainline, making it easy to spot distant relatives at a glance.
Mainline only
Hides everyone who is not on the **mainline** — the direct ancestral path connecting your protagonists. Spouses, siblings, and all branches are temporarily hidden so you can focus on the core lineage. Switch back to Standard view to restore everyone.
Show hidden people
Reveals people you have previously hidden or pruned. They appear as **greyed-out ghost bars** so you can distinguish them from visible people. Right-click a hidden person to unhide them, or use **Reset → Show all** to restore everyone at once.
Errors view
Highlights people who have **data quality issues** — such as impossible dates, implausible ages, or disconnected records. Errors are shown in red, warnings in amber, and informational notes in blue. Click an issue in the legend to select the affected people.
Generations view
Colours every person by their **generation number**. Generation 1 is the earliest ancestor; each child generation increments by one. Spouses share the same generation as their partner. Adjacent generations use contrasting colours so they are easy to distinguish at a glance.
What makes a TreeLine feel balanced
A balanced TreeLine distributes branches evenly, avoids long stretches of empty space, and keeps connectors short and unambiguous. Balance is part aesthetic, part mathematical — TreeLine optimises for both.
Why photos can affect your layout
Photos change the height of person bars, which affects row spacing and overall chart dimensions. A chart with many photos will be taller and may arrange differently to one without.
Rendering & Output
Why rendering happens in stages
TreeLine separates arrangement from rendering so that style changes — colours, paper size, fonts — can be applied instantly without repeating the expensive layout calculation.
Why your TreeLine may be queued
TreeLine processes charts one at a time per worker. During busy periods, your chart waits briefly in a queue before arrangement begins. Larger charts have their own queue to ensure smaller charts are never delayed by them.