a clone of the graphviz dot tool
  • C++ 85.3%
  • GLSL 6.8%
  • Python 4.6%
  • CMake 3.2%
Find a file
2025-06-08 03:08:51 +02:00
docs add screenshots 2025-06-08 02:37:46 +02:00
examples tons of stuff, cant even remember, I am pushing partly unfinished and uncleaned work though because I will probably not be working on the project anymore 2025-06-08 02:37:04 +02:00
include/punkt tons of stuff, cant even remember, I am pushing partly unfinished and uncleaned work though because I will probably not be working on the project anymore 2025-06-08 02:37:04 +02:00
resources tons of stuff, cant even remember, I am pushing partly unfinished and uncleaned work though because I will probably not be working on the project anymore 2025-06-08 02:37:04 +02:00
scripts feat: bezier edges and x layout optimization (which requires a lot more work) 2025-04-10 01:40:14 +02:00
src add a tiny cli 2025-06-08 03:08:51 +02:00
tests tons of stuff, cant even remember, I am pushing partly unfinished and uncleaned work though because I will probably not be working on the project anymore 2025-06-08 02:37:04 +02:00
third_party feat: edge labels; fix: parser inheritance of default node attrs to implicitly created nodes; fix: add glad to git; additional test; other changes 2025-03-20 23:21:34 +01:00
.gitignore decent horizontal node reordering 2025-03-09 20:48:49 +01:00
.gitmodules initial commit; feat: dot language parser and first two graph preprocessing steps for rendering ( rank computation, ghost node insertion) 2025-03-09 02:38:41 +01:00
CMakeLists.txt tons of stuff, cant even remember, I am pushing partly unfinished and uncleaned work though because I will probably not be working on the project anymore 2025-06-08 02:37:04 +02:00
LICENSE tons of stuff, cant even remember, I am pushing partly unfinished and uncleaned work though because I will probably not be working on the project anymore 2025-06-08 02:37:04 +02:00
README.md tons of stuff, cant even remember, I am pushing partly unfinished and uncleaned work though because I will probably not be working on the project anymore 2025-06-08 02:37:04 +02:00

About

This project is a tiny clone of the dot CLI tool from graphviz using OpenGL.

Be warned that it is incomplete, has unfinished TODOs and is in no way production ready. This project turned into a GIT ("goddamn idiotic truckload of sh*t", see git's README at the very bottom). I believe the primary reason was the terrible combination that is allowing yourself to introduce quick hacks and having to experiment with a ton of different settings and potential transformations and algorithms, and not caring enough to clean up the mess. This thing really needs a rewrite. I was actually thinking of not making this public at all because of how bad it turned out, but whatever...

There is also lots of dead code in this project because of things I originally wanted to add but simply lost interest in.

Demos

siblings.dot inheritance.dot ninja.dot demo8.dot animated_graph.dot

Open TODOs

A ton of stuff in main.cpp at the bottom (~100 lines!!!), but the most obvious and immediate TODO is probably the absolute mess in dot.cpp and the fact the horizontal layout optimization pipeline seems kind of broken. By broken, I mean that the results often look like utter crap (see siblings.dot).

License

MIT License