[New Plugin] Expanded Ancestor Tree: Smart routing, siblings, and cousins

Hello everyone,

I recently ran into a limitation while generating my family trees in Gramps. I really needed a way to display siblings and cousins alongside direct ancestors, but more importantly, I wanted to see them in a very specific format and layout that just wasn’t possible with the built-in reports.

To get the exact look, structure, and readability I envisioned, I decided to modify the default Ancestor Tree report. This personal project eventually grew into a fully standalone plugin: the Expanded Ancestor Tree.

Here is how I tailored the format to solve my layout issues:

  • Siblings & Cousins Included: The tree now dynamically includes not just direct ancestors, but their siblings, spouses, cousins, and collateral descendants through recursive family branches.

  • Smart Connection Routing: Standard intersecting lines made complex trees unreadable for me, so I completely rewrote the routing system. It now uses a custom “circuit-board” style layout where collateral lines are clearly offset from the main trunk.

  • Bridged Intersections: To keep the specific format clean, whenever a collateral line has to cross the main ancestral line, it draws a small semi-circular “bridge” (jump). No more confusing overlapping lines!

  • Color-Coded Families: Added a display option to draw each family’s connecting lines with a distinct color to make branches instantly recognizable.

  • Modernized UI: I flattened the design by removing heavy drop shadows and implemented bold typography for names so they stand out clearly from dates and places.

  • Auto-Compression: The layout engine automatically compresses the tree vertically, removing the huge blank gaps when ancestors are unknown.

Screenshots:

Download & Testing:
You can download the ExpandedAncestorTree.zip from my GitHub repository here:
[ Release v1.0.0 - First Public Release · bszabi05/gramps-expanded-ancestor-tree · GitHub]

Just extract the zip into your Gramps user plugins folder and restart Gramps. It will appear under Reports → Graphical Reports → Expanded Ancestor Tree.

Since I built this to solve my own specific formatting needs, I would love to hear what the community thinks! I would really appreciate it if some of you could test it out with your own complex databases and give me some feedback.

Cheers,
Szabi (kotrabdev)

Can you add a screenshot of the diagram, please?

For me, cousins are children of Aunts and Uncles, not children of siblings.

Thank you so much for pointing this out! You are absolutely right.

English is not my native language, and I fell into a translation trap. I will immediately updatethe plugin and the GitHub repository to correct this terminology.

As requested, here is a screenshot of the diagram showing how the layout handles collateral lines:

Nice first contribution! Thanks for sharing!!!

In the attached test with the example.gramps tree, the home person was selected and the include options were all enabled. The SVG chart page was scaled to fit the tree.

The Center Person (focal person) for the test Report is in position Index 6. (The Indexing appears to number based by the position of the Index Number in the row (with each row columns left-to-right) top-to-bottom.) The Report could use an option to mark the Center Person somehow.

I think the PDF problem (where the Index 1 was hidden in the margins) is related to the PDF plugin rather than the Report.
sample.pdf (21.4 KB)

In the Report output, I see the Siblings, Parents, Piblings (parent siblings), and grandparents of the center person.

I do not see: Spouses, Children, Pibling spouses or niblings (nieces and nephews), 1st Cousins (nor their spouses or children), great-piblings.

Here’s his 2-way fan chart:

And his FamilyTreeView (addon Graphs view mode):

Since there is not enough Ancestral breadth for the Home Person to exercise this report, re-tested with Grand-daughter (Яковлев, Esther Faye, index 2) as the center person:

Thank you very much for the detailed testing and feedback!
You are right, displaying the spouse of the center person is not yet implemented, which is why they dont show up.
Center Person Highlighting is a great suggestion, I will make also a note for it with the previus.

Really nice addition, thanks a lot! :clap:

Expanded Ancestor Tree v1.0.2

Hello everyone!

If you have ever stared at a standard family tree report in Gramps and felt frustrated by how disconnected or overwhelmingly cluttered it becomes when trying to map out a whole family network, I have great news for you. Today, I am thrilled to officially announce the release of Expanded Ancestor Tree v1.0.2!

This is a heavily enhanced, performance-tuned fork of the built-in Ancestor Tree report, completely re-engineered from the ground up to let you visualize collateral family lines smoothly without losing your sanity—or your screen space.

