# \[ANN\] LayeredLayouts for Directed Acyclic Graphs

**URL:** <https://discourse.julialang.org/t/ann-layeredlayouts-for-directed-acyclic-graphs/48689>\
**Category:** Package Announcements\
**Created:** [October 20, 2020, 2:28pm UTC](https://discourse.julialang.org/t/ann-layeredlayouts-for-directed-acyclic-graphs/48689 "2020-10-20T14:28:51Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)\
**Post date:** [October 20, 2020, 2:28pm UTC](https://discourse.julialang.org/t/ann-layeredlayouts-for-directed-acyclic-graphs/48689/1 "2020-10-20T14:28:51Z")

</div>

I am announcing [LayeredLayouts.jl v0.1.0](https://github.com/oxinabox/LayeredLayouts.jl).  
It works out how to layout directedec acyclic graphs.  
Infact it workout how to optimally lay them out via solving the Mixed Integer Progamming problem of minimizing the number of crossing.

Checkout the readme for lots of pretty pictures.

It is suitable for laying ot trees, dependency graphs, sankey diagrams, and a bunch of other stuff.

It doesn’t do the actual graph vizualization, just the computation of positions.  
Its much like NetworkLayouts.jl in that way.  
Main reason it is not part of NetworkLayouts.jl is that solving that MIP requires loading JuMP, ECOS, and Cbc. WHich is a lot of dependencies to add to a package that currently has almost none.  
Might be merged in later, who knows. See [issue](https://github.com/JuliaGraphs/NetworkLayout.jl/issues/20).

Anyway, packages like GraphPlots and GraphRecipies could add it is a backend if they wanted.
