GUIs for real-time programs using universal pointers

  • Authors:
  • Morgan McGuire

  • Affiliations:
  • Williams College

  • Venue:
  • ACM SIGGRAPH 2008 posters
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Most GUI systems follow designs from the 1980's that use programmer effort (e.g., boilerplate code and duplicate state) to reduce rendering and event delivery time. This makes little sense today, when a GPU can render millions of polygons and a CPU can touch billions of variables in a second. Our system reverses the historical design: it reduces coding effort by leveraging fast processors. This produces easy-to-write, skinnable GUIs that render fast, yet still provide a desirable separation of program and UI state. Key to our design is a new data structure called the Universal Pointer. This eliminates most repetitive event-handlers, GUI-specific variables, and duplicate state in real-time programs. We then build an API under which it takes only seconds to write a GUI and there is little code to then maintain. This even makes it practical to throw together ad-hoc GUIs during debugging, a practice we've found to be a real advantage and have used for two years on all of our research papers and consulting roles.