skip to main content
research-article

Polyphony: Programming Interfaces and Interactions with the Entity-Component-System Model

Published:13 June 2019Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. Apple Inc. 2016. GameplayKit Programming Guide : Entities and Components. https://developer.apple.com/library/content/documentation/General/Conceptual/GameplayKit_Guide/EntityComponent.html.Google ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. Scott Bilas. 2002. A Data -Driven Game Object System.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle Scholar
  19. 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 ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. Ecma International. 2015. ECMAScript 2015 Language Specification textendash ECMA -262 6th Edition. http://www.ecma-international.org/ecma-262/6.0/index.html .Google ScholarGoogle Scholar
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. Google Inc. 2015. CORGI : Main Page. http://google.github.io/corgi/.Google ScholarGoogle Scholar
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. Sam Lantinga. 1998. Simple DirectMedia Layer - Homepage. http://libsdl.org/.Google ScholarGoogle Scholar
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. Tom Leonard. 1999. Postmortem: Thief : The Dark Project. https://www.gamasutra.com/view/feature/131762/postmortem_thief_the_dark_project.php .Google ScholarGoogle Scholar
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. Adam Martin. 2007. Entity Systems Are the Future of MMOG Development textendash Part 1.Google ScholarGoogle Scholar
  33. Brad A. Myers. 1990. A New Model for Handling Input. ACM Trans. Inf. Syst., Vol. 8, 3 (July 1990), 289--320. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. Adrian Papari. 2018. Artemis-Odb: A Continuation of the Popular Artemis ECS Framework.Google ScholarGoogle Scholar
  40. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  41. prime31. 2018. Nez Is a Free 2D Focused Framework That Works with MonoGame and FNA.Google ScholarGoogle Scholar
  42. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  43. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  44. Simon Schmid. 2018. Entitas-CSharp : Entitas Is a Super Fast Entity Component System (ECS ) Framework Specifically Made for C # and Unity.Google ScholarGoogle Scholar
  45. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  46. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  47. Unity Technologies. 2017. Unity - Scripting API : MonoBehaviour. https://docs.unity3d.com/ScriptReference/MonoBehaviour.html .Google ScholarGoogle Scholar
  48. W3C. 1996. Cascading Style Sheets, Level 1. https://www.w3.org/TR/CSS1/.Google ScholarGoogle Scholar
  49. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Polyphony: Programming Interfaces and Interactions with the Entity-Component-System Model

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image Proceedings of the ACM on Human-Computer Interaction
        Proceedings of the ACM on Human-Computer Interaction  Volume 3, Issue EICS
        June 2019
        553 pages
        EISSN:2573-0142
        DOI:10.1145/3340630
        Issue’s Table of Contents

        Copyright © 2019 ACM

        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. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 13 June 2019
        Published in pacmhci Volume 3, Issue EICS

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader