I've been working on this for a while and decided I should share:

It's not finished yet (severe stability issues) but it's one step closer.