Projects

OSC Bridge

A simple desktop app that turns static JavaScript web-apps and P5 sketches into full-screen installations and enables OSC messaging for powerful, scalable interactivity

[Electron, Frontend, Interactive Networks, Node.js, Open-source, OSC]

Breathing Alarms

Breathing Alarms, by sound and installation artist Ivana Dama, reimagines an East German guardhouse as an immersive environment where visitors engage directly with sound, space, and perception

[Installation, Max/MSP, Physical Computing, Raspberry PI, Sound]

Kinetic Sculpture & Controller

A bespoke motorized grid of lights that performs generative color and shape patterns and is controlled remotely via a smartphone

[DMX, Dynamixel, Frontend, Installation, Interactive Networks, MQTT, Node.js, OSC, Physical Computing, Python, Raspberry PI, React, TouchDesigner]

UCLA Art|Sci Websites

A collection of websites related to the UCLA Art|Sci Center, directed by multimedia artist and researcher Victoria Vesna.

[Drupal, Frontend, WordPress]

Agency (as in giving)

An automated dimmer made for light artist Raphaele Shirley’s neon light installation that can perform simple repeating patterns.

[Arduino, Installation, Physical Computing]

Max/MSP x Pink Trombone

A Max/MSP port of the Pink Trombone parametric vocal synthesizer.

[LeapMotion, Max/MSP, Open-source, Pink Trombone, Sound]

Sonic Zoetrope

A tape loop-like method of recording and playing short samples of audio using engraved transparent acrylic, laser line diodes and solar panels

[Arduino, Installation, Max/MSP, Physical Computing, Sound]

A screenshot of a colorful website. At the top, a series of tabs read ITP, Admissions, Curriculum, The Floor, People, News, Events. On the left, an image labeled "Sally, David Leyva" of a homemade wooden box with several holes in the side with the words "Hi, I'm Sally!" written in black marker. In the center, a smaller image labeled "Frankie finds her feelings, Sarah Elix" shows 3 hand-drawn characters on a tan page. On the right, a medium-sized image labeled "Pendulux, Phil Caridi" shows a large black suspended pendulum over a wooden floor.
New ITP Website

The newly-redesigned website for NYU’s Interactive Telecommunications Program (ITP)

[Frontend, WordPress]

2 dancers move slowly around a small purple-lit stage with various lines and circles projected on 3 surrounding walls. The subtitles WOMAN and MUSIC slowly appear letter-by-letter.
BodyMouth

A bespoke interactive network and musical instrument that produces motion-reactive synthesized speech in real time. Designed by multimedia playwright Kat Mustatea for her theatrical work “Ielele”

[Frontend, HTC Vive, Interactive Networks, Node.js, OSC, Pink Trombone, React, Sound, TouchDesigner]

A split-screen recording. On the left, a small box rotates slowly on a turntable. On the right, a thin red waveform consisting of 2 peaks appears against a black background.
Sonic Abstractions

An experimental method of procedural sonification of small physical objects

[Arduino, Installation, OpenFrameworks, Physical Computing, RealSense, Sound, TouchDesigner]

A small microcontroller inside a waterproof transparent plastic HUBBELL cover with a thick black cable and thin black, yellow and red cables attached. The microcontroller is secured to the side of a white plastic bin.
Brooklyn Grange Water Level Sensor

A simple IoT-enabled water level sensor that sends email alerts, created for Brooklyn Grange’s rooftop aquaponics farm.

[Arduino, IoT, MQTT, Physical Computing]

A table with a small MIDI keyboard, a laptop, a document camera and a flat plastic surface. A long plastic object is being held against the flat surface. In the background, a projected image of a piano keyboard with 4 pressed keys highlighted in pink.
The Contour Synthesizer

A digital instrument that encodes 2-dimensional object contour data into a variety of sonic parameters for real-time performance.

[Arduino, Live Performance, Physical Computing, Sound]

Donald Trump Signature Generator

Donald Trump’s presidential signature is beautifully ridiculous and can be programmatically generated using some simple pattern-based logic.

[Python]