An expanding collection of code works, projects, and developments. View my work on GitHub, too.


An easy-to-use, minimalist wireframing tool powered by machine learning.

View demo site || View code base

As you sketch, Mime transforms your hand-drawn circles and rectangles into clean shapes in real-time. It's powered by a custom-built TensorFlow.js (TF) model that we trained to recognize basic shapes using strokes drawn on an HTML canvas. The front-end workspace relies on React-Konva.js to create moveable, transformable shapes, to communicate with the TF model, and React/Redux to manage wireframe rendering and updates. Each wireframe is automatically saved to a PostgreSQL database and accessible through a unique URL.

Built in collaboration with Chiara Marcial Martínez and Ivan Felix.

Note: Mime's deployment is a little delayed as we work through an issue with the TensorFlow team. View the demo to get a full walkthrough of the application.

A speedy wireframe of Wikipedia using Mime's drawing canvas with resizable, draggable shapes
A video walkthrough of Mime and the technology behind the app


A playful, responsive interface that continuously changes when it detects your face, mouth, and eyes.

Look into the Mirror || View source code

Mirror, mirror uses trackingjs, p5js, and React to build an interactive UI that changes depending on how you look at it. It's an experiment in the performance of looking at an interface looking back at you. Built during a four-day hackathon.


An experimental linked list.

View the Directory

Directory is an experimental resource list that gathers lectures, meetups, groups, zines, books, videos, pdfs, and people who engage with technology, art, activism, movement, networks, and theory in overlapping and myriad ways. It started out as my own mental mind map because I found I was often sharing resources with people across disciplines. Directory uses a simple framework called Binder to leverage the power of Google Docs for collaboration. Contribute by adding links and descriptions.