惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Schneier on Security
Cisco Talos Blog
Cisco Talos Blog
T
ThreatConnect
J
Java Code Geeks
博客园 - 司徒正美
A
Arctic Wolf
T
True Tiger Recordings
C
Cybersecurity and Infrastructure Security Agency CISA
Cyberwarzone
Cyberwarzone
Know Your Adversary
Know Your Adversary
T
Threat Research - Cisco Blogs
V
Vulnerabilities – Threatpost
Recorded Future
Recorded Future
P
Palo Alto Networks Blog
The Hacker News
The Hacker News
The Register - Security
The Register - Security
S
Securelist
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
I
Intezer
P
Privacy & Cybersecurity Law Blog
Scott Helme
Scott Helme
K
Kaspersky official blog
博客园 - 聂微东
Last Week in AI
Last Week in AI
V
V2EX
小众软件
小众软件
F
Fox-IT International blog
Martin Fowler
Martin Fowler
Apple Machine Learning Research
Apple Machine Learning Research
T
Tenable Blog
F
Future of Privacy Forum
Microsoft Security Blog
Microsoft Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog
阮一峰的网络日志
阮一峰的网络日志
GbyAI
GbyAI
T
Threatpost
I
InfoQ
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Tor Project blog
G
GRAHAM CLULEY
D
DataBreaches.Net

Hacker News: Show HN

