A new Figure for the OSI Board Election
August 2022 update: you can no longer try the Board Election figure described here, it has been retired to concentrate on our core figures. The original article below has been amended to remove the broken links.
In March of this year (2022) the Open Source Initiative held elections for seats on their board. This was a great opportunity to see if the new org chart figure could help visualise the election. Not only did it succeed but I am happy to say the graphic was featured on their website, a first for Figular. Out of this work a new figure was born - the board election.
As the elections approached I first wanted to produce an overview of how the OSI board seats are allocated. This was straight-forward to make with a modified org chart figure:
Additional titles and styling were added by hand as Figular does not yet support tweaks like this. The individual pie charts were added by overriding the code for how we draw each person and providing the data as part of the input (the full details are documented here).
When the election candidates were announced I thought it would be good to combine the org chart with our circle figure to show who is standing. The circle is a good choice for things that should be of equal weight (in this case the candidates). The final result turned out well:
At the time I simply put the data into the circle and org figures separately and combined them in Inkscape with a few tweaks. However this is exactly the kind of thing Figular needs to support - combining figures to make advanced visualisations.
So I set about creating a new figure which combines these two and the board election was born.
The new figure threw up some useful technical challenges that have helped push the project forward:
Figures need to work with other figures to agree things like scale, font size and colour for consistency.
For this we introduced the concept of parameters and solvers. A figure can take a parameter for something like font size but its exact value may be decided later. A solver can then make a decision based on the parameters it has seen and inform the figures. For example a solver might take the suggested font sizes for three figures and then select the largest to ensure they are consistent.
We want to embellish or remove parts of Figures before they are drawn.
For this we introduced deferred drawing in Figular. Figures are not drawn immediately instead they are assembled. This provides the opportunity to make changes before the final rendering. For example with the OSI graphics we removed the lines that are normally drawn on the org chart figure.
We need to feed data to more than one Figure at a time.
The board election figure needs to be provided with titles, two lists of candidates and an org chart. To keep the data in plain text we adopted the markdown language which was explained in the new figure’s documentation. Providing data to figures will be a key part of Figular’s design as they become more complex.
The work to create the board election figure has shown how the Figular technology will need to adapt in future. You can find the original write-up explaining how the graphics were made and links to the social media posts here.