  Developing cross-device multi-user interfaces (UIs) is a challenging problem.
There are numerous ways in which content and interactivity can be distributed.
However, good solutions must consider multiple users, their roles, their
preferences and access rights, as well as device capabilities. Manual and
rule-based solutions are tedious to create and do not scale to larger problems
nor do they adapt to dynamic changes, such as users leaving or joining an
activity. In this paper, we cast the problem of UI distribution as an
assignment problem and propose to solve it using combinatorial optimization. We
present a mixed integer programming formulation which allows real-time
applications in dynamically changing collaborative settings. It optimizes the
allocation of UI elements based on device capabilities, user roles,
preferences, and access rights. We present a proof-of-concept
designer-in-the-loop tool, allowing for quick solution exploration. Finally, we
compare our approach to traditional paper prototyping in a lab study.
