Decoupling interaction hardware design using libraries of reusable electronics This paper presents our research toward the design and development of a library of electronic hardware modules called Blades and Tiles. Interaction hardware design with blades and tiles provides researchers with considerable flexibility in iterating their designs, decoupling between the domains of electronics, software, firmware and mechanical design. Our approach has been driven by design objectives including hardware reusability, reliability, scalability, and flexibility.We have created a library of blades and tiles, and used them to develop several interaction devices. We present both conceptual and applied aspects and discuss future directions. The integration of electronic, mechanical, software, and interaction design presents a challenging design space for tangible user interface (TUI) researchers. The physicality of such interfaces also makes them more complex and time consuming to prototype than pure software systems, often requiring expertise in various areas. Fortunately, the creation of hardware toolkits and prototyping systems (e.g. [1] [2] [3] [4] [7] [8] [9] [10] [11] [12] [13] ) is easing the process of realizing novel physical interfaces. These toolkits are evolving significantly in their ability to support a wide variety of interaction modalities.. The hardware toolkits community has made valuable progress toward bootstrapping the initial development of TUIs, especially from the perspective of software developers. TUI researchers are invested and use these toolkits in the development of various promising interaction devices. This is evident in the growing number of users embracing hardware prototyping platforms such as d.tools [5] , Arduino [3] and Phidgets [4] (to name a few). However, we feel several conceptual and technical developments in the architecture of the hardware toolkits can yield a number of benefits.. From a hardware standpoint, the creation of novel interaction devices involves advancements in at least two different realms. Fundamentally, new sensors and/or devicesi.e. (interaction modalities) [15] -are investigated and developed. Simultaneously, the design and composition of interaction devices, application integration, and interaction sequences are explored.. While many existing toolkits provide users with accessible avenues to program pre-existing toolkit hardware, they often lack straight-forward means to integrate user-developed interaction modalities (e.g., custom electronic modules and firmware e.g., for PWM of LEDs or haptic feedback) with existing toolkit elements. The interaction researcher is often restricted to using only the interaction modalities provided by the toolkits, as typically developed by a small set of hardware designers. We believe several factors contribute to this:. • existing toolkits have typically been designed to provide pre-built interaction electronics for use by researchers with predominantly software skills; • the tightly-coupled electronics and firmware components of many toolkits do not grant easy access for developers outside the core hardware team; and • there is often a lack of documented hardware schematics, protocols, and software architectures to foster the development of new interoperable toolkit elements by users.. Prior toolkits have simplified hardware design, and reduced the level of technical electronics expertise required to build and prototype TUIs in small numbers. However, we have not found any toolkits that support the construction of moderately larger numbers of devices (e.g., ∼10-100) for research purposes (e.g., colocated or distributed collaborative systems) or stable deployments. Likewise, it has been challenging to develop prototypes that integrate many (e.g., hundreds) interactors in a scalable fashion.. We propose Blades and Tiles as a step toward realizing the above-described architectural features. Through blades and tiles, we aim to empower the interaction design community with the freedom to develop and integrate their implementations of interaction modalities, and benefit from standards for the sake of easier adoption and interoperability. Blades and tiles are a library of extensible, reusable hardware entities designed with the intent of supporting community collaboration in the vein of open source software development. Here we describe the design and technical aspects of blades and tiles, example interface implementations using them, and discuss future directions. Blades and tiles have undergone many revisions of design and testing, and have been successfully used in four mixed graduate/undergraduate project courses (two with ∼35 students). Based on these experiences, we plan several areas of enhancement in the near future, while keeping the system backward compatible. Building on a relatively simple set of combined hardware and software design principles introduced in [18] , we have described their realization in the form of Blades and Tiles. Building on prior hardware toolkits and our experiences with implementing tangible interfaces, we have designed and developed a robust, scalable system. We have also described several concrete example applications and their implementation using blades and tiles.. While some of these principles are not individually novel, we believe our combined approach provides blades and tiles with powerful properties as library elements for decoupling the electronic, firmware, and software elements of complex, evolving physical/digital systems. We plan to release our implementation as open-source hardware and software in hopes of fostering wider collaborative efforts towards hardware interoperability. Some of the basic concepts underlying blades and tiles have been introduced in [18] . In the following, we briefly introduce some of the mechanical, electronic, firmware, software, protocol, and architectural implementations and design decisions underlying blades and tiles.

O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I


