Frederik Brudy†1,2, David Ledo†1,3, Michel Pahud1, Nathalie Henry Riche1, Christian Holz1,4, Anandghan Waghmare1,5, Hemant Bhaskar Surale1,6, Marcus Peinado1, Xiaokuan Zhang1,7, Shannon Joyner1,8, Badrish Chandramouli1, Umar Farooq Minhas1, Jonathan Goldstein1, William Buxton1, Ken Hinckley1
1Microsoft Research, Redmond  ·  2University College London  ·  3University of Calgary  ·  4ETH Zürich  ·  5Georgia Institute of Technology  ·  6University of Waterloo  ·  7Ohio State University  ·  8Cornell University
†The first two authors contributed equally.
Conference paper · UIST '20: ACM Symposium on User Interface Software and Technology, Virtual Event, USA
Illustration of a tablet with floating semi-transparent Applets, including image cards, a color picker, and a red and blue Portfolio case, connected by lines to a desktop monitor, a laptop, and a document page. Labels read Applets, Portfolios, and Promises.
SurfaceFleet unbinds UI elements from the device, the application, the user, and time. Applets unbind controls from applications, Portfolios unbind content and tools from devices and people, and Promises unbind actions from time. Figure from the paper.

Quick facts

The things we work with, such as a clipboard, a color picker, or a photo we still need, are usually tied to one device, one app, one person, and the present moment. SurfaceFleet, led by Frederik Brudy (University College London) and David Ledo (University of Calgary) at Microsoft Research, is a working Windows system that loosens all four ties at once. Overall, our work contributes:

  1. A framing of mobility as transitions in “place” along four cornerstones of unboundedness: device, application, user, and time.
  2. The SurfaceFleet system, built on a resilient distributed-systems foundation (Ambrosia) that logs every change to shared state, so moving to another device becomes a cross-device fail-over.
  3. A preliminary toolkit for writing SurfaceFleet applications in C# without deep prior expertise in distributed systems.
  4. Interaction techniques, explored as technology probes: Applets, Portfolios, Interaction Promises, Tools, Media Primitives, and Containers.

Abstract

Knowledge work increasingly spans multiple computing surfaces. Yet in status quo user experiences, content as well as tools, behaviors, and workflows are largely bound to the current device: running the current application, for the current user, and at the current moment in time. SurfaceFleet is a system and toolkit that uses resilient distributed programming techniques to explore cross-device interactions that are unbounded in these four dimensions of device, application, user, and time. As a reference implementation, we describe an interface built using Surface Fleet that employs lightweight, semi-transparent UI elements known as Applets. Applets appear always-on-top of the operating system, application windows, and (conceptually) above the device itself. But all connections and synchronized data are virtualized and made resilient through the cloud. For example, a sharing Applet known as a Portfolio allows a user to drag and drop unbound Interaction Promises into a document. Such promises can then be fulfilled with content asynchronously, at a later time (or multiple times), from another device, and by the same or a different user.

The idea: unbind the action, not just the file

Services like Dropbox, OneDrive, and Google Drive synchronize whole files and folders, and Slack and Teams share inside their own app. SurfaceFleet works at a finer grain: single pieces of content, tools, and inputs. Every change to shared state is written to a durable, replayable log in the cloud, so any device in a group (a federation) can catch up by replaying it, right away or later. That one mechanism lets a single drag and drop cross all four boundaries.

Alice cloud log John desktop, Word replayable on site, camera drags empty image Applet into Word P created drops P into a shared Portfolio P shared later replay device catches up: P is in Portfolio snaps a photo to fulfill P P = photo replay Word placeholder updates by its ID every step is one state change in the log on each device Applet floats above any app window unmodified apps drag & drop, COM, clipboard formats window manager Windows device desktop, tablet, or large display [Synchronizable] state changes s1 s2 s3 s4 s5 s6 durable log of state changes (Ambrosia, CRA, Azure) a new device replays the log, so switching devices is a fail-over
One Interaction Promise from creation to fulfillment, crossing an application (Word), a second device and user (John, on site), and time (it is filled later). Each step is one change to shared state; the other device catches up by replaying the log. The layer view shows where an Applet sits on a device and where its state lives.

