A computer-implemented method, comprising: displaying a layout tool, the layout tool comprising a layout area for visual layout of one or more display objects of a user interface; receiving a first input that includes placement, within the layout area of the displayed layout tool, of a selected first display object of the display objects; receiving a second input that includes placement, within the layout area of the displayed layout tool, of a selected second display object of the display objects; receiving a third input indicating an instruction to create a first connection from the second display object to the first display object within the layout area; automatically determining, without further input, at least one inferred layout constraint and respective coordinates within the layout area for the selected first and second display objects based, at least in part, on the connection; receiving a fourth user input that includes placement, within the layout area of the displayed layout tool, of a selected third display object of the display objects; receiving a fifth user input indicating an instruction to create a second connection from the third display object to the first display object and a third connection from the third display object to the second display object; determining that the placement of the third display object with respect to the first and second display objects includes an error in which the first and second display objects cannot be placed according to the first connection; spreading the error to the second and third connections such that an amount of error on each of the first, second and third connections can be minimized, and thereby modifying the at least one inferred layout constraint and respective coordinates within the layout area for the selected first and second display objects; and displaying the first and second display objects at the modified respective coordinates. displaying a layout tool, the layout tool comprising a layout area for visual layout of one or more display objects of a user interface; receiving a first input that includes placement, within the layout area of the displayed layout tool, of a selected first display object of the display objects; receiving a second input that includes placement, within the layout area of the displayed layout tool, of a selected second display object of the display objects; receiving a third input indicating an instruction to create a first connection from the second display object to the first display object within the layout area; automatically determining, without further input, at least one inferred layout constraint and respective coordinates within the layout area for the selected first and second display objects based, at least in part, on the connection; receiving a fourth user input that includes placement, within the layout area of the displayed layout tool, of a selected third display object of the display objects; receiving a fifth user input indicating an instruction to create a second connection from the third display object to the first display object and a third connection from the third display object to the second display object; determining that the placement of the third display object with respect to the first and second display objects includes an error in which the first and second display objects cannot be placed according to the first connection; spreading the error to the second and third connections such that an amount of error on each of the first, second and third connections can be minimized, and thereby modifying the at least one inferred layout constraint and respective coordinates within the layout area for the selected first and second display objects; and displaying the first and second display objects at the modified respective coordinates. <EOS>