Family Tree Data Expression Engine
See a live demo at http://www.bengarvey.com/lineage (still an older version)
Clone this repo
git clone [email protected]:bengarvey/lineage.git
cd lineage
python3 -m http.server 8000
Click http://localhost:8000
You can run this locally by running python3 -m http.server 8000
from a terminal or running the following commands
npm install
And then every time after that running node server.js
All configuration is done in the config.json
file.
This is what its keys do:
-
data
: Points to the JSON file containing your data. By default, it points to the example file located atdata/familyData.json
. -
startDate
: The initial date when the graph is loaded. -
firstDate
: Earliest date you can go back to. -
lastDate
: Latest date you can go to. -
speed
: Defines how many milliseconds before the next "tick" of the timer runs. -
timeStep
: How much real time passes with each tick of the timer. Valid values are "day", "week" and "year" -
menuDefaultOpen
: If set totrue
, the menu is instantly opened when the web view is loaded. The default istrue
. -
debug
: This key does not affect the observable behavior of lineage and only affects the background logging. -
showDead
: If set tofalse
, only people alive at the time of the currently active year are shown in the graphs. If set totrue
, everyone born by this time (regardless of death date) is shown. -
filter
: In the web view's menu bar, you can filter for specific names using the provided input field. This key allows you to set an initial filter that will be active when the web view is freshly loaded.
- For viewing large datasets, it may help to zoom out your browser
- If you lose the ui, move your mouse to the edge of the screen at the top left
- To run the demo in play mode, just press play and watch the years tick by
- To hear the music, check the music checkbox and press play
- There's a script in the script directory called famgen.js. Run it like this to generate new datasets.
node script/famgen.js > data/familyData.json
- Better readme for using this with your own data
- Support for incrementing by day instead of year
- Handle more generic network data that needs to be viewed in a time series
- Non-browser zoom, since the browser zoom is limited.