Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
f-tree는 두 사람의 관계를 물으면 답과 관계선을 보여주는 무료 안드로이드·윈도우·리눅스 앱으로, 계정·서버 없이 기기에서만 작동합니다
Ask how any two people are related and f-tree answers, then shows you the line. Free for Android, Windows and Linux. No account, no server — your family stays on your device.
라이프스타일JavaScript · KotlinGitHub @thisisankit27온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
A private family tree app
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Your family tree — including the people nobody can name.
A free, offline, open-source family tree app for Android.
Ask how any two people are related and it names the relationship, in English or Hindi, and draws the line between them.
No account. No server. No analytics. Nothing leaves your phone unless you send it.
Every family tree app assumes you know who everybody is. Real families do not work that way. There
is always a great-grandmother whose name nobody wrote down, an uncle nobody can place, and a cousin
whose exact relationship starts an argument at every wedding.README 전문 보기 ↗A free, offline, open-source family tree app for Android, Windows and Linux. Ask how any two people are related and it names the relationship, in English or Hindi, and draws the line between them.
No account. No server. No analytics. Nothing leaves your device unless you send it.
Everyone, including the people with no name · Compact · Hindi kinship terms
The same family on Windows and Linux
Every family tree app assumes you know who everybody is. Real families do not work that way. There is always a great-grandmother whose name nobody wrote down, an uncle nobody can place, and a cousin whose exact relationship starts an argument at every wedding.
f-tree is built around those gaps instead of around a form you have to fill in completely.
| 🕳️ A person needs no name. | A blank person is a valid unknown person — the grandfather's brother nobody remembers — and can be named years later without disturbing a single relationship. |
| 🔗 A graph, not a tree. | Multiple spouses, children across marriages, half-siblings, adoption, step-relations and unknown ancestors all work without special cases. |
| ❓ "How are we related?" | Pick any two people. f-tree names it — first cousin once removed, great-great-grandfather — and lists every person the line runs through. It walks marriages as well as blood, because "my wife's mother" is what people actually ask. |
| 🇮🇳 Hindi kinship, done properly. | Hindi has five words where English has "uncle". Your mother's brother is मामा, your father's younger brother चाचा, his wife चाची. Not a translation — a different model of the family. |
| 📴 No account, no cloud. | No login, no backend, no sync, no analytics. Every permission the app declares exists only for the opt-in updater or for nearby sharing, and neither touches the network until you ask it to. |
| 🤝 Sharing that merges, never overwrites. | Send one branch as a small file over WhatsApp. The recipient imports it and it merges into their tree. The worst an import can do is add a duplicate you can then merge. |
| 📶 Nearby sharing. | Send a tree straight to a device you can see, over the Wi-Fi you are already on — no account, no server, nothing in between. Both screens show the same six digits, so you know it went to the right one. |
| 📖 A family book, made to send. | A designed, printable PDF — a cover, everyone in the family, a page of facts, a generation at a time, and an index to find yourself in. Made on your own phone or laptop. Read more → |
Download the latest APK — Android 8.0 (Oreo) or newer, about 4 MB. On Windows or Linux, take the desktop app.
It is not on the Play Store, so Android will ask you to allow installing from your browser or file manager once. The website walks through it with the exact wording your phone shows, and publishes the SHA-256 of every release so you can check what you downloaded:
sha256sum f-tree-1.0.0.apk
Once installed, updates can happen in place — an opt-in setting checks GitHub for a newer release and installs it over the running copy, so upgrading keeps your tree instead of costing an export and an import. It is off until you switch it on, and it verifies the download's hash, package name and signing certificate before it installs anything. See Updating in place.
The desktop app
builds a family tree on a laptop, or opens a .ftree you already have: add people, connect them,
edit and delete, undo, and save back to the same file. A generation is a row, ancestors at the top.
Windows gets an installer; on Linux take the .deb. It does not need the Android app — a tree can
start here.
Three ways to read it — the chart, a compact reading that stays legible at any size, and the people index. It answers how two people are related, in English and in हिन्दी. It imports a relative's file, matching people rather than duplicating them, and it adds and frames photographs. Nearby sharing sends a tree straight to another device on the same Wi-Fi, phone or laptop, with the same six-digit check as the Android app. Nothing leaves the machine except when you send it that way.
The browser viewer opens an exported .ftree
and draws the whole family at once — every generation, and the people no relationship reaches.
There is a sample family loaded on the page. Your file is never uploaded; it is read in the tab.
git clone https://github.com/thisisankit27/f-tree.git
cd f-tree
./gradlew assembleDebug
JDK 17+ and the Android SDK. Full instructions in docs/building.md.
Three views of one family
Compact reads the family as text — generations down the page, a tap to walk to anybody, no pinching and nothing that needs a steady hand. Chart draws the same people with pan, zoom and tap-to-recentre. Everyone draws the entire tree at once. Compact and Chart share one centre, so switching never loses your place.
A relation finder that answers real questions
The word for it and the chain of people it runs through — which is the form that can also answer the relationships English has no word for. On a real 148-person tree it names 55% of all 21,756 ordered pairs; the rest read their answer off the chain.
Faces on the chart
Every card carries a portrait — the square you framed, or a coloured initial when there is no photograph. Photographs can be switched off on a very large tree without a single card moving.
A family book, ready to send
A designed PDF — a cover built from the family's own shape, everyone in it, a page of facts, a generation at a time, and an index so anyone can find themselves. Made entirely on the device, as a single chart page or in a Diwali storybook edition. Full design →
Export and import as one .ftree file
A documented ZIP. Every field optional, unknown keys ignored, so a file written by a future release still opens. Format spec →
Share one person's family
Tap somebody and send their household — their partner, their children, everyone below them. The people above them stay behind. That is also how you graft a relative's branch onto yours: import it, then marry the two families together with one relationship.
Share an answer as a picture
A relationship can be sent as a card rather than a file, because chat apps quietly drop the message that comes with a document but show it beside an image.
Send it straight to a device you can see
Nearby sharing puts a tree on a device across the table — no export, no chat app, no cloud drive. Both screens show the same six digits, or scan a QR to skip typing them. Wi-Fi only, encrypted, off until you open the screen, and it carries a file exactly the way sharing already did: the receiver reviews it in the same import screen, matching duplicates rather than overwriting anything.
Accessible by design
The canvas charts cannot be read by a screen reader, so Compact exists: the same family, composed rather than painted, at any text size, spoken aloud, one tap per person.
| Question | Answer |
|---|---|
| Where is my family tree stored? | On your phone, in the app's own storage. Nowhere else. |
| Is there an account or a login? | No. There is nothing to log in to. |
| Is there a server? | No. There is no backend to have one with. |
| Analytics, crash reporting, ads? | None, in the app or on the website. |
| Can it send my tree to another device? | Only nearby sharing, and only when you start it: to a device you can see, on the network you are already on, with a code both screens show, and no account or server in between. |
| What permissions does it ask for? | Eight, and every one is listed with its reason on the privacy page. Two are for the opt-in updater (INTERNET, REQUEST_INSTALL_PACKAGES), three for nearby sharing (ACCESS_WIFI_STATE, CHANGE_WIFI_MULTICAST_STATE, ACCESS_NETWORK_STATE), and one, RECEIVE_BOOT_COMPLETED, to re-arm birthday reminders after a restart. None of those prompts. Two are asked for at the moment you use the feature: CAMERA, to scan a nearby-sharing code, and POST_NOTIFICATIONS, for birthday reminders. |
| Does the browser viewer upload my file? | No. It is read in the tab. |
| Can I get my data out? | Any time, as a .ftree — a ZIP with plain JSON in it. Documented here. |
update/ and nearby/ are the only code in the app that opens a socket, each kept in its own
package so that claim is checkable by reading rather than by trust. Nearby sharing does nothing
until one of its two screens is open, and it sends a tree only after you pick a device and its
owner accepts.
| ❓ FAQ | Where the data lives, what leaves the phone, how merging behaves, and what happens when you update |
| 🏗️ Architecture | How the graph, the chart layout, the kinship rules and the photo pipeline work — and why |
📦 The .ftree format | The file spec, what travels when you share a branch, and the merge rules |
| 🗂️ Data model | Tables, fields and migrations |
| 🇮🇳 Hindi kinship | The term list and the rules that pick between them |
| 📖 The family book | The designed PDF: one composer, two painters, the Book format and the template rules |
| 💳 The policy switch | The one place the app asks what a reader may do — gate presentation, never data |
| 🔤 Fonts | Literata, JetBrains Mono, and the book's Rozha One and Mukta — and why they are bundled |
| 🔨 Building & releasing | Build, run, test, sign, tag, ship |
Contributions are very welcome, and the project is small enough to hold in your head in an afternoon. The parts most worth reasoning about — chart layout, kinship rules, duplicate matching — are pure functions over plain data, so they are tested on the JVM without a device and are the easiest place to start.
Especially wanted:
Start with CONTRIBUTING.md and the good first issues.
.ftree schema
covers sharing between users of this app.MIT — use it, change it, ship it; just keep the copyright notice.
The bundled fonts (Literata, JetBrains Mono, and the family book's Rozha One and Mukta) are
separately licensed under the SIL Open Font Licence 1.1. Their licence texts ship inside the app
under assets/licenses/ and are surfaced on its About screen. See docs/fonts.md
for which font does what, and why the book's fonts are static rather than variable.
Everything the app can do with your own tree is free, and stays free. f-tree has one piece of groundwork for a feature that might one day cost money — a single policy switch that today always answers "yes, all of it" — and the rule it is built to keep is written down plainly so nobody ever has to relearn it under pressure: gate presentation, never data. Exporting, importing and reading your own tree, in full, stay free forever; a premium tier, if one is ever built, could only ever apply to a designed extra like a book template or its attribution line. See docs/premium.md.
If f-tree is useful to you — or if the idea of a family tree with room for the people nobody can name is one you want to exist — a star helps other families find it.
Built by Ankit Srivastava · ftree.vibethroughcode.com
| 🌐 Site & browser viewer | The landing page and the dependency-free .ftree reader |
| 🖥️ Desktop app | Windows and Linux, one viewer in two shells, and why its releases are pre-releases |
| 🤝 Contributing | Good first issues, project shape, and how a change gets reviewed |
| 🔒 Security policy | How to report a vulnerability |
| 📜 Changelog | What changed in each release |