Projects

  • The Drumheller Marathon

    • running
    • fun

    A race entirely around the historic Drumheller fountain on the University of Washington campus. I measure the course and organize the event each year. At 190m, the loop course is the smallest in official use by a road marathon in the U.S.

  • The Light Rail Relay

    • running
    • fun

    A distance relay along Seattle’s Link Light Rail, with exchanges at each station. I direct the event; plotting the route, making batons, and inviting people. Participation has grown over the years, and hit 130 runners in 2024. The open, unmarked 38 mile urban course means the map is critical. In 2024, I integrated live train arrivals information and built custom tiles from Openstreetmap data to include water fountains, restrooms and other runner-focused features.

  • Energy Gel Recipe Calculator

    • running
    • fun
    • web

    Sports nutrition is full of advertising, misinformation and single-use packaging, so I assembled the current science into a calculator to help you make your own carb solutions at home. It solves a linear program to output recipes tailored to your ingredient and concentration preferences.

  • Using 3D Mice to Control Robot Manipulators

    • research
    • robotics

    3D mice are robust, ergonomic devices for 6DOF input. They are cheap, available, and compatible. They can be difficult to learn how to use however. We describe and implement signal processing and visualization that makes them easier to use.

  • Narrating Robot Experience

    -
    • research
    • robotics

    Robots break, and usually they won’t be able to tell you much about why. What if the robot could narrate its experience, drawing on logs, sensor data, and its own understanding of the world? We show one way to build such a system using an LLM and show that it helps people identify when and why a robot failed.

  • Explicit Input Assistance for Teleop in Clutter

    -
    • research
    • robotics

    Teleoperating robots in cluttered environments is hard. The most commonly explored way of assisting operators is to have a sort of predictive trajectory completion, but this breaks down when there are many possible goals and the one you predict is wrong. We explore an alternative “pointing” based interface. We show that it reduces operator workload and improves performance in cluttered environments.

  • Wandering for Mobile Robot Deployments

    • research
    • robotics

    Deploying mobile robots for day-long autonomy remains challenging, which is a barrier for downstream in-the-wild research. We show how a simple wandering behavior paired with a human intervention system dramatically reduced the engineering cost of deploying a robot.

  • Influencing Behavioral Attributions to Robot Motion

    • robotics
    • research
    • machine learning

    Humans make anthropomorphic attributions to robot motion. What good is optimal motion planning if it “looks drunk”? This work explores how to influence these attributions. We show how you can model observer attributions from data and incorporate this model to guide attribution-sensitive motion planning.

  • Learning Back-channeling Behaviors from Human-Human Interaction

    • research
    • robotics
    • machine learning

    Back-channeling behaviors are a key part of active listening. We developed a model that learns to nod from human-human interaction data and show that humans prefer the behavior to common alternative models, and demonstrate the model running a robot.

  • Perceptions of Robot Curiosity

    • research
    • robotics

    What do observers make of a robot that learns? We identified negative perceptions of robots that take intrinsically-motivated off-task actions, and explored how to repair perceptions of their confidence by providing explanations.

  • Poster Templates

    • design

    Templates for making research posters, with branding for the University of Washington and the Paul G. Allen School of Computer Science & Engineering.

  • Open-world Reasoning for Service Robots

    • research
    • robotics

    A compact Answer Set Programming encoding for planning in response to user commands. We break down the encoding of a hypothetical apple fetching command.

  • Kuri Tools

    • robotics

    When Mayfield Robotics shut down and sent us a couple Kuris, I deobfuscated the code they shipped with and developed examples. We (and several other labs) used these tools to power later projects with Kuri.

  • Service Robot Command Understanding

    • research
    • machine learning

    Large pretrained language embeddings, like BERT, make it possible to use neural methods to understand robot commands without needing a lot of domain-specific data. I used the domain of RoboCup@Home commands to show how you can build a system that converts commands to logical forms with a small number of annotated templates.

  • Automatic Curriculum Graph Generation for Reinforcement Learning Agents

    • research
    • machine learning

    One way to speed up reinforcement learning is to use transfer learning. But how do you design the tasks to transfer from, and the sequence of those transfers? We developed a first-of-its-kind algorithm to automatically generate a curriculum graph for reinforcement learning agents.

  • Marblizer

    • fun
    • web

    An interactive paper marbling simulation that lets you create marbled images in the browser. Paper marbling is a traditional art practice in which inks are floated on a liquid surface then transferred to a sheet of paper. This simulation works by evaluating the effect of each tool on a discretized representation of the boundary of each ink drop. This limits the operations compared to a fluid-dynamics based simulation, but its simple to implement and the boundary of drops remain crisp for longer.

  • Embedded Reinforcement Learning

    • machine-learning
    • electronics
    • robotics

    I implemented classical reinforcement learning algorithms on a microcontroller for a graduate class in reinforcement learning. Shrinking RL down to 8kb of RAM is a little tricky and very neat.

  • BubblesView

    • ios
    • fun

    A playful UIView subclass for representing graph data. A center bubble anchors a selection of neighboring bubbles, each of which can be tapped to move to focus on that bubble.

  • ASCIIfy

    • ios
    • fun

    Image to ASCII art conversion in Swift

  • Alex's Site

    • web

    I help maintain my brother’s cinematography portfolio.

  • Pulsar

    • ios
    • fun

    Pulsar is a simple iOS built around a visualization of the beat pulsing around the screen.