Each of the four cornerstones maps to one part of the design:

  • Device: each client keeps a local copy of shared state, and a device that joins replays the log. Moving activity to another machine is a special case of fail-over.
  • Application: Applets are independent programs that float above the window manager. They reach unmodified programs through drag and drop, the system clipboard, and COM plugins, rather than living inside a browser or one sharing app.
  • User: the Portfolio that carries your own work between devices also passes it to a collaborator. Individual tools are collaborative tools, and vice versa.
  • Time: an Interaction Promise is a placeholder for content that does not exist yet. It can be fulfilled later, and more than once.

System and toolkit

Platform. SurfaceFleet runs on Windows and is written in C# with the .NET Framework and Windows Presentation Foundation (WPF).

Shared state. We built a custom infrastructure on top of Ambrosia, an open-source system that captures state changes in a deterministically replayable log, persisted through Azure. Ambrosia uses CRA, which virtualizes connections between devices, so the system is robust to IP address changes. Clients in a federation reach the shared state through a federation-specific connection string.

Programming model. Developers tag a property as [Synchronizable] and subscribe to ModelUpdated events for remote changes. They write no extra logic for distributed failure cases. The toolkit handles basic types, images, colors, lists, and dictionaries, and developers can add their own classes with a C# DataContract.

Working with existing apps. Dragging an image Applet puts three formats on the drag: a file path to a copy of the image, a bitmap in several formats for unmodified programs, and an internal ID for SurfaceFleet components. Plugins use COM to integrate with Word, Illustrator, Photoshop, and PowerPoint. In Word, a Promise is an invisible bookmark with a unique ID around a placeholder image; on fulfillment, SurfaceFleet finds the ID and replaces the content.

Trust. Clients must run an organizationally approved operating system image. Windows device attestation through the CPU’s Trusted Platform Module (TPM) checks this before a device receives the key to a federation’s shared state.

Layered architecture diagram. Top: Applets such as Portfolios, Tools, and Media primitives. Below: cross-application features (access through WPF, Win32, and COM APIs, multiple formats in the system clipboard, SurfaceFleet plugins) connecting to Word, Illustrator, PowerPoint, and others. Middle: client devices. Bottom: API and tools (Synchronizeable tagging, data contracts, property change notification, state data at about 60 ms latency and transient data at about 15 ms), over Ambrosia, CRA, and Azure.
The system, toolkit, and underlying technical components. The figure lists a latency of about 60 ms for state data and about 15 ms for transient data, which bypasses the log. Figure from the paper.

Interaction techniques

SurfaceFleet has five mechanisms that users combine to unbind content and tools:

  1. Portfolios: like an art portfolio case, a shared portal for content and tools. A Portfolio wiggles when something is dragged over it, shows its contents sticking out on every device that has access, and gives an item back as a floating Applet on a double-tap.
  2. Interaction Promises: placeholders for content that is not available yet. All placeholders linked to the same Applet update when it changes, locally, on another device, or by another user. A Promise can also return a Container with several options to choose from.
  3. Tools: Applets for generic commands, such as a Color Picker that samples a pixel from any device, a Camera tool, Tele-point and Tele-type for passing your mouse or keyboard to another device, Screen Grab, Extract (a snapshot of the visible page), and a Clipboard tool.
  4. Media Primitives: single pieces of content (images, rich text, or colors) lifted into floating Applets that can be dropped into Word, Illustrator, PowerPoint, Photoshop, File Explorer, or other Applets.
  5. Containers: a fanned-out sheaf of items that works as a multi-object visual clipboard. Linked to the Clipboard tool and shared through a Portfolio, it becomes a distributed clipboard.
Three steps. Instantiation: an empty image Applet is dragged into a Word document, creating a dynamic link. First fulfillment: an image is dropped from File Explorer onto the Applet. Update: all placeholders in the Word document show the new image.
Interaction Promises: (1) the user drags an empty placeholder into a document, then (2) populates it with an initial image, or (3) receives updates when the linked Applet is fulfilled from other devices or by other users. Figure from the paper.

What do we learn?

The paper presents design probes rather than a controlled study. The lessons below come from building and using the system ourselves and from preliminary pilot feedback.

1. A few concepts combine into many workflows

In our usage scenario, an architect named Alice creates a Portfolio, collects site photos into a Container on her tablet on the train and opens them on her office desktop, inserts a placeholder that her on-site co-worker John fills with a photo, and, in a meeting, works with two colleagues who pass their mouse pointers to a large display. All four steps reuse the same five mechanisms. Because sharing is split into small Applets and Tools rather than whole files, people can share parts of documents and other intermediate work.

Four-row illustrated storyboard: S1, main interface and Portfolio creation from the SurfaceFleet taskbar; S2, dragging images on a tablet into a Container in a Portfolio that syncs to a desktop; S3, Alice drags an empty image Applet into Word and shares it, John takes a photo to fulfill it, and her document auto-updates; S4, colleagues share telepointers on a large display and extract copies of a page.
The usage scenario spans devices, applications, users, and time with Portfolios, Containers, Interaction Promises, and Tools. Figure from the paper.

2. Current tools each cover only part of the problem

Each kind of unbinding has precedents, but existing services handle them separately: file and folder sync (Dropbox, OneDrive, Google Drive), messaging silos (Slack, Teams), second screens and handoff (Apple Continuity), and collaborative editing inside one app (Office 365, Google Docs). SurfaceFleet is the first distributed system to address all four cornerstones simultaneously, for both tools and pieces of content, with only a few toolkit abstractions and interactions.

Comparison grid with four columns: Device unbound, App unbound, User unbound, Time unbound. The top row shows SurfaceFleet's approach in each (Portfolios and Containers, Applets, Promises, Promises). The bottom row shows current approaches: file-centric sync such as Dropbox, application-centric silos, separate tools for single and multiple users, and collaboration within application silos.
SurfaceFleet (top row) compared with current approaches (bottom row) for each cornerstone. Figure from the paper.

3. The current design suits small, active work

The interface is meant for transient work-objects in active use, not the long tail of items in cold storage: a single active project rather than an archive, small groups rather than large meetings, and semi-private sharing among trusted peers rather than open participation. Leaving Applets around like papers on a messy desk might not scale to hundreds of them. These choices belong to the current probes, not to the four cornerstones, the distributed-systems foundation, or the toolkit.

Limitations

  • No formal evaluation. We make no strong claims that SurfaceFleet makes distributed work “better”, and it is not yet developed enough to deploy for real work or longitudinal studies.
  • Feedback and awareness. The interface does not show which devices or users a Portfolio is shared with, or who is connected. We rely on social protocol, which leaves room for dragging something private into the wrong Applet.
  • No device discovery. The system does not sense nearby devices or services to form federations automatically.
  • Packaging. The technical foundation has many layers that would need better packaging to be usable and maintainable, and the system runs on Windows only. At the time, we were investigating distributed interactions for JavaScript and Android through Ambrosia and CRA.

Publication

Frederik Brudy, David Ledo, Michel Pahud, Nathalie Henry Riche, Christian Holz, Anandghan Waghmare, Hemant Bhaskar Surale, Marcus Peinado, Xiaokuan Zhang, Shannon Joyner, Badrish Chandramouli, Umar Farooq Minhas, Jonathan Goldstein, William Buxton, and Ken Hinckley. 2020. SurfaceFleet: Exploring Distributed Interactions Unbounded from Device, Application, User, and Time. In Proceedings of the 33rd Annual ACM Symposium on User Interface Software and Technology (UIST ‘20), Virtual Event, USA. ACM, 7-21. https://doi.org/10.1145/3379337.3415874

BibTeX

@inproceedings{brudy2020surfacefleet,
  title     = {SurfaceFleet: Exploring Distributed Interactions Unbounded from Device, Application, User, and Time},
  author    = {Brudy, Frederik and Ledo, David and Pahud, Michel and Henry Riche, Nathalie and Holz, Christian and Waghmare, Anandghan and Surale, Hemant Bhaskar and Peinado, Marcus and Zhang, Xiaokuan and Joyner, Shannon and Chandramouli, Badrish and Minhas, Umar Farooq and Goldstein, Jonathan and Buxton, William and Hinckley, Ken},
  booktitle = {Proceedings of the 33rd Annual ACM Symposium on User Interface Software and Technology},
  series    = {UIST '20},
  location  = {Virtual Event, USA},
  pages     = {7--21},
  year      = {2020},
  publisher = {ACM},
  doi       = {10.1145/3379337.3415874}
}

Contact

Questions? Feel free to contact:

  • Frederik Brudy, Microsoft Research and University College London: f.brudy [at] cs.ucl.ac.uk
  • David Ledo, Microsoft Research and University of Calgary: david.ledo [at] ucalgary.ca
  • Hemant Bhaskar Surale, Microsoft Research and University of Waterloo: hemant.surale [at] gmail.com

Figures are from the paper (© 2020 ACM) and are reproduced here by the authors.