Encapsulating intelligent interactive behaviour in unified user interface artefacts Intelligence at the level of the user interface is currently being supported through a number of prevalent strands, including adaptive user interfaces, model-based user interface development and interface agents. Moreover, the term intelligent user interface typically implies the notion of dynamically enhancing the interaction with a single implemented artefact to suit different usage patterns, user groups, or contexts of use. This article extends this notion and describes how unified design artefacts can support the development of accessible and high quality user interfaces exhibiting the characteristics of multiple metaphor environments. To this effect, the article outlines the principles of unified user interface development and discusses how it can be used to advance Intelligent Interface Technology to account for diverse user requirements and interaction contexts. ᭧ The need for intelligent and co-operative Human-Computer Interaction (HCI) is driven by several contemporary technological developments, including: the increasing complexity of human-machine dialogues [1] ; the increasingly knowledge-based nature of tasks resulting from the radical changes in both the nature of work and the content of tasks [1] ; the increasing number of computer users characterised by diverse abilities, skills, requirements and preferences; the wide proliferation of technologies incorporating advanced interaction facilities, novel input/output devices and multimodal interaction techniques based on advanced multimedia interaction technologies. These contemporary developments raise a compelling need towards a comprehensive framework for designing, implementing and evaluating user interface adaptations.. Traditionally, the adaptive behaviour was largely attributed to the human partner, as systems did not embody the required sophistication to identify the need for, and to subsequently implement adaptive control. As a result, the human operator was required to compensate for the shortcomings of the machine and to supply the capabilities necessary to accomplish the task. However, recent developments in the fields of Artificial Intelligence and their application to User Interface Software and Technology (UIST) problems, have enabled a greater degree of co-operativity in human-computer dialogues, as well as the implementation of inferential reasoning towards adaptive control on the part of the machine. User interfaces exhibiting such characteristics are frequently referred to as intelligent user interfaces.. In recent years, the field of Intelligent Interface Technology has experienced substantial progress and growth [2] . This becomes evident from the increasing popularity of the topic amongst academic/research and industrial practice. It is expected that this trend will continue as existing technologies mature and provide the driving concepts towards a new techno-paradigm shift, which characterises the emergence of the Information Society. Although Intelligent Interface Technology still poses numerous challenges and the contributing fields are still attempting to ascertain concepts and match them with practice (e.g. current debates on model-based interface development, intelligent agents vs. direct manipulation), several of their premises are highly valued and relevant in the context of the emerging Information Society. A review of the relevant literature identifies some of these premises and motivating principles, such as individualisation, co-operativity, usability, task simplification, etc., and provides numerous prototypical implementations of interactive systems exhibiting the characteristic properties of Intelligent Interface Technology. However, there is yet another cluster of design issues, which, though in the periphery of the tradition of Intelligent Interface Technology, have become increasingly relevant in the light of the communication and interaction-intensive contexts of use in the emerging Information Society; these relate to the concepts of accessibility and interaction quality.. The issue of accessibility concerns the right of all citizens to obtain and maintain access to a society-wide pool of information resources and artefacts, given the varieties of context. To this effect, accessibility implies an explicit design focus to consider the relevant issues, as opposed to an afterthought. Interaction quality implies quality in the use of these information resources and artefacts by humans in the various problemsolving, information seeking and communication-intensive activities. This notion of quality goes beyond the "traditional" notion of usability (i.e. measurable aspects based on performance criteria such as effectiveness, efficiency, satisfaction, etc), to include aspects (such as usefulness, suitability for task, tailorability, etc.), which may not be measurable with currently available means.. The compelling need to address these two requirements was revealed in the context of European Commission funded collaborative research and development work (see Acknowledgements) aiming to provide and demonstrate the feasibility of tools for building user-adapted interfaces accessible by different user groups, including disabled and elderly people [3, 4] .. To this end, Intelligent Interface Technology is relevant, but the currently available wisdom in the field seems inadequate to address the peculiarities of the domain of disability. In particular, Intelligent Interface Technology has traditionally not addressed accessibility and interaction quality in the context and scope considered in the present work. As a result, there is a genuine lack of sufficiently consolidated knowledge and reference examples to inform and guide practitioners. Such a body of knowledge is needed to identify and characterise the type of intelligent systems behaviour that needs to be supported so as to enable and facilitate access, as well as present the architectural abstractions that preserve the required characteristics. To this effect, the article reviews the stateof-the art in Intelligent Interface Technology with the aim to identify some of the challenges posed when considering accessibility and interaction quality, and subsequently, discusses a particular approach to the design of systems that are enabling, co-operative, user-and use-adapted. By this account, the article seeks to shed light into the realities of Intelligent Interface Technology in the domain of disability, as well as to advance a proposition for constructing user interfaces accessible and usable by the broadest possible end-user population. The article is structured as follows: The next section briefly reviews the prevailing strands of Intelligent Interface Technology, discusses their underpinning assumptions and identifies shortcomings, or challenges to be addressed. Subsequently, the notions of multiple metaphor environments and context-sensitive processing are introduced and discussed in the light of the identified challenges. Then, the unified user interface development method is presented in terms of key properties and methodological contributions towards the construction of multiple metaphor environments suitable for diverse user groups, including people with disabilities. The next section reports on some of the technical features of a supporting tool environment for unified user interface development and discusses practice and experience with the method. Finally, the article discusses the implications of unified user interface development on popular HCI practices and highlights the potential contributions of this work to the study of Intelligent Interface Technology and its realities. The article concludes with a summary and directions for future work. This article has described an approach which emphasises a particular design and development perspective upon the construction of intelligent interactive software, resulting in user interfaces that exhibit, in addition to adaptive behaviour, accessibility and high quality interaction. The underlying framework which was used to develop the article's argumentation is based on the unified user interface development method. This method comprises a collection of design and implementation techniques, which facilitate the construction of user interfaces accessible and highly usable by the broadest possible end user population, including people with disabilities.. Specifically, unified user interface design offers an analytical framework for enumerating plausible design alternatives, articulating reusable design abstractions and rationalising a design space on the grounds of suitable criteria and design rationale. In contrast, the unified user interface development platform provides a sophisticated environment for implementing unified user interfaces. This environment makes use of several tools which allow: (i) the construction of a unified user interface as a composition of abstractions at different levels; (ii) the manipulation and management of the physical (toolkitspecific) resources; and (iii) the establishment of the relationships between the involved abstractions and the available physical resources.. The article reflected upon recent practice and experience with the unified user interface development method and indicated how this method links with existing design approaches, as well as how it may be employed to facilitate the development of intelligent interactive systems, which account for different user groups, including people with disabilities. In particular, it was described how a unified user interface artefact can be encapsulated, articulated and populated in terms of design recommendations. We also briefly reviewed the key requirements for tools allowing unified user interface implementation and the way in which design recommendations are embedded into user interface implementations.. The main conclusions from the present work is that designing and implementing user interfaces for radically different user groups requires a shift in prevalent HCI practice. Such a shift should be characterised by the development of: (i) analytical design approaches capable of capturing how tasks are accomplished by different user groups; and (ii) specification-based frameworks for user interface implementation. Analytical HCI design should spread the focus of design activities both on the artefacts being constructed as well as the reasoning behind them. However, specification-based user interface development environments should progressively replace the currently prevalent programmingintensive approach towards the development of interactive components.. With regard to Intelligent Interface Technology, the current work offers several contributions. First of all, the notion of a multiple metaphor environment provides a new conceptualisation of how intelligent and co-operative interactive behaviour can be attained, through context-sensitive processing, and integrated into an interactive system. Secondly, the unified user interface design method offers an insight into how diversity can be captured and consolidated in rationalised design spaces, which facilitate context-sensitive processing. Finally, the unified user interface development platform contributes towards an improved architectural abstraction for intelligent user interfaces and details how such abstractions can be realised in high level user interface development environments.. On-going and future work seeks to further advance the unified user interface development approach to take account of recent developments in enterprise computing (e.g. distributed and component-based computing) and novel user interface software technologies (e.g. augmented and virtual realities, wearable equipment). This will shed additional light into the economic efficiency and efficacy of the proposed approach in the long run. The unified user interface development method was not developed through an explicit effort to advance Intelligent Interface Technology, but as an attempt towards the construction of multiple metaphor environments, accessible and usable by the broadest possible end user population, including people with disabilities. However, it is argued that the method provides an alternative insight to the design and development of intelligent user interfaces and an example of the reality of this technology in the context of the emerging communication-intensive paradigm for computer-mediated human activities. Specifically, unified user interface development provides a novel perspective on the architectural abstractions for intelligent user interfaces which explicitly accounts for diverse user groups with radically different interaction requirements.. In the past, there have been several attempts to extract a reference model from concrete user interface architectures in order to classify existing prototypes and to guide the construction of user interface software. The best known architectural abstractions of user interface software include the Seeheim, PAC, ALV, MVC and Arch/Slinky models [51] [52] [53] . However, they do not consider user interface adaptation, or intelligent interaction aspects. Moreover, the literature on intelligent user interfaces, offers specific examples as opposed to general architectural abstractions for intelligent systems [5] . Even those, however, limit their scope to address adaptivity, which constitutes only one dimension of user interface adaptation in interactive software systems. They do not explicitly account for the equally important objectives of accessibility and high quality interaction, by users with diverse requirements and, as a result, do not provide design support to facilitate the study of context variety which is the driving requirement for embedded intelligence.. Through experience with the unified user interface development method and by constructing user interface software tools to support the design and development phases, we have been exposed to a wide range of issues regarding the architecture of intelligent user interfaces. Although, a detailed analysis of these issues is beyond the scope of this article, we will be content to provide a summarising account of some key requirements. First, it is argued that intelligent interactive behaviour should be driven from the integration of orthogonal user interface software components, inter-operating according to well defined semantic and message passing protocols. Orthogonality entails, amongst other things, that a user interface development system can utilise (the results or services of) external tools in order to determine, at run-time, the type of interactive behaviour that is to be instantiated and thus, accomplish context sensitive processing.. Secondly, it is important that interactive behaviour is generated from specifications as opposed to programming. Reducing implementation to specification introduces several challenges including the development of powerful specification techniques capable of handling, amongst other things, syntactic and lexical polymorphism. With regards to the phase of generating the user interface implementation, it needs to become more sensitive to design, allowing design principles and recommendations (such as those compiled by USE-IT) to be directly accounted for and embedded into user interface implementation.. Accessibility by different user groups and high quality interaction raise additional issues with regards to how an intelligent interface is to be developed. The novel contribution of the unified user interface design to the study of accessible and high quality interactive software is that accessibility and interaction quality are directly addressed by specific tools and techniques (e.g. polymorphic task hierarchy). To this effect, unified user interface design advocates the encapsulation of alternative accessible interactive behaviours into abstract and reusable design patterns. Additionally, the unified user interface development platform provides the required support for realising accessible and high quality interactive software. This is achieved by providing a suitable run-time environment for the instantiation of the most appropriate design alternative within a design space, so as to facilitate the requirements of a particular user and a given context of use. This functionality is not only additional (and complementary) to the convention of dynamically enhancing the interaction with a single implemented artefact, but most importantly, it extends the scope and range of interactive behaviours that can be supported. Over the years, research on intelligent user interfaces has followed a multitude of alternative strands (for a review see [2] ), building upon notions such as natural language understanding, explanation systems, intelligent tutoring systems, intelligent help systems, computer-aided instruction, multi-modal systems, model-based development, intelligent presentation systems, and agent-based interaction. As a result, several paradigms have been established each advocating a particular perspective upon the design, implementation and evaluation of intelligent interaction. The most prevalent paradigms include user interface adaptation, model-based user interface development and interface agents.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Truthful Mechanisms for Selfish Routing and Two-Parameter Agents We prove a general monotonicity result about Nash flows in directed networks, which generalizes earlier results and can be used for the design of truthful mechanisms in the setting where each edge of the network is controlled by a different selfish agent, who incurs costs when her edge is used.Moreover, we consider a general mechanism design setting with two-parameter agents, which generalizes the well-known setting of one-parameter agents in two directions by allowing nonlinear cost functions and a fixed cost component as part of each agent's private data. We give complete characterizations of the sets of output functions that can be turned into truthful mechanisms for two-parameter agents in the case that an agent always incurs her fixed costs and in the case that she only incurs her fixed costs when she is assigned a positive amount of work. Moreover, we give explicit formulas for the payment functions in both cases and show that the truthful payments are uniquely determined by the output function up to a constant as in the one-parameter setting. Mechanism design is a classical subfield of noncooperative game theory and microeconomics. An introduction to the subject can be found in Chap. 23 of Mas-Colell et al. [10] . The systematic study of algorithmic problems in the context of mechanism design was initiated by a seminal paper of Nisan and Ronen [14] . In algorithmic mechanism design, a mechanism is defined as a pair M = (A, P ) consisting of an (optimization) algorithm A and a payment scheme P defining the side payments to the agents participating in the mechanism. A mechanism is called truthful with dominant strategies (in the sequel simply truthful) or strategyproof if truthtelling is a dominant strategy for every agent, i.e., truthfully revealing her private information maximizes the profit of every agent for any possible behavior of the other agents.. Archer and Tardos [2] considered the important case of algorithmic mechanism design for one-parameter agents. In this setting, the type of each agent i is a single nonnegative real number t i . Each feasible solution x of the global optimization problem results in an amount of work w i (x) being assigned to agent i, who incurs a cost of t i · w i (x) for completing this amount of work. The profit of agent i is defined as the payment she receives from the mechanism minus her cost. Archer and Tardos [2] showed that an algorithm A for an optimization problem with one-parameter agents can be used in a truthful mechanism M = (A, P ) if and only if A is monotone, meaning that, for every agent, the amount of work assigned to her does not increase if her bid increases.. Selfish routing is another active research area these days. The book by Roughgarden [17] provides a comprehensive introduction to the subject. Much work on selfish routing in recent years has focused on quantifying the loss of efficiency due to selfishness. The most common game-theoretic approach is to consider Nash equilibria, i.e., solutions of noncooperative games in which no player has an incentive to unilaterally change her strategy. In nonatomic models of selfish routing as studied in this paper, the traffic routed by the selfish network users is modeled as a network flow and Nash equilibria are commonly referred to as Nash flows. Several authors have recently investigated how Nash flows are influenced by tolls on the network edges [5, 8, 16 ].

