Creating the research panel is hard work. In order to display the research tree, I have to create a custom algorithm. As the tree won't be symmetric, that's quite hard. I'm not satisfied yet by what I made so far but I'm on the path (to glory).
Here is the current result of my viewer prototype :
I wanted to manage nodes with more than one parent to make tree branches cross but that's hell to handle! So for now, I'll keep it simple : only one parent.
Oh and something that the screenshot doesn't show, you can drag the tree around. Still work in progress but it looks promising.