Show HN: Feynman AI research Assistant plugin for Obsidian Show HN: SynapCores – AI-native database (vector, graph, SQL, AutoML, LLM) GitHub - Noumenon-ai/AutoMaxFix: Controlled AI repair loop. Audit → Reproduce → Patch → Test → Report. Safety boundaries most AI agents skip. Show HN: Plonk – Spotlight Search style Python interpreter Open Satchel — A free local-first PDF editor. Show HN: Hackobar – One feed for AI news Show HN: GhostChat – A 10KB privacy-first live chat widget (open source) Show HN: TiltBump, a mobile web game controlled by phone tilt Show HN: A tool to replace x.com with tweet.md for X threads as Markdown Show HN: Symbol Combos Copy and Paste Show HN: JustBookmarks – a simple browser-independent bookmark manager SailWP. WordPress without the weight. Show HN: Widget Cast – Video Widgets for iOS PhoneDiffusion App - App Store Show HN: NanoApps: Run custom homebrew apps on iPod nano 7th generation Breadboard Knockout GitHub - elixir-volt/volt: Elixir-native frontend build tool — dev server, HMR, and production builds for JavaScript, TypeScript, Vue SFCs, and CSS. No Node.js required. Show HN: GuideOS – A radar-first, off-grid navigation kernel for edge robotics State lives on disk, not in chat Show HN: My biggest solo-project: Game engine with its own programming language MarketChacha | Stock Trading Community for Real Market Discussion GitHub - dmitryAQA/playwright-bdr-template Kubernetes, explained — interactive walkthroughs Show HN: Proj – organize your coding projects with categories and one-key CD Show HN: I made a compiler/VM for untrusted scripts Show HN: Stumpy – StumbleUpon Re-Created Show HN: Reward Is Not Reinforcement Until Admitted GitHub - dominikhei/cardamon: Cardamon is a cleanup tool for Prometheus that collects unused metrics from Grafana and Prometheus and generates drop statements for them. GitHub - NavodPeiris/grizzlars: High-performance DataFrame library written in C++ with Python bindings. Peakedin - LinkedIn's finest moments, curated weekly Planetensuche GitHub - cnemri/awesome-gemini-omni: A curated list of awesome Google Gemini Omni prompt guides, interactive platforms, and creative showcases. Show HN: An open-source, interactive AI engineering syllabus (1,100 papers) Show HN: I Built a Debugging Challenge for the AI Coding Age HTML Deployer: 1-Click AI Code To Website Publisher - Chrome 应用商店 GitHub - alkait/WhatsKept: Searchable, agent-queryable WhatsApp history from an iOS backup — a single Go binary. Geomatic | Tiny Volt Show HN: SenseCollect – Web data extraction made simple GitHub - feers77/iasql: A new implementation of SQL for IA purposes, using postgresSQL and Karpathy wiki-llm as inspiration. Kubernetes Study Path — From kubectl to a Production Cluster GitHub - octelium/cordium: Open-source sandbox platform with identity-based secretless infrastructure access for developers and AI agents on Kubernetes Play Doom with friends in your browser. You decide when you receive ForwardPass! (experimental) GitHub - jacksonsolid/Bytery fx.leftium.com GitHub - skorotkiewicz/cadence: $$hi Small marker tracking for source files. GitHub - nikitph/yieldos Show HN: Live AI music sequencing agent SaveNeighbor | Local help from people you trust drea: podcast ad blocker App - App Store JS Crossword GitHub - jake-stewart/tuie: A rich, performant TUI library for Rust. GitHub - AlexWasHeree/NoteCast: Local note engine that uses LLM to build and evolve a knowledge graph stocks.sjer.red — long PC parts RocketGraph — Never look at logs again Show HN: Replacing a 3.4MB video with 40kb of GSAP Show HN: Lightweight, OpenSource, zero-dependency App tour & user onboarding SDK Treasury — Personal Finance App | AI Insights & Budgeting Show HN: MailMark – Cold email tool where you own your domain and mailboxes Voxxy: Voice to Text for your Mac Menu Bar Show HN: I built a TikTok style video debate app GitHub - acatovic/ai-game-studio: AI generation of 2d game assets such as spritesheets Assemblr GitHub - AlexMason/worldnotes: Extensible inline-markdown editor with wiki-style navigation Show HN: Brew-browser – A native macOS GUI for Homebrew GitHub - aloth/cred-1: CRED-1: An Open Multi-Signal Domain Credibility Dataset (2,672 domains) Show HN: TalkTimer, a micro-SaaS run by an AI agent team Trickster's Table invest-like - AI value-investing: best-tier consensus beat S&P 500 by +72.7% GitHub - kimjune01/swebench-verified: Reproducible recon/craft/audit agent pipeline for SWE-bench Verified. Official-graded, codex-attested, GPL-3.0. Run it yourself. GitHub - mupt-ai/context-drop: cli tool to make sharing context between remote agents dead easy Multiple Real Desktops for Windows GitHub - lionello/han64: Handling Chinese text on the Commodore 64 Show HN: Strudel – Generate commit messages via Apple's on-device LLM Show HN: Audiomass – a free, open-source multitrack audio editor for the web move-reminder The Front Page HtmlUnit – Welcome to HtmlUnit GitHub - kouhxp/textsnap: Snap any image, screenshot, or webpage into plaintext. No GPU. No cloud. One command. Show HN: Pro Health Ledger – An open-source, net-neutral reputation system iPhone 版“Today” - App Store LLMRequirements.com — Hardware for Local LLMs Show HN: Hookwarden – npx tool to find and fix webhook HMAC bugs (JS/TS/Py/PHP) Frello — A small revolt against bloated software Career tools for data professionals | Datamata Studios Show HN: Kanban CLI (A local-first, agent-first task manager for the terminal) Show HN: Fleet – Python supervisor for running coding agents in parallel TravElly | A travel diary app for kids TapToyPia Show HN:An LED display app that lights up concerts, events, and fan moments Show HN: Logo Fonts Home | Qavvāli Wiki Show HN: Panorama – Review Code, Faster Show HN: Slow Code, a monthly meetup to practice coding by hand GitHub - abakh/nbsdgames: A package of 21 new, improved, text-based modern games. Some are entirely original ideas. Best and lightest! Let's Jam Show HN: CurRant->Screw Google scourge, help people notice what is worth a look Fruitsy Show HN: World Cup 2026 free family and friends prediction platform
GitHub - erikshelley/complete-family-tree-viewer: A webpage for viewing all of a person's family tree at once
shellerik · 2026-05-26 · via Hacker News: Show HN

Overview

This is a one-page application for viewing the complete family tree of any person in a GEDCOM file. A person's "complete family tree" includes every one of their biological relatives and all of those relatives' spouses (in-laws).

If you don't have a GEDCOM file available, you can download one of these GEDCOM sample files. Feel free to ask questions, report issues, or request new features using the issue tracker.

Complete Family Tree Viewer

Contents

  1. Features
  2. Examples
  3. Design
  4. Usage
  5. Automated Testing
  6. Attributions
  7. Similar Repositories

Features

