The Balloon layout places each node children in its enclosing circle (centered at the root node)using some optimized algorithms. The nodes are placed to avoid overlapping between nodes and to make the graph as compact as possible unlike the older balloon algorithms. Angular resolution and aspect ratio are optimized in this layout to provide clearer graphs and to optimize space occupation of the calculated embeddings.

The Balloon Layout takes as input the number of nodes of a given Graph and their connections to compute an internal structure based on the graph topology and the user preferences. In fact, if the graph is Tree and digraph, the unique root node and the correspondent internal structure are computed. However, if the graph is not a digraph, whether the graph is a tree or not, the layout algorithm automatically select the most weighted node, having the maximal number of links. Therefore, the layout is able to handle effectively any graph type (by ignoring cycles) using different root selection policies.

This Layout provides some extra options enabling more control on the generated graph representation :

`rootSelectionPolicy`

: criteria used to retrieve the root node while computing the layout;`nodeSpacing: controlling the minimal spacing between nodes and therefore the compactness of the graph;`

- angular resolution for root node
`rootAngularSector`

and child node`childAngularSector`

: defining the angular sector in which nodes are laid; `useEvenAngles`

: assigning equal angular sectors for all nodes' children (an old approach). By default set to false, the balloon layout algorithm optimize space filling via assigning different angular sectors (proportional to the sub trees weight).

this print screen shows an example the balloon layout representation: