Peter Beshai

PhD Student

Buckets: NBA Shot Visualization 2015

CPSC 547 Information Visualization

Buckets is a tool that provides interactive visualizations of the shooting performance of all players in the NBA from the past four seasons. Various charts are used to depict variation in shooting frequency and shooting accuracy broken down by the location shots were taken from on the court. Users can explore individual players in detail, compare multiple players at once, and discover overall trends across the league. It was created as the final project in CPSC 547, a graduate course on Information Visualization.

Live Site:

Paper: buckets_paper.pdf (Final Report)

Presentation: buckets_presentation.pdf (Final Presentation)

Presentation: buckets_presentation_story.pdf (Auxiliary Presentation on Social Media Story)

Press: Flowing Data, Hoops 76, GRAND NCE, UBC CS

Social Media: Reddit on Shooting Signatures, Reddit on Buckets, Twitter on Shooting Signatures, Twitter on Buckets, Twitter search results

Code: (Shooting Signatures)

Tools: nodejs, HTML/JS/CSS, PHP, MySQL, AngularJS, D3.js, heatmap.js

Rhombus Classroom Synchronous Participation System 2014

Master's Thesis

We developed a system that enables a wide range of interactive activities in classroom environments by creating infrastructure for handling i>clicker remotes as input devices for more than just multiple choice questions. For instance, students can play educational games, complete algorithm practice exercises, and even participate in experiments. The system provides real-time feedback to i>clicker input through web-based technology. It is designed to scale to support multiple screens viewing synchronized views across the network, and can support any input device that meets its basic API, although clickers are currently the only thing implemented. Rhombus was used in a third-year cognitive systems course at UBC as part of a research evaluation, in which it received strong positive responses from both students and instructors, and it continues to be used in that class today.

Paper: ubc_2014_september_beshai_peter.pdf (Master's Thesis)


Tools: Java, nodejs, sqlite3, WebSockets (, HTML/JS/CSS, i>clicker

No-Onset Presentation Experiment 2014

Master's Thesis

Often times when using clickers, there is extremely little feedback given from the system to confirm that the button you thought you pressed is the one that was received by the system. However, it is often undesirable to explicitly show the buttons a user has pressed on a screen visible to all other people in the vicinity. To address this, we developed a system that makes use of a no-onset presentation to limit the perceptual salience of changes made to a display. The no-onset presentation in this case means dropping segments away from a 7-segment display to reveal a letter, as opposed to simply showing the letter from nothing, which would be called onset display. By limiting the time the letter is displayed for to 80ms, we manage to get users interpreting their letter at near 95% accuracy, while the accuracy of interpreting letters of other users to near 20% accuracy, the equivalent of random chance.


Tools: Java, nodejs, sqlite3, WebSockets (, HTML/JS/CSS, i>clicker

Sequence Aliaser 2013

Master's Thesis

As part of the larger Rhombus Classroom Synchronous Participation System, the Sequence Aliaser was created to solve the problem of registering a large number of clickers with the system in a short period of time. To do so in a serial manner would scale with the number of clickers, so we created the Sequence Aliaser to allow registration in parallel. Each user of the system receives a sequence of buttons to press on their clicker, which will register their clicker with an alias in the system. For example, pressing A A C A registers that clicker with the alias "jordan". Once a sequence is accepted by the system, a box showing the alias and a photograph appears on the screen that can then be controlled by the user's clicker to verify the connection. This was used successfully in a class of 40 students as part of a larger evaluation.

Code: Part of rhombus-id-server

Tools: Java, nodejs, sqlite3, WebSockets (, HTML/JS/CSS, i>clicker

Schema Explorer 2013

CPSC 554m Topics in HCI: Personalization, CSCW, Universal Usability
With Kalan MacRow, Melsa Smith

When dealing with large amounts of social network data, it can be difficult to grasp the relationships amongst the users without a visualization. With Schema Explorer we tried to address this issue by providing utilities for data scientists and social network analysts to use to explore the structure of the data in a visual way. Our prototype supported showing data of friends from Facebook and of followers from Twitter, allowed automatic aggregation of nodes into clusters based on the community detection app in SNAP, aggregation by attributes in the data, and a simple history-based navigation interface. We evaluated the tool with 10 users in an insight-based evaluation, which involved video logging and transcription, interviews, and a think-aloud component.


Tools: CoffeeScript, D3.js, HTML/JS/CSS, SNAP, PHP

Real-time Lecture Notification System 2012

CPSC 544 Human-Computer Interaction
With Helen Halbert, Natasha Jaques, Anupam Srivastava

We set out to solve a problem commonly experienced in lectures: the instructor may cover the material too quickly, or may cover the material too slowly. In these cases, both students and instructors are not getting what they want out of the class. To address this issue, we created a system that allowed students to vote on whether they were bored or confused in class via a simple web-based form, and when enough students voted one way or another, the instructor would be notified. Notifications were delivered in the form of customized vibrations via the Haptic Notification System previously developed at UBC. We evaluated our medium-fidelity prototype in a real class setting, as well as in several informal talks and found users could reliably interpret the vibrations and adjust their presentations, but often needed more guidance as to why students were confused.

Tools: Arduino, XBee, Processing, Bash, HTML/JS/CSS