Student projects

Does Graphviz take on students or interns these days? We’ve missed the boat for this year’s Google Summer of Code, but it seems like the kind of thing Graphviz could benefit from. I know there are some cool ideas in the open issues, that I myself will never have enough consolidated free time to work on. However, I could definitely part-time mentor an enthusiastic student or two.

Some rough criteria I have in mind for such projects:

  • Feasible for a student to accomplish in ~3 months
  • Flexible scope to enable a really productive student to go above and beyond
  • Not on the critical path, in terms of blocking releases or causing major regressions
  • Touching code that at least one of us understands
  • Researchy enough that they’ll need to teach themselves something new
  • “Cool” - i.e. not build system hacking etc


1 Like

I don’t know how we can sponsor a project with no money, but I’m sure we can find lots of ideas.


Rewrite some core parts of graphviz in Go or Rust or … student’s choice. Show why it is better. Preferably reuse some existing C libs so that a rewrite can progress incrementally

Implement a new layout engine…

  • I would like to see a circuit board layout engine that knows how to collect edges into busses, and implement crossovers with vias to another layer.

Related: implement gate shapes
Or maybe “7400-series” shapes.

A “-Twayland” driver. We have “-Tx11” but are there new possibilities with Wayland?

That’s a great idea. There ae a lot of good projects. You would think we could scrape up funding from some company that makes good use of this software. Off the top of my head:

  • option to allow node size / font size to automatically scale with number of connections or some other function
  • implement default styles and layout parameters that would make it easier to get good results out of the box
  • add object templates or classes to the graph data language
  • get the Mac OSX packaging to work again
  • integrate Nocaj, Ortmann, Brandes “untangling hairballs” (Simmelian backbone) distance method that Emden already coded
  • find / implement / integrate a good algorithm for orthogonal layout + routing