Abstract
This paper introduces a new Graphical User Interface (GUI) and Interaction framework based on the Entity-Component-System model (ECS). In this model, interactive elements (Entities) are characterized only by their data (Components). Behaviors are managed by continuously running processes (Systems) which select entities by the Components they possess. This model facilitates the handling of behaviors and promotes their reuse. It provides developers with a simple yet powerful composition pattern to build new interactive elements with Components. It materializes interaction devices as Entities and interaction techniques as a sequence of Systems operating on them. We present Polyphony, an experimental toolkit implementing this approach, and discuss our interpretation of the ECS model in the context of GUIs programming.
- Georg Apitz and Franc cois Guimbretière. 2004. CrossY: A Crossing -Based Drawing Application. In Proceedings of the 17th Annual ACM Symposium on User Interface Software and Technology (UIST '04). ACM, New York, NY, USA, 3--12. Google ScholarDigital Library
- Caroline Appert and Michel Beaudouin-Lafon. 2008. SwingStates : Adding State Machines to Java and the Swing Toolkit. Software: Practice and Experience, Vol. 38, 11 (Sept. 2008), 1149--1182. Google ScholarDigital Library
- Caroline Appert, Stéphane Huot, Pierre Dragicevic, and Michel Beaudouin-Lafon. 2009. FlowStates : Prototypage D 'Applications Interactives Avec Des Flots De DonnÉEs Et Des Machines À ÉTats. In Proceedings of the 21st International Conference on Association Francophone D 'Interaction Homme-Machine (IHM '09). ACM, New York, NY, USA, 119--128. Google ScholarDigital Library
- Apple Inc. 2016. GameplayKit Programming Guide : Entities and Components. https://developer.apple.com/library/content/documentation/General/Conceptual/GameplayKit_Guide/EntityComponent.html.Google Scholar
- Greg J. Badros, Alan Borning, and Peter J. Stuckey. 2001. The Cassowary Linear Arithmetic Constraint Solving Algorithm. ACM Trans. Comput.-Hum. Interact., Vol. 8, 4 (Dec. 2001), 267--306. Google ScholarDigital Library
- Michel Beaudouin-Lafon and Henry Michael Lassen. 2000. The Architecture and Implementation of CPN2000, a Post-WIMP Graphical Application. In Proceedings of the 13th Annual ACM Symposium on User Interface Software and Technology (UIST '00). ACM, New York, NY, USA, 181--190. Google ScholarDigital Library
- Benjamin B. Bederson, Jesse Grosjean, and Jon Meyer. 2004. Toolkit Design for Interactive Structured Graphics. IEEE Transactions on Software Engineering, Vol. 30, 8 (Aug. 2004), 535--546. Google ScholarDigital Library
- Benjamin B. Bederson, Jon Meyer, and Lance Good. 2000. Jazz: An Extensible Zoomable User Interface Graphics Toolkit in Java. In Proceedings of the 13th Annual ACM Symposium on User Interface Software and Technology (UIST '00). ACM, New York, NY, USA, 171--180. Google ScholarDigital Library
- Scott Bilas. 2002. A Data -Driven Game Object System.Google Scholar
- L. Bishop, D. Eberly, T. Whitted, M. Finch, and M. Shantz. 1998. Designing a PC Game Engine. IEEE Computer Graphics and Applications, Vol. 18, 1 (Jan. 1998), 46--53. Google ScholarDigital Library
- Renaud Blanch and Michel Beaudouin-Lafon. 2006. Programming Rich Interactions Using the Hierarchical State Machine Toolkit. In Proceedings of the Working Conference on Advanced Visual Interfaces (AVI '06). ACM, New York, NY, USA, 51--58. Google ScholarDigital Library
- Gilad Bracha and William Cook. 1990. Mixin-Based Inheritance. In Proceedings of the European Conference on Object -Oriented Programming on Object -Oriented Programming Systems, Languages, and Applications (OOPSLA/ECOOP '90). ACM, New York, NY, USA, 303--311. Google ScholarDigital Library
- Marcellin Buisson, Alexandre Bustico, Stéphane Chatty, Francois-Régis Colin, Yannick Jestin, Sébastien Maury, Christophe Mertz, and Philippe Truillet. 2002. Ivy: Un Bus Logiciel Au Service Du Développement De Prototypes De Systèmes Interactifs. In Proceedings of the 14th Conference on L 'Interaction Homme -Machine (IHM '02). ACM, New York, NY, USA, 223--226.Google ScholarDigital Library
- Géry Casiez and Nicolas Roussel. 2011. No More Bricolage!: Methods and Tools to Characterize, Replicate and Compare Pointing Transfer Functions. In Proceedings of the 24th Annual ACM Symposium on User Interface Software and Technology (UIST '11). ACM, New York, NY, USA, 603--614. Google ScholarDigital Library
- Stéphane Chatty, Mathieu Magnaudet, and Daniel Prun. 2015. Verification of Properties of Interactive Components from Their Executable Code. In Proceedings of the 7th ACM SIGCHI Symposium on Engineering Interactive Computing Systems (EICS '15). ACM, New York, NY, USA, 276--285. Google ScholarDigital Library
- Gael Curry, Larry Baer, Daniel Lipkie, and Bruce Lee. 1982. Traits: An Approach to Multiple -Inheritance Subclassing. In Proceedings of the SIGOA Conference on Office Information Systems. ACM, New York, NY, USA, 1--9. Google ScholarDigital Library
- Brian Dorn, Adam Stankiewicz, and Chris Roggi. 2013. Lost While Searching: Difficulties in Information Seeking Among End -User Programmers. In Proceedings of the 76th ASIS &T Annual Meeting : Beyond the Cloud : Rethinking Information Boundaries (ASIST '13). American Society for Information Science, Silver Springs, MD, USA, 21:1--21:11. Google ScholarDigital Library
- Pierre Dragicevic and Jean-Daniel Fekete. 2001. Input Device Selection and Interaction Configuration with ICON. In People and Computers XV-Interaction without Frontiers. Springer, London, 543--558.Google Scholar
- Ekwa Duala-Ekoko and Martin P. Robillard. 2012. Asking and Answering Questions About Unfamiliar APIs : An Exploratory Study. In Proceedings of the 34th International Conference on Software Engineering (ICSE '12). IEEE Press, Piscataway, NJ, USA, 266--276.Google Scholar
- James R. Eagan, Michel Beaudouin-Lafon, and Wendy E. Mackay. 2011. Cracking the Cocoa Nut : User Interface Programming at Runtime. In Proceedings of the 24th Annual ACM Symposium on User Interface Software and Technology (UIST '11). ACM, New York, NY, USA, 225--234. Google ScholarDigital Library
- Ecma International. 2015. ECMAScript 2015 Language Specification textendash ECMA -262 6th Edition. http://www.ecma-international.org/ecma-262/6.0/index.html .Google Scholar
- Alix Goguey, Géry Casiez, Thomas Pietrzak, Daniel Vogel, and Nicolas Roussel. 2014. Adoiraccourcix: Multi -Touch Command Selection Using Finger Identification. In Proceedings of the 26th Conference on L 'Interaction Homme -Machine (IHM '14). ACM, New York, NY, USA, 28--37. Google ScholarDigital Library
- Google Inc. 2015. CORGI : Main Page. http://google.github.io/corgi/.Google Scholar
- Scott E. Hudson, Jennifer Mankoff, and Ian Smith. 2005. Extensible Input Handling in the subArctic Toolkit. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '05). ACM, New York, NY, USA, 381--390. Google ScholarDigital Library
- Stéphane Huot, Pierre Dragicevic, and Cédric Dumas. 2006. Flexibilité Et Modularité Pour La Conception D 'Interactions : Le Modèle D 'Architecture Logicielle Des Graphes Combinés. In Proceedings of the 18th Conference on L 'Interaction Homme -Machine (IHM '06). ACM, New York, NY, USA, 43--50. Google ScholarDigital Library
- Stéphane Huot, Cédric Dumas, Pierre Dragicevic, Jean-Daniel Fekete, and Gérard Hégron. 2004. The MaggLite Post-WIMP Toolkit : Draw It, Connect It and Run It. In Proceedings of the 17th Annual ACM Symposium on User Interface Software and Technology (UIST '04). ACM, New York, NY, USA, 257--266. Google ScholarDigital Library
- Kenrick Kin, Björn Hartmann, Tony DeRose, and Maneesh Agrawala. 2012. Proton: Multitouch Gestures As Regular Expressions. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '12). ACM, New York, NY, USA, 2885--2894. Google ScholarDigital Library
- Sam Lantinga. 1998. Simple DirectMedia Layer - Homepage. http://libsdl.org/.Google Scholar
- Eric Lecolinet. 2003. A Molecular Architecture for Creating Advanced GUIs. In Proceedings of the 16th Annual ACM Symposium on User Interface Software and Technology (UIST '03). ACM, New York, NY, USA, 135--144. Google ScholarDigital Library
- Tom Leonard. 1999. Postmortem: Thief : The Dark Project. https://www.gamasutra.com/view/feature/131762/postmortem_thief_the_dark_project.php .Google Scholar
- Quentin Limbourg, Jean Vanderdonckt, Benjamin Michotte, Laurent Bouillon, and V'ictor López-Jaquero. 2005. USIXML : A Language Supporting Multi -Path Development of User Interfaces. In Engineering Human Computer Interaction and Interactive Systems (Lecture Notes in Computer Science), Rémi Bastide, Philippe Palanque, and Jörg Roth (Eds.). Springer Berlin Heidelberg, 200--220. Google ScholarDigital Library
- Adam Martin. 2007. Entity Systems Are the Future of MMOG Development textendash Part 1.Google Scholar
- Brad A. Myers. 1990. A New Model for Handling Input. ACM Trans. Inf. Syst., Vol. 8, 3 (July 1990), 289--320. Google ScholarDigital Library
- Brad A. Myers. 1991. Separating Application Code from Toolkits : Eliminating the Spaghetti of Call -Backs. In Proceedings of the 4th Annual ACM Symposium on User Interface Software and Technology (UIST '91). ACM, New York, NY, USA, 211--220. Google ScholarDigital Library
- Brad A. Myers, Richard G. McDaniel, Robert C. Miller, Alan S. Ferrency, Andrew Faulring, Bruce D. Kyle, Andrew Mickish, Alex Klimovitski, and Patrick Doane. 1997. The Amulet Environment: New Models for Effective User Interface Software Development. IEEE Transactions on Software Engineering, Vol. 23, 6 (June 1997), 347--365. Google ScholarDigital Library
- Brad A. Myers, Sun Young Park, Yoko Nakano, Greg Mueller, and Andrew Ko. 2008. How Designers Design and Program Interactive Behaviors. In 2008 IEEE Symposium on Visual Languages and Human -Centric Computing. 177--184. Google ScholarDigital Library
- Brad A. Myers and Mary Beth Rosson. 1992. Survey on User Interface Programming. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '92). ACM, New York, NY, USA, 195--202. Google ScholarDigital Library
- Dan R. Olsen, Jr. 2007. Evaluating User Interface Systems Research. In Proceedings of the 20th Annual ACM Symposium on User Interface Software and Technology (UIST '07). ACM, New York, NY, USA, 251--258. Google ScholarDigital Library
- Adrian Papari. 2018. Artemis-Odb: A Continuation of the Popular Artemis ECS Framework.Google Scholar
- Fabio Paterno', Carmen Santoro, and Lucio Davide Spano. 2009. MARIA : A Universal, Declarative, Multiple Abstraction -Level Language for Service -Oriented Applications in Ubiquitous Environments. ACM Trans. Comput.-Hum. Interact., Vol. 16, 4 (Nov. 2009), 19:1--19:30. Google ScholarDigital Library
- prime31. 2018. Nez Is a Free 2D Focused Framework That Works with MonoGame and FNA.Google Scholar
- Thibault Raffaillac and Stéphane Huot. 2018. Applying the Entity -Component-System Model to Interaction Programming. In Proceedings of the 30th Conference on L 'Interaction Homme -Machine (IHM '18). ACM, New York, NY, USA, 42--51.Google ScholarDigital Library
- Michael Sannella, John Maloney, Bjorn Freeman-Benson, and Alan Borning. 1993. Multi-Way versus One-Way Constraints in User Interfaces: Experience with the Deltablue Algorithm. Software: Practice and Experience, Vol. 23, 5 (1993), 529--566. Google ScholarDigital Library
- Simon Schmid. 2018. Entitas-CSharp : Entitas Is a Super Fast Entity Component System (ECS ) Framework Specifically Made for C # and Unity.Google Scholar
- Lucio Davide Spano, Antonio Cisternino, and Fabio Paternò. 2012. A Compositional Model for Gesture Definition. In Human-Centered Software Engineering (Lecture Notes in Computer Science), Marco Winckler, Peter Forbrig, and Regina Bernhaupt (Eds.). Springer Berlin Heidelberg, 34--52. Google ScholarDigital Library
- Richard N. Taylor, Nenad Medvidovic, Kenneth M. Anderson, E. James Whitehead, Jr., and Jason E. Robbins. 1995. A Component - and Message -Based Architectural Style for GUI Software. In Proceedings of the 17th International Conference on Software Engineering (ICSE '95). ACM, New York, NY, USA, 295--304. Google ScholarDigital Library
- Unity Technologies. 2017. Unity - Scripting API : MonoBehaviour. https://docs.unity3d.com/ScriptReference/MonoBehaviour.html .Google Scholar
- W3C. 1996. Cascading Style Sheets, Level 1. https://www.w3.org/TR/CSS1/.Google Scholar
- Minhaz F. Zibran, Farjana Z. Eishita, and Chanchal Kumar Roy. 2011. Useful, But Usable Factors Affecting the Usability of APIs. In 2011 18th Working Conference on Reverse Engineering. 151--155. Google ScholarDigital Library
Index Terms
- Polyphony: Programming Interfaces and Interactions with the Entity-Component-System Model
Recommendations
Applying the entity-component-system model to interaction programming
IHM '18: Proceedings of the 30th Conference on l'Interaction Homme-MachineThis paper introduces a new GUI framework based on the Entity-Component-System model (ECS), where interactive elements (Entities) can acquire any data (Components). Behaviors are managed by continuously running processes (Systems) which select entities ...
Lessons learned from SUIT, the simple user interface toolkit
Special issue on user interface software and technologyIn recent years, the computer science community has realized the advantages of GUIs (Graphical User Interfaces). Because high-quality GUIs are difficult to build, support tools such as UIMSs, UI Toolkits, and Interface Builders have been developed. ...
A toolkit for peer-to-peer distributed user interfaces: concepts, implementation, and applications
EICS '09: Proceedings of the 1st ACM SIGCHI symposium on Engineering interactive computing systemsIn this paper we present a software toolkit for deploying peer-to-peer distributed graphical user interfaces across four dimensions: multiple displays, multiple platforms, multiple operating systems, and multiple users, either independently or ...
Comments