Before you get excited at seeing any names on any of the graphs here, please be aware that they're all randomly generated and bear no resemblence to the names, or even gender, of the real matches. They're changed just before output, so they're not even consistent across examples.
If you're curious how I got to this point, here is a brief history of the mistakes I made while putting this together. Well, the ones I am aware of. It also covers some of the reasons I ended up with the current set up.
I wanted to try and map out my Family Tree DNA Family Finder matches in a way that was more immediate and visual than lists or matrices. I ended up using a force directed graph as that seemed to do what I needed in a useful fashion. Although its a bit chaotic when first displayed, you can pull nodes around with the mouse to try and sort it out.
The simplest (visually) graph is created from my match list and 52 in-common matches files that I've downloaded from the FTDNA site. Then processing is done so that:
The actual graph as well as some thoughts on the different structures that turn up. The graphs are large - 1600px x 1200px - to allow for easy viewing of the data. They will probably be useless on phones.
More complicated versions!
The graph drawing is done with the D3 library, and I started with this example.
I processed the csvs into json with perl. Mostly because that's what I'm most familiar with, its not particularly hard processing.
Well... no, not really. Not yet, anyway. I still only have distant links that occured before my paper trail starts, so I haven't really progressed any of the tree anywhere. But if someone tests that is closer, or I find a paper trail that goes further then I'll have a tool that can help me then connect more people.
I'd like to be able to add some of the processing options in as javascript tools, so you can turn stuff on and off to compare it rather than needing two graphs side by side. It'd be nice to be able to zoom in on particular individuals and just show their links too, especially for the larger structures. Being able to delete nodes to help clarify things would help a bit, as well as being able to save the data file for what you're currently looking at.
Its a faint dream to be able to pin some of the nodes to some sort of family tree as well... but that would imply I knew where the links were