O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O O O O O O O


An agent-based algorithm for generalized graph colorings This paper presents an algorithm for solving a number of generalized graph coloring problems. Specifically, it gives an agent-based algorithm for the Bandwidth Coloring problem. Using a standard method for preprocessing the input, the same algorithm can also be used to solve the Multicoloring and Bandwidth Multicoloring problems. In the algorithm a number of agents, called ants, each of which colors a portion of the graph, collaborate to obtain a coloring of the entire graph. This coloring is then further improved by a local optimization algorithm. Experimental results on a set of benchmark graphs for these generalized coloring problems show that this algorithm performs very well compared to other heuristic approaches. The graph coloring problem (GCP) is the problem of coloring the vertices of an undirected graph with as few colors as possible, such that no two adjacent vertices have the same color. This problem is well known to be NP-hard. Many heuristic approaches have been proposed for it including constructive methods [5] [22] , iterative methods [12] , genetic algorithms [30] , local search methods [26] , tabu search methods [17] , and ant system algorithms [6] [8] [9] [11] [30] .. Generalizations of the graph coloring problem include the Bandwidth Coloring, Multicoloring, and Bandwidth Multicoloring problems. They have more constraints placed on the vertices and/or edges of the graph. These generalizations model a collection of useful applications. For instance, the Bandwidth Coloring and Multicoloring problems have been used to model the fixed channel assignment problem, which is to assign frequencies to different cells in a mobile cellular network such that certain frequency separations are satisfied while minimizing the amount of interferences. Furthermore, if each cell must use a number of separate frequencies, then the problem can be modeled by the Bandwidth MultiColoring problem [27] .. As with GCP, these generalizations are also NP-hard. There are several heuristic algorithms for these generalizations including Prestwich's local search and constraint propagation method [29] and Lim et al's hybrid combinations of Squeaky Wheel Optimization (SWO) and Hill Climbing techniques [21, 23] . Recently, Lim et al proposed another approach for these problems by combining SWO and Tabu Search techniques [24] .. In this paper, we propose an agent-based optimization algorithm for these generalized graph coloring problems. We call the agents in our algorithm ants as the agents in our algorithm mimic the collective ability of an ant colony to solve problems. It should be noted that our algorithm is not an ant colony optimization (ACO) algorithm as described in [13] . Among other things, ants in our algorithm do not use pheromone to communicate. Experimental results on a set of 33 benchmark graphs, plus additional constraints for three different generalized coloring problems for a total of 99 problem instances, show that our algorithm produces results that are comparable to those of other algorithms.. The rest of the paper is organized as follows. In Section 2 we give formal definitions for the Graph Coloring problem and its generalizations, and briefly summarize the complexity of finding approximate solutions. We describe our algorithm in Section 3 and present the experimental results in Section 4. The conclusion is given in Section 5. Let G = (V, E), w, d be an instance of the generalized graph coloring problems, where G is a graph with vertex set V , edge set E, w the vertex weight function, and d the edge weight function. We first find an initial coloring of G using a simple greedy algorithm, called IterativeGreedy. We then use a colony of ants to improve on the initial coloring. The algorithm proceeds in a number of cycles. In each cycle, ants are distributed to vertices of the graph based on the conflicts at the vertices. Vertices with higher conflict will be selected first. Each of the ants attempts to color the portion of the graph close to where it is at, using only the set of currently available colors. At the end of a cycle, if there are no conflicts in the current coloring then a local optimization algorithm will attempt to improve the current coloring. If the local optimization algorithm is successful, the number of colors needed will be reduced. This set of colors becomes the current set of available colors. If the local optimization algorithm is not successful, there is no change to the current coloring. Once the local optimization algorithm is finished, the number of colors in the current set of available colors is reduced by one. This is done by deleting the highest number color from the set of available colors. Vertices that were colored with the deleted color are then recolored with another color randomly selected from the reduced set of available colors, and we start another cycle. Note that this recoloring may create a coloring with nonzero conflict.. If the number of conflicts is non-zero for a number of consecutive cycles then the algorithm increases the number of available colors by one before starting another cycle. Other actions might also be taken by the algorithm to bring it out of a potential local optimum before it starts another cycle. Stopping conditions are described in full below. At the end of the algorithm the best coloring found is returned. The complete algorithm is given in Figure 1 . In the following subsections we describe the various parts of the algorithm in details. In this paper we presented an agent-based algorithm for three generalized graph coloring problems. Overall, our algorithm performs very well on a set of benchmark graphs. Agents in our algorithm are called ants, however, they do not have pheromone laying capability, a common component in ant algorithms. We found that in this particular algorithm, simple usage of pheromone to mark individual color increases the algorithm's running time without providing any significant benefit. We are investigating the usage of pheromone to mark coloring patterns as aggregates and not just as individual colors. We expect that pheromone used in this way will retain the constraints in the coloring more accurately, which in turn will help our algorithm's performance. geom20 20 40 geom80 80 429 geom20a 20 57 geom80a 80 692 geom20b 20 52 geom80b 80 743 geom30 30 80 geom90 90 531 geom30a 30 111 geom90a 90 879 geom30b 30 111 geom90b 90 950 geom40 40 118 geom100 100 647 geom40a 40 186 geom100a 100 In this section we describe our agent-based algorithm for the generalized graph coloring problems described in the previous section. This algorithm is based on and extends the algorithm in [6] for the classical graph coloring problem (GCP) . In what follows we use the term conflict at a vertex v to denote the number of vertices adjacent to v having color or color sets that are inconsistent with the coloring of v.. The main idea of the algorithm is for a set of agents, called ants, to color the graph. The ants are distributed on the vertices of input graph based on the conflicts at the vertices. Each ant will color a portion of the graph. These local colorings by the ants together form a coloring for the graph. This is different from the traditional Ant Colony Optimization algorithms, where each ant finds a complete solution to the problem [13] . No ant in our algorithm solves the entire problem by itself. Our algorithm is thus more amenable to a distributed implementation. However, in this paper we do not present such an implementation. Another difference in our approach is that the ants do not have pheromone laying capability 3 . In limited experiments we found that with pheromone the algorithm took longer to converge without providing visible or significant improvement on the quality of the solution.