Feature Description
GEDCOM Import Select and view a GEDCOM file from your local device.
Data Privacy No data is uploaded anywhere by this application. Processing is done in your browser.
Complete Tree Viewing View a complete family tree that has no crossing lines. Utilize stacking to minimize tree width.
Interactive Tree Viewing Zoom and pan to view the tree as you would with a map.
Customizable Tree Content Choose how many generations (unlimited), which relatives (everyone or pedigree-only), and what information (names, dates, places) to view.
Customizable Tree Layout Configure the positioning of in-laws (beside or below their spouse) and children (stackable).
Customizable Tree Styling Customize sizes, spacing, colors, highlights, and shapes to fit your needs.
PNG & SVG Exporting Save the tree as a PNG or SVG.
Serverless Hosting Save the application on your local device and run it without a web server. Simply open the HTML file in your browser.

The application does not allow you to create or edit family trees. For that, you need to use some other genealogy applications or website that allows you to export your tree as a GEDCOM file. Here are some of the most popular options:

Examples

Here are a few examples trees to demonstrate some of the program's capabilities:

Root Person People Shown Family Tree
John Fitzgerald Kennedy 202 People John Fitzgerald Kennedy
Bart Simpson 10 People Bart Simpson
Abraham Lincoln 52 People Abraham Lincoln
Johann Sebastian Bach 32 People Johann Sebastian Bach
Me 4,798 People My Family Tree

Design

The table below describes how various relationships are depicted in the family trees.

Relationship Description Example
Ancestors Ancestors are shown above their children with the father on the left and the mother on the right. This is similar to how other family tree programs work. Each generation is a different color.
In-Laws In-laws are shown in grey and connected to their spouse using a grey line. If they are the spouse of an ancestor, they are displayed to the side of the ancestor. If they are not the spouse of an ancestor, they can be placed either next to or below their spouse. Placing them below can save horizontal space and make large trees easier to view. In-Laws beside their spouses: In-laws below their spouses:
Descendants Descendants (children & siblings) are placed below their parents. The placement depends on whether the in-laws are beside or below their spouses. In-laws beside their spouses: In-laws below their spouses:
Inbreeding Sometimes people who are related have children together. In this case they have common ancestors. Rather than show the common ancestors twice, a dashed line is used to connect one of the people to their common ancestors. In the example to the right, the root person's parents are first cousins. Their father's father and their mother's father are brothers.

Levels

To avoid having lines that cross, the concept of levels is introduced. Each generation of ancestors is at the top of a level with the root person being on the bottom level (level 1). All of the descendants of the ancestor's siblings and all of thte descendants of the ancestor's in-law spouses must fit in that level and not cross into the level below.

While this prevents crossing lines, it means not all people in the same generation are on the same level. To help with this problem each generation is given a color.

In the example below, the root person and all people shaded green are in the same generation. Their relationships to root are as follows:

  • Level 1: siblings
  • Level 2: 1st cousins / half siblings
  • Level 3: 2nd cousins / half 1st cousins

Stacking

To avoid trees that are extremely wide, the concept of stacking is introduced. A person is defined as a leaf node if they have no in-law spouses and no children. Leaf nodes can be arranged in a column rather than being side-by-side. In the example to the right, notice how both siblings and spouses can be stacked. This program allows you to control the maximum stack size. A size of one means no stacking.

The example below contains the same people as the previous example in the levels section above. It takes up significantly less space.

Usage

Tree Content

Option Description
Click the Local Browse button to select and load a GEDCOM file from your computer. The people in thte GEDCOM file will be populated in the list below.
Click the Cloud Browse button to select and load a GEDCOM file from a short list of online sample files. The people in thte GEDCOM file will be populated in the list below.
Filter Type a name in this box to filter the list of people.
Select Root Person Click on a person to make the root of the tree. Their family tree will be drawn.
Generations Up Change this value to control how many generations above the root person will be displayed. Click the up arrow to use the maximum possible value for the root person.
Generations Down Change this value to control how many generations below the root person will be displayed. Click the up arrow to use the maximum possible value for the root person.
Show Childless In-Laws Click this checkbox to show in-laws who are leaf nodes.
Show Non-Pedigree Family Click this checkbox to show all people who are not direct ancestors or descendants of the root person, or spouses of the root person and their descendants.
Show Names Click this checkbox to show people's names in the tree.
Show Years of Birth / Death Click this checkbox to show people's years of birth and death in the tree.
Show Places of Birth / Death Click this checkbox to show people's places of birth and death in the tree.

Tree Styling

Overall

Option Description
Expand all tree styling sections.
Collapse all tree styling sections.

Preset

