David Porfirio (he/him)
People and Robots Lab
Computer Sciences Department
University of Wisconsin–Madison

Download my CV

I'm a PhD Candidate at UW–Madison!
My research is about helping people program social and service robots. To do that, I create software and hardware interfaces that (1) capture the intent of interaction designers and end-user developers and then (2) employ program verification or synthesis in order to help designers and developers assemble complete robot programs.

I am mentored by Bilge Mutlu, Aws Albarghouthi, Allison Sauppé, and Maya Cakmak.

Some recent updates:
I presented my in-progress work at PLATEAU 2021.
I began a 10-week internship at Nokia Bell Labs!
I received a Cisco Graduate Student Fellowship at UW–Madison!
I presented Figaro, our tabletop authoring environment, at CHI 2021.
Figaro, our tabletop HRI authoring environment, has been accepted to CHI 2021.

Research Projects


Figaro: A Tabletop Authoring Environment for Human-Robot Interaction

CHI 2021 pdf, video, github

Figaro is a tabletop authoring environment in which demonstrators use figurines to play out scenes of human-robot interactions. In each scene, Figaro records the positions, movement, and speech of the figurines, in addition to actions enacted on the figurines themselves. Figaro then synthesizes a full human-robot interaction program that can be executed on a robot.


Transforming Robot Programs Based on Social Context

CHI 2020 pdf, video, github

We developed a novel method for automatically making modifications to a robot program after the program has been deployed on a physical robot. The goal of the modifications is to maximize user experience for a specific interaction context, while maintaining adherence to a prespecified set of baseline context-free social norms.


Bodystorming Human-Robot Interactions

UIST 2019 pdf, video, github

We developed a programming environment, Synthé, that enables design teams to act out, or bodystorm, human robot interactions. Designer demonstrations are converted to execution traces, which are then used as input to an inductive synthesis algorithm which synthesizes a full human-robot interaction program from scratch.


Authoring and Verifying Human-Robot Interactions

🏆 UIST 2018 (Best Paper Award) pdf, video, github

We developed a visual programming environment that allows people to design human-robot interaction programs and receive feedback in real-time on whether these programs violate social norms. In order to provide this feedback, we model in-progress human-robot interaction programs as transition systems, and a set of context-specific social norms within temporal logic. The transition systems and social norms are then input into an off-the-shelf model checker.