ALM - The Auckland Layout Model


The Auckland Layout Model (ALM) is a novel technique for specifying 2D layout as it is used for arranging the controls in a GUI. The model allows the specification of constraints based on linear algebra, and an optimal layout is calculated using linear programming. Linear equalities and inequalities can be specified on horizontal and vertical tabstops, which are virtual lines that form a grid to which all the elements of the GUI are aligned. The described technique supports the dynamic adaptation of a layout to changes in the environment, e.g. window size, and offers more flexibility than other layout managers.

ALM is currently implemented for .NET, Java and Haiku. We will port it to other platforms if there is a popular demand. It uses the lp_solve linear programming solver as a backend. Please feel free to download ALM from SourceForge. The API is documented in the source code, and examples are included. To get familiar with ALM, it is recommended to look at some examples and read over the technical report listed below. All feedback is most welcome. ALM is available under the MIT license.

Go to the SourceForge ALM project page...

Publications Logo