O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I B O O B O O O O O O O O O O O O O O O O O O O O O O O O O B I O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Kinematic synthesis of a four-link mechanism with rolling contacts for motion and function generation In this paper, the kinematic synthesis of a four-link mechanism with rolling contacts is investigated. This mechanism comprises a two-fingered gripper and a grasped object. The synthesis equations used for motion generation and function generation are established. The number of free choices in design variables for the kinematic synthesis is also discussed. Furthermore, the optimization-based numerical technique is applied to solve the design equations. The optimized solutions are illustrated to discuss the kinematic states of the mechanism. It is also shown that the optimization-based method is effective in finding the admissible synthesis solution of the mechanism. The kinematic synthesis of hinged mechanisms has been studied extensively in connection with four-bar mechanism. Graphical and analytical methods have been established for solving the problem that is related to motion, path, and function generation [1] [2] [3] [4] . However, to our knowledge the kinematic synthesis of mechanism with rolling contacts received little attention in the previous literature. As shown in Fig. 1a , the mechanism is commonly used as gripping mechanism in industry. Usually, it is composed of two crank links, each may be pin-jointed to the ground link. While gripping action takes place, the two links, connected to one actuator via certain linkage, move simultaneously and hence are able to grip the object. The kinematic and static analyses of such mechanism have been well investigated by many researchers [5] . Chen [6, 7] examined the kinematic structures and the force analysis of such grippers. Vassura and Nerozzi [8] presented a study of object handling where a multi-finger gripping mechanism moved an object through various positions and orientations. They showed the possibility of manipulating the object from one position to another by coordinating the gripper's fingers in stages. We now consider the following situation. If the object is gripped by the two links and the contacts between the links are assumed to be pure rolling, the gripper and object form a four-link mechanism with one degree of freedom (Fig. 1b) . Therefore, a limited manipulation of the object can be achieved through the motion of the two cranks. Moreover, in certain application, the object may be jth position of the vector Z i α j angular displacement of link 3 β j angular displacement that the object rolls with respect to link 2 when link 2 rotates an angle φ j δ j δ j = R j − R 1 θ j angular displacement of link 4 φ j angular displacement of link 2 required to pass through several prescribed positions and orientations, or the motions of the cranks are related to each other in a specific manner to complete a given task. In the latter condition, for example, when a robot hand grips an object, the manipulation of the object may be subject to mechanical constraint embedded in the finger such that the angular motion of the finger segments must be controlled according to certain function. Under such circumstances, the mechanism designer is then required to determine the design parameters of the mechanism to meet with a given set of requirements. The kinematic analysis of the four-link mechanism with pure rolling pairs has been well studied by [9] [10] [11] or in the related field of multi-jointed dexterous hands design [12] [13] [14] . Nonetheless, not much literature could be found for the kinematic synthesis of such mechanism. Lee and Tsai [15] studied the synthesis of four-link mechanism for path generation. This work extends Lee and Tsai's work to investigate the syntheses of the mechanism for motion generation and function generation. First, the synthesis equations for the mechanism will be derived using the complex number expression. Then, the optimization method will be applied to solve the synthesis equations. It will be shown that the maximum number of positions that can be synthesized for motion generation is four and for function generation is five. Finally, four numerical examples will be used to show the results of synthesis. In this paper, a methodology for the kinematic synthesis of gripping mechanism with rolling pairs has been developed. Design equations for the mechanism as rigid-body guidance and function generator are derived. It is shown that up to four precision positions of the object can be prescribed for the rigid-body guidance synthesis, and five positions for function generation synthesis. Further, the optimization method for the synthesis is also applied to solve the design equations. Through the above-mentioned four examples, we have successfully shown how to compute the numerical solutions based on the optimization method. It is hopeful that the result of this paper may be useful in the object manipulation planning of the robotic field in the future. There exist many other numerical methods for solving a system of nonlinear equations. As with most numerical iteration methods, the optimization methodology does not guarantee in finding admissible solutions given a set of initial estimates. This effect implies that many local solutions may exist in the system of equations such that the algorithm is still sensitive in finding the global minima of the optimization in our problem. Nonetheless, the optimization methodology does diminish the burden of guessing the 'right' initial values. In this work, we have also tried two searching algorithms to find proper initial values: general genetic algorithm [20] and cyclic coordinate descent (CCD) method [21, 22] . Our experience shows that the CCD method does not converge as well as the method used in this paper while the general genetic searching algorithm yields no solution most of the time. Despite these, advanced searching algorithms may be worth further exploring. Another advantage of using the optimizationbased method is that adding upper/lower bounds for design variables as inequality constraints is easily treated in the formulation. This characteristic may be helpful if more design constraints, which are derived from engineering view points, are to be imposed in the problem.