Option Description
Preset Select a preset to quickly change a number of the style settings and tree content. Use one of the five buttons below to change the presets. Your changes will only persist across sessions if you overwrite src/js/presets.js with the new file that gets downloaded after you click OK. The five buttons are only active if you load this application from a local file, not from a webserver.
Create a new preset
Save changes to the current preset
Rename the current preset
Reload the current preset
Delete the current preset

Layout

Option Description
Stack Size Change this value to control how many leaf nodes can be stacked in a single stack. Click the up arrow to use the maximum possible value for the root person.
Position In‑Laws Below Spouses Click this checkbox to position in-laws below their spouses. If it is unchecked, they will be beside their spouses.
Vertical Click this radio button to display the tree vertically
Horizontal Click this radio button to display the tree horizontally

Size

Option Description
Box X Change this value to control the width of the nodes. Click the resize icon to use the width needed to fit the text.
Box Y Change this value to control thet height of the nodes. Click the resize icon to use thhe height needed to fit the text.
Borders Change this value to control the size of the node borders.
Links Change this value to control how thick the links are between nodes.
Highlighted Links Change this value to control how thick the highlighted links are between nodes.
Font Change this value to control the size of the text in the nodes.

Spacing

Option Description
Sibling Change this value to control the horizontal space between nodes.
Generation Change this value to control the vertical space between nodes.
Level Change this value to control the vertical space between levels.
Tree Padding Change this value to control the padding around the tree.
Vertical Text Alignment Choose whether text is aligned to the Top / Middle / Bottom.

Color

Option Description
Hue Root Change this value to control the hue used for the color of the root generation.
Saturation Change this value to control how saturated the colors of the nodes are.
Brightness Change this value to control the brightness of the tree nodes and links.
Text Change this value to control how bright the text is in the nodes.
Highlighted Text Change this value to control how bright the highlighted text is in the nodes.
Text Shadow Click this checkbox to enable text shadows.
Transparent Background Click this checkbox to use a transparent background for the tree.
Background Color Click this control to choose a background color. The color will only be used if the Transparent Background checkbox is not checked.

Highlights (%)

Option Description
Special Change this value to control if the desired nodes are darker or brighter than everyone else. 0% is black, 100% is the same brightness as everyone else, and 200% is twice as bright as everyone else. Click the X icon to use 100% for no highlighting.
- None: No nodes are highlighted.
- Root: The root node is highlighted.
- Pedigree: The ancestors and descendants of root are highlighted.
- Connection: Choose a second node from the tree and the path connecting them will be highlighted.
Borders Change this value to control if the node borders are darker or brighter than the nodes. 0% is black, 100% is the same brightness as the nodes, and 200% is twice as bright as the nodes. Click the X icon to use 100% for no highlighting.
Links Change this value to control if the links are darker or brighter than the nodes. 0% is black, 100% is the same brightness as the nodes, and 200% is twice as bright as the nodes. Click the X icon to use 100% for no highlighting.
In-Law Links Change this value to control if the in-law links are darker or brighter than the nodes. 0% is black, 100% is the same brightness as the nodes, and 200% is twice as bright as the nodes. Click the X icon <img src="src/png/icons8-cancel-48-gold.png" width="18" height="18""> to use 100% for no highlighting.

Rounded Corners

Option Description
Rounding % Change this value to control how rounded the corners of the nodes are.
Rounding % Change this value to control how rounded the link paths between nodes are.

Tree Viewer

Option Description
Click this button to save the tree as a PNG or SVG. Only the visible part of the tree is saved. If you zoom in before clicking the list you will only save part of the tree. If the tree is too large to save as a PNG, it will be resized and saved at a smaller size. SVGs have no size limits.
Click the vertical resize icon to fit the tree to the height of the viewer.
Click the horizontal resize icon to fit the tree to the width of the viewer.
Click the resize icon to fit the tree to the viewer.
Zoom Zoom in on the tree as you would when using a mapping application like Google Maps (double-click, pinch, + key, - key, Esc key).
Pan Pan around a zoomed-in tree as you would when using a mapping application like Google Maps (click and drag, arrow keys).

Attributions

Two 3rd party Javascript libraries are used by this application.

The page background came from this excellent source:

The icons are from icons8 > liquid glass.

Add Browse Folder Cancel Cloud Folder Collapse

Complete Customize Drag Enlarge Expand

Filter Flow Chart Help Laptop Layout

Privacy Remove Rename Resize Resize Horizontal

Resize Vertical Save Synchronize Top Menu

Similar Repositories

Here are some similar repositories, however none of them seem to allow viewing a complete family tree.