# Student projects

**URL:** <https://forum.graphviz.org/t/student-projects/181>\
**Category:** Dev\
**Created:** [June 12, 2020, 4:24am UTC](https://forum.graphviz.org/t/student-projects/181 "2020-06-12T04:24:35Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![smattr](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/smattr/32/85_2.png) [@smattr](https://forum.graphviz.org/u/smattr)\
**Post date:** [June 12, 2020, 4:24am UTC](https://forum.graphviz.org/t/student-projects/181/1 "2020-06-12T04:24:35Z")

</div>

Does Graphviz take on students or interns these days? We’ve missed the boat for this year’s [Google Summer of Code](https://summerofcode.withgoogle.com/), 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

Thoughts?

---

<div class="post-metadata">

**Author:** ![Ellson](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/ellson/32/19_2.png) [@Ellson](https://forum.graphviz.org/u/Ellson)\
**Post date:** [June 12, 2020, 10:08pm UTC](https://forum.graphviz.org/t/student-projects/181/2 "2020-06-12T22:08:26Z")

</div>

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

Suggestions:

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?

---

<div class="post-metadata">

**Author:** ![scnorth](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/scnorth/32/89_2.png) [@scnorth](https://forum.graphviz.org/u/scnorth)\
**Post date:** [June 12, 2020, 11:28pm UTC](https://forum.graphviz.org/t/student-projects/181/3 "2020-06-12T23:28:42Z")

</div>

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
