SOFTWARE

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

Folder party generator

A static site generator for hosting gatherings from a folder on your computer

Read instructions & source code

Hosting a website is like inviting your friends over to a folder on your computer. This script will generate a website that lets you explore a list of files in a directory with the vibe of visiting someone's house. Just curate a list of files in a folder and run the script to create the website. You can even include your own furniture and styles or directly edit the index.html file that gets created.

A screenshot of a directory's files and a terminal window with output from the folder party generator script
A screenshot of the website created from the directory with browsable files

Trickster server

A starter project with a static web server that doesn't give you what you ask for

Remix the Glitch project || See a website built with it

A static web server is (traditionally) responsible for responding with whatever file is being requested. So when you click on a link <a href="pages/about-me.html">Read more about me</a>, a static web server will check to see if it has a file about-me.html in the /pages directory and then send that file if it has it.

This trickster web server will respond with random file of the same type requested. So when you link to /pages/about-me.html, the trickster server will send you back another HTML page, but without telling you any different. The remixable Glitch project supports serving randomly files from the public directory and from any assets uploaded to Glitch in the project. Use it to build surprising, playful, unstable, and ...maybe even unusable, websites.

A screenshot of the sample remixable Glitch project

Homemade camouflage generator

A browser-based tool for creating large patterns for wearables based on photographs of specific environments.

View pattern generator || View pattern generator (over Tor) || Source code

This tool is designed to generate patterns from photographs that can be used to make wearables from handkerchiefs to full-body suits. It creates several patterns that use multiscale and shape-disruptive camouflage techniques loosely based on a scientific paper published in 2013. Multiscale patterns employ details at various spatial scales to disguise the wearer, while disruptive patterns aim to distort and interrupt the wearer's outline using blocks of shapes.

The pattern generator is also accessible as an onion service over the Tor network, which affords the website visitor with a kind of digital camouflage over network communication. Tor provides a way to browse the Internet anonymously to avoid surveillance and censorship. You can visit the onion website using Tor Browser or Brave Browser.

A screenshot of a multiscale pattern generated from a photograph of an empty subway car in New York City

MIME

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

Watch a demo || 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, Socket.io 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

MIRROR, MIRROR

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.

DIRECTORY

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.