O O O O O O O B I O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Scalable pedestrian simulation for virtual cities Most of the common approaches for the pedestrian simulation, used in the Graphics/VR community, are bottom-up. The avatars are individually simulated in the space and the overall behavior emerges from their interactions. This can lead to interesting results but it does not scale and can not be applied to populating a whole city. In this paper we present a novel method that can scale to a scene of almost any size. We use a top-down approach where the movement of the pedestrians is computed at a higher level, taking a global view of the model, allowing the flux and densities to be maintained at very little cost at the city level. This information is used for stochastically guiding a more detailed and realistic low level simulation when the user zooms in to a specific region, thus maintaining the consistency.At the heart of the system is an iterative method that models the flow of avatars as a random walk. People are moved around a graph of nodes until the model reaches a steady state which provides feedback for the avatar low level navigation at run time. The Negative Binomial distribution function is used to model the number of people leaving each node while the selected direction is based on the popularity of the nodes through their preference-factor. The preference-factor is a function of a number of parameters including the visibility of a node, the events taking place in it and so on.An important feature of the low-level dynamics is that a user can interactively specify a number of intuitive variables that can predictably modify the collective behavior of the avatars in a region; the density, the flux and the number of people can be selectively modified.Categories and Subject Descriptors[Computer Graphics]: AnimationAlgorithms Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Large virtual urban models, such as those of cities, have been available for several years and are now often used in Virtual Reality applications. However, we rarely see them populated with more than a few avatars which has an impact on their realism and consequently can limit their usefulness. Traditionally one of the main reasons for their sparse population had been the prohibitive cost of rendering the virtual humans. However, recently, the use of modern graphics hardware and acceleration techniques (image and point based rendering [23, 28] , visibility culling [4] and levels of detail [15] ) have helped in populating urban models. Nevertheless, the realistic simulation of avatar behavior can still be an issue.. Most of the common approaches used for avatar simulation are bottom-up. The avatars are individually simulated, step by step at each frame requiring a super-linear number of operations to move them around. Even if some of the methods can lead to visually pleasant results, they simply do not scale to the required numbers for populating a whole city. In this paper we describe a novel top-down approach for describing the high level behavior of avatars in a city that is both scalable and requires minimal user input. By high level we refer to the decisions of the avatars on where they want to go and what they want to do, how long to spend in an area and how fast they should move. Other issues such as avoiding collision, being momentarily distracted by a shop window, or greeting a friend are all part of the low level behavior.. The proposed technique operates in two levels, the macroscopic (or high) level and the microscopic (or low) level. At the macroscopic level we have a global view of the model. Since large populated scenes are very complex environments the particular actions of most individuals are of little importance. What is significant is the collective behavior, i.e. the average (ensemble) behavior of a large number of people, see Figure 1 . Thus, we do not attempt to simulate specifically each and every avatar but rather we employ a statistical approach. On the other end, at the microscopic level, where the viewer might be down at the ground looking at a few avatars, the detail and individuality are important.. In the macroscopic level we estimate the flows and distributions of avatars using the layout of the urban environment, the functionality of each space and any other related information provided by the designer, such as an event taking place somewhere. The flows and distributions are computed at start-up using an iterative method, which usually takes a few seconds to converge. Furthermore, it allows the user to refine the behavior within any region through the use of some intuitive parameters. These will affect primarily the immediate region and to a lesser extend the entire model. The user can have precise control on the number of people in a region with the use of two tools: the preference factor and the probability distribution of each node. The former can simulate the addition of an attractor or an event or a public transport hub and will change the flow of people towards the node. On the other hand, the latter can simulate the change in usage of a node such as a transformation from a business street to a commercial street and will leave the influx of people mostly unchanged but modulate the residence time of each passing avatar in the region, thus increasing (or decreasing) their overall number.. The microscopic level uses the information computed above to guide the avatars at run time. Here, the characteristics of each individual can be taken into account. Avatars will be given the appropriate speed depending on whether they are young or old, in a rush or not. They will be instructed to take a direct path through an area or wander around for a while, depending on whether they are in a hurry to their work or if they are casual passers, and so on. However, these decisions are weighted based on the solution of the high level in such a way as to maintain the distributions and flows.. The two-level simulation provides several advantages over the purely avatar based approaches. For example, the low level behavior needs only be employed for avatars within the visible part of the city -or a small superset of it. In the nonvisible areas, the avatars can be culled away since they can be easily regenerated from the high level data if a specific area is to come into view. The savings in the processing cost can be invested for a more realistic low-level simulation. It is scalable in both the number of avatars and the extent of the urban model, since the on-line requirements are almost negligible. The pre-processing is in the order of seconds for a model with hundreds of roads and junctions, as the one shown in the results. The method starts by reading in a three-dimensional urban model. This is analyzed to identify the different walkable regions, which are classified into roads and junctions/open spaces. All of these regions are treated the same, with each represented by a node in the city graph ( Figure 2 ).. The high level layer operates on the graph to find the steady-state distribution and flows of the avatars in the model. This is an iterative method, computed at pre-processing but can also be updated at run-time whenever the user introduces a change that can influence the solution. Such a user interaction might be the addition/removal of a pedestrian crossing or road, the modification of the parameters related to a node, the triggering of an event such as a concert or a terrorist alert.. Once the high level information is computed then the individual avatars are introduced into the system. The lowlevel simulation navigates the avatars stochastically while the high-level indicates which direction the avatar should take once it has reached a node. The individual characteristics of an avatar can be accounted for in the low level by adding the appropriate bias to the stochastic selection. In this paper we presented a system for specifying the high level behavior of avatars in a large urban setting. The main contributions of this system are (a) the ease of use, as it can derive the initial densities and flows of the avatars automatically based only on the geometry configuration of the model and (b) the precise user-control allowing the user to easily modify the flows and densities in the desired regions by adjusting some intuitive parameters.. Our evaluation has shown that the system is relatively fast to converge and respond. It does not require the simulation of the avatars over the entire network to correctly maintain the densities. Avatars need only be generated within the visible part of the city and are easily re-generated from the simulation densities when a node becomes visible again.. The flexibility of the model allows for the variation of the number of people in the city or the simulation of a popular or unpopular event, even the alteration of the urban structure. These can all be accomplished at interactive rates.. Areas where there is room for improvement include the implementation of congestion and the analytic estimation of the steady-state. As mention in the results, we have not implemented the congestion factor into the system. The consequences of congestion would necessitate the dynamic modification of both the probability density function (pdf) and the preference factor for each node. The pdf has to be modified because pedestrians would spend more time in a congested node and the preference factor has to be modified to account for the fact that pedestrians are less likely to visit a congested node. We tested the system thoroughly to make sure that our assumptions lead to realistic results. We observed that indeed the simulation converged and the number of people in each node matched the expected rip 'I~n.. One of the issues we wanted to test is the sensitivity of the final result of the simulation with regards to the initial positions of the avatars. We initialized our simulation with different distributions at startup, such as spreading the avatars equally, or starting them all up in one corner. Our conclusion was that the resulting steady state does not depend on the initial distribution. If the node parameters and the connectivity are kept constant then the resulting steady state is always the same. It does make some difference though in the time required for convergence. The further the initial distribution is from the final result, the longer it takes to converge.. The method proved to be not only fast but also scalable. In Figure 4 we can see the required time for converging at steady-state. It ranges from 11-34 seconds with a more or less linear increase with respect to the number of nodes. The time needed for re-convergence, once changes are introduced to the system, depends on how large the change is and of how many nodes the system consists. Typically it is in the order of a few seconds, during which the simulation still runs on the background. The iterations for the high-level re-convergence are interleaved with the rendering so it does not stall.. At the moment the number of people placed in the system does not affect the balance between the nodes. An imporrant reason for this is that we have not yet implemented congestion factors for the nodes.. We have run the system on a variety of city models and our results are qualitatively realistic. In Figures i and 5 we see images of a relatively small, hand-build model, while in Figure 8 we have a much bigger procedurally generated model. The latter is based on the GIS data of the city of Nicosia and it is arguably more interesting, not only because it has a much larger network (more than 2000 nodes) but it also gives us an opportunity to test our method against the ground truth.. Starting from the GIS data, the nodes were automatically created. The roads were traced by following along their centerlines and checking the width. At the places where the road opens wider than a certain amount then we assume that we are either entering a junction or a square and thus mark the end of a node by placing a portal. Although it is a simple method the result is satisfactory, as can be seen in the close-up of Figure 6 . The preference factor, the r and the p for each node were again computed automatically as described in Section 5. It is encouraging to see that our results are close to reality as the method has identified most main streets of the city giving them a higher flow of avatars. These are shown in Figure 8 with light blue. In the same figure on the right we can see the effect of adding attractors to a street. ARer obtaining the initial solution, the user decided to modify it by placing shops on one of the roads in the Old Town. That had the effect of increasing the flow of Figure 7 : The low level navigation can be restricted to only the visible nodes (in white), while the rest (in dark brown) is maintained by the high level system. avatars in that specific road and in its immediate neighbors. The change in the rest of the network is less profound.. We populated the Nicosia model with 7,000 avatars but the resulting frame rate was far from real-time, down to 1-2 frames per second. The main cause for the slowdown was the low level behavior and in particular the collision avoidance. The cost of the high level instructions is almost negligible at run-time since the costly part is performed at pre-processing. However, in most cases, especially when the viewer is standing at ground level, only a small fraction of the pedestrians in a city can be seen. With our system it is easy to switch off both the low level simulation and the rendering for the non-visible nodes and maintain consistency using the high level (see Figure 7) . By doing that, only the visible areas are populated saving valuable resources that can be used to improve the detailed behavior and rendering of the relevant regions and hence achieving a high frame rate. Generating realistic behavior for virtual humans has been the subject of considerable previous research in the wider Computer Graphics community [1] . A large part of this work concentrates on producing detailed realistic behavior [26] that can be useable in scenes with just a handful of avatars but would be inefficient to be supported in applications with large populations of virtual humans, such as a city.. Reynolds [21] in his classic paper presented one of the first crowd behaviors, the Boids. This method tackles mainly the problem of a group of entities moving together, pursuing a common goal. Although a very successful approach, it is not directly applicable to a large set of individuals, each going their own way. It can also become costly. Bouvier and Cohen [2] implemented a simulation of a crowd based on a particle system. The human "particles" are assigned a state and a reaction function that govern their behavior within the system. The model is scalable but the behaviors are quite simple and cannot easily account for the individual characteristics of avatars.. Some researchers used a more sociological approach [18] . To enable more human-like reactions, agents are specified by a level of dominance, a level of relationship, an emotional status and are guided by seeking and flocking laws. The work of Thomas and Donikian [25] and of Kallmann and Thalmann [12] store information in the environment to help guide the avatars. In [25] the agents are guided by using a combination of visibility graphs that link points of interest, and Voronoi diagrams that provide routes around those points.. There is relevant work in other fields. Zacharias [30] provides a comprehensive review of many techniques suitable for transportation planning. Some of these could also be relevant for real-time agent simulations. Helbing and Molnar's [10] granular physics agents move according to predetermined flows in simple systems, but have attractive emergent properties, such as forming lanes when two sets of people walk in opposite directions. Other systems of note include PEDFLOW [13] , where agents are programmed with short range vision to guide themselves around obstacles, and the fire-evacuation program EXODUS [7] .. Concepts from Fluid Mechanics have been widely used to model pedestrian flow dynamics and traffic flow [9, 14] . The Cellular Automaton (CA) model has also been widely used [6, 5, 29] because is simple and flexible and provides qualitative insight on the transition between laminar flow and start-stop waves. Related to this model is the lattice gas models with biased random walkers [22, 17] . Both, CA and lattice gas models, can be understood to represent the flow in the Lagrangian frame of reference where each avatar's movement is explicitly computed. However, none of the above is really applicable to real-time graphics. They either too slow and static or have difficulties in accounting for the characteristics of the individual avatars.. An interesting idea that appears recurrently is the addition of visual fields to the agents. Adding a complete visual system [24] is hard and expensive however, there have been a number of approaches trying to utilize the visual field for movement in a complex environment [19] . Such approaches tend to follow a form of 'natural movement', that is, general, non-goal specific movement, based on the assumption that people follow their line of sight [11] . In [11] they applied analytic techniques and discovered that the numbers of people found in urban environments appeared to follow some form of natural movement. Following that, Penn and Turner [20] considered using an 'exosomatic visual architecture' (EVA). They applied a grid over the environment and precalculated the visibility connections between all pairs of locations in the grid, and used this as a look-up table to find possible visible next destinations for agents. Turner and Penn [27] demonstrated that using an EVA and simple natural movement rules, human-like behavior can be produced inside a building.. To summarize, the proposed method is probably the first top-down approach in the Computer Graphics literature that can take on models of such scale. Although large scale topdown methods have been proposed in other fields they are geared towards predicting accurate flows rather, rather than producing a realistic, user controlled, real-time VR simulation.

O B I O O O O O O O O O O B I O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O