Why We Needed This?

We have all been there. You build a deep genealogical database, but when you want to showcase your ancestors alongside their siblings, spouses, and cousins, traditional reports either leave them out entirely or turn into an absolute spaghetti monster of overlapping lines.

Standard routing algorithms intersect lines blindly, heavy drop shadows muddy up the typography, and missing ancestor gaps create massive, ugly holes in your layout. I set out to solve these exact pain points. I wanted a tree that looks modern, respects your screen, handles deep relationships gracefully, and most importantly, tells the full story of a family—not just a lonely vertical line of direct ancestors.

What makes my plugin Special?

  • Siblings, Nephews, Nieces & Cousins in Harmony: It seamlessly displays not only your direct ancestors but also their siblings, spouses, nieces, nephews, and cousins (collateral relatives), so you can actually trace entire family clusters.
  • Smart Circuit-Board Routing: Say goodbye to chaotic intersections. The plugin uses a custom routing system that neatly offsets collateral family lines from the main ancestral trunk.
  • Bridged Intersections: When a collateral line does cross the main path, the engine automatically draws a small, clean semi-circular “bridge” (jump), making complex multi-branch trees instantly readable.
  • Vibrant Family Color-Coding: Turn on the optional setting to generate distinct connection lines for each separate family group, making family groupings pop visually.
  • Clean, Modern “Flat” Design: Heavy, outdated drop shadows have been stripped away for a crisp modern look, and personal names are dynamically rendered in bold so they instantly stand out from dates and locations.
  • Aggressive Auto-Compression: The layout engine automatically compresses vertical space to eliminate the massive, annoying gaps typically left behind by unknown ancestors.

How to Install & Test It

Getting this onto your Gramps instance takes just a few seconds using the Addon Manager:

  1. Open Gramps and go to EditAddon Manager.

  2. Switch over to the Projects tab.

  3. Add and select the following project name and URL:

Project name: Szabi
https://raw.githubusercontent.com/bszabi05/gramps-expanded-ancestor-tree/addon-manager/gramps60

Also compatible with the Gramps 5.2 and 6.1 Addon Manager versions. Substitute your version number at the end of the URL.

  1. Click Refresh.

  2. Search for Expanded Ancestor Tree under the Reports category and click Install.

  3. Restart Gramps, head over to Reports → Graphical Reports → Ancestor Tree Expanded, and generate your new family masterpiece!

Pro Tip for the Best Quality: When generating your report, I highly recommend saving the output in SVG format. Since it is a scalable vector graphic, you can zoom in infinitely on massive, complex trees without any of the text or lines losing their crispness and readability!

Give it a spin with your own trees, test out the new collateral filters, and let me know how it performs for you. Happy branching!

sample.pdf (54.2 KB)

This Report really helps to illustrate the branches adjacent to the direct ancestors and descendants.

Thank you for sharing!!

Testing failed. W11, Gramps 6.0.8. A4 horizontal, 3 generations, 3 desc. generations, empty pages with, Add private

Report

114042: ERROR: _reportdialog.py: line 800: Failed to run report.
Traceback (most recent call last):
File “C:\Program Files\GrampsAIO64-6.0.8\gramps\gui\plug\report_reportdialog.py”, line 759, in report
my_report.write_report()
~~~~~~~~~~~~~~~~~~~~~~^^
File “C:\Users\pekka\AppData\Roaming\gramps\gramps60\plugins\ExpandedAncestorTree\ExpandedAncestorTree.py”, line 922, in write_report
self.canvas.paginate(colsperpage, one_page)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Program Files\GrampsAIO64-6.0.8\gramps\plugins\lib\libtreebase.py”, line 566, in paginate
self.__paginate(colsperpage)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File “C:\Program Files\GrampsAIO64-6.0.8\gramps\plugins\lib\libtreebase.py”, line 544, in __paginate
page_y_top = self.__paginate_y_pages(colsperpage, x_page_offsets)
File “C:\Program Files\GrampsAIO64-6.0.8\gramps\plugins\lib\libtreebase.py”, line 419, in __paginate_y_pages
x_page_offsets[x_page],
~~~~~~~~~~~~~~^^^^^^^^
KeyError: -1

​This will be fixed in the next patch! Thanks again for your help in catching this edge case.