“GUIs for real-time programs using universal pointers”

  • ©




    GUIs for real-time programs using universal pointers


    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.


    1. Barrett, S. 2005. The inner product. Game Developer Magazine (Sept.).
    2. Ignatoff, D., Cooper, G. H., and Krishnamurthi, S. 2006. Crossing state lines: Adapting object-oriented frameworks to functional reactive languages. In FLOPS, 259–276.
    3. Wan, Z. 2002. Functional Reactive Programming for Real-Time Reactive Systems. Ph.d. dissertation, Computer Science Dept., Yale University.

ACM Digital Library Publication:

Overview Page: