Pittsburgh, PA

My Role

UX & Visual Design


Dec 2015

Infinity is a smart message composing keyboard that simplifies and enables faster communication between two people. The system allows people to take their message in a way that is easily understood and processed by smart agents that can recommend answers based on the receiver's calendar, email and social media activity. 




Working with a fellow designer, Yaakov, we researched and developed the concept together. I led the visual design of the project including iterations on prototypes, presentations, and more. Also, I collaborated in user testing the prototypes.


Every day, people send many text messages and emails to their friends asking for specific information like establishing a meeting time, getting the name of a specific song, getting the address of someone’s home, or finding out when their flight lands. The sender of the message wants to get a fast response back, but often it's difficult for the person on the other end to find the information quickly. The slow response time comes from the heavy mental load that the receiver of the message is put under while they dig through many layers of data to find the appropriate information before they can reply back. This creates a bottleneck in the exchange of information between two people.





Infinity, a smart message composing keyboard, takes the workload off of the receiver of the message and puts it on the sender to help get a faster and more accurate response. By downloading and installing the Infinity keyboard, users can easily access the keyboard on a messaging application.


How it works


Sender of the Request

  1. Downloads and installs smart keyboard from app store
  2. Opens keyboard and start typing message normally
  3. When they want to get a specific information type, they hit the Infinity key to create a tag

Receiver of the Request

  1. The smart agent interprets the tags and searches through the receivers calendar, social media, email, and other sources to recommend an answer
  2. The receiver gives final confirmation before sending the message

Other Use Cases


When only Sender has the Infinity Keyboard and Receiver does not

  1. Sender goes through same steps as they would to the receiver with Infinity installed
  2. Additional message is sent by Infinity to the Receiver
  3. The message informs the receiver that the it is composed with Infinity and encourages the receiver to download and install the keyboard by providing motivation that Infinity can help retrieve information faster



    When only Receiver has the Infinity Keyboard and Sender does not

    1. Infinity replies back to the sender that it noticed the message as a request for an answer
    2. Infinity also asks if the information that it interpreted is correct because the sent message does not have tags created, thus providing the sender with an option to confirm the information
    3. This allows Infinity to retrieve correct answer for the receiver that has Infinity installed and also show the intelligence of Infinity to the sender to motivate them to install the keyboard


    Research PROCESS

    Understanding the Problem Space

    To better understand the problem space, we looked at two relevant papers that have explored using agents to increase productivity in communication between both humans and interfaces and humans and other humans. The papers were Inky: A Sloppy Command Line for the Web with Rich Visual Feedback (2008) Miller et. al and A Language/Action Perspective on the Design of Cooperative Work (1987) Winograd, Terry. We also looked at other applications and services within this domain that already exist on the market: Sunrise Calendar and Google Now



    The first paper, Inky: A Sloppy Command Line for the Web with Rich Visual Feedback (2008) Miller et. al, we learned that use of rich feedback helped providing users with better understanding of what the system was doing. While the user typed, the system displayed its interpretation of the command and this transparency helped establish a stronger sense of trust between the human operator and the command line tool.

    The second paper, A Language/Action Perspective on the Design of Cooperative Work (1987) Winograd, Terry, the system allowed users to use common everyday speech to tag emails that they were sending. It was one of the first attempts at creating better data tagging for better rediscovery later on.

    Looking at Sunrise Calendar, the application didn't interfere with the user's regular messaging flow because it was built on top of Apple's pre-existing messaging application.

    For Google Now, the Google Search Widget ecosystem allowed users to see the information they wanted, as soon as they asked. This helped increase people's ability to access and understand information much faster than if they had simply done it on their own.



    Design Process

    In order to understand how people behave when interacting with a novel keyboard and to improve on the initial design concept, we created several prototypes at varying levels of fidelities. We produced a low fidelity prototype to get more feedback on the overall concept direction, and a medium fidelity prototype to get feedback on the interactions.


    Low fidelity Prototype

    As a starting point, we designed a low fidelity prototype based on our research and initial findings. As shown on images below, the user selects the category of the information that he is looking for and the categories would update based on the user's activity. After selecting a category option, users can begin typing the message naturally. Then, the section above the keyboard shifts to a feedback view where it displays the system’s interpretation of the message.

    On the receiver’s side, an auto-generated response comes up when the keyboard is selected. Similar to the sender’s view, the feedback area shows information that the system retrieved. At this stage, users can simply send the message or edit the message if the information is incorrect.


    Low fidelity Prototype User feedback

    • Keyboard looks too similar to current iOS keyboard; hard to know when the user has or hasn't selected the agent keyboard
    • Hard to recognize what parts of the agent-generated sentence are editable
    • Privacy issues relating to the transparency of where the agent is looking for data
    • Uncertainty with user cases when one of the users doesn't have the smart agent keyboard installed

    Medium Fidelity Prototype

    After evaluating user feedbacks of the low fidelity prototype, we iterated on the design of the interface. Similar to the low fidelity prototype, users would start the process by selecting the keyboard. Then, the background of the screen and keyboard changes to inform the user that they are using the Infinity keyboard. After selecting the keyboard, users can start typing naturally. When they type in a word that is recognized by the system, the keyboard switches into list view, where it displays possible questions.

    For the receiver’s side when the message has arrived from the sender, an auto generated message is populated. Users can view a list options of possible answers based on different sources. Furthermore, users can add a new source by selecting the “Add New App” button.



    • Switching between text keyboard keys and agent-generated suggestions takes too many extra tap/swipes
    • Users responding to messages want more finite control over where the data is being pulled from
    • Senders want to input some individual words/phrases instead of only using prefabricated messages
    • The overuse of color makes the keyboard feel too disconnected from the default keyboard experience



    Over the span of about a month, we researched, designed, and prototyped Infinity: an agent assisted messaging keyboard. From all of our user testing it seems that with only a few small changes, our participants would be very interested in trying out Infinity as a fully functioning product.

    One main addition that would need to be added to Infinity to make it successful would be a centralized privacy hub where users could control which apps Infinity can or can’t access. This was one of the most requested features throughout our entire user testing process.

    A second addition that could be helpful is changing how the agent actually processes the information. Infinity is currently set up to process keyword tags right when they are written, but this forces the user to manually tag every word. A way around this would be to simply have the user write out the message and then do the analysis of it later on. This way users could still type as they normally do, but would still get the added benefit of having an agent assist them with accessing the information.

    Infinity could even offload the processing to the crowd, and simply pay workers to interpret and tag people’s texts as they’re being sent out. Then these processed texts would be sent to the receiver's agent which would search for the pertinent information.

    There is still a lot of work to be done to transform Infinity from a prototype into a fully functioning product. Given all of this, Infinity is definitely a successful first step in lowering the barriers of communication between two people in a way that still feels intuitive, unobtrusive, and overall very useful.