Projects

&hugolib.pageState{pageOutputs:[]*hugolib.pageOutput{(*hugolib.pageOutput)(0xc000d0a8c0), (*hugolib.pageOutput)(0xc000d0adc0)}, pageOutputTemplateVariationsState:(*atomic.Uint32)(0xc000a67338), pageOutput:(*hugolib.pageOutput)(0xc000d0a8c0), pageCommon:(*hugolib.pageCommon)(0xc0003c9700)}

Live Lab Broadcaster - January 22, 2025

A Few Deep Breaths, 2022 What is it? La MaMa and CultureHub’s Experiments in Digital Storytelling Program incubates story-driven art works that harness digital distribution platforms, expand online audience engagement, and push the boundaries of current artistic forms. Since 2020, I have created a series of virtual venues (using WebRTC, web sockets and integrations with theatrical cueing systems) in dialog with technical (theater / broadcast technologists) and creative contributors to facilitate these live performances.

&hugolib.pageState{pageOutputs:[]*hugolib.pageOutput{(*hugolib.pageOutput)(0xc000cff7c0), (*hugolib.pageOutput)(0xc000cffcc0)}, pageOutputTemplateVariationsState:(*atomic.Uint32)(0xc000a66d10), pageOutput:(*hugolib.pageOutput)(0xc000cff7c0), pageCommon:(*hugolib.pageCommon)(0xc0003c7600)}

3D Reconstruction (NERF, Gaussian Splatting) - August 29, 2024

What is it? Recent approaches to 3D capture and reconstruction give us new ways to capture, edit and share spatial data. This page shows a few outputs from experiments I’ve been running with Neural Radiance Field (NERF) rendering and 3D Gaussian Splatting. Most of these captures were made with 50-100 photos from a cell phone camera, and processed on NYU’s High Performance Computing Cluster using open-source tools which implement these popular approaches.

&hugolib.pageState{pageOutputs:[]*hugolib.pageOutput{(*hugolib.pageOutput)(0xc0009463c0), (*hugolib.pageOutput)(0xc0009468c0)}, pageOutputTemplateVariationsState:(*atomic.Uint32)(0xc000a66f10), pageOutput:(*hugolib.pageOutput)(0xc0009463c0), pageCommon:(*hugolib.pageCommon)(0xc0003c8100)}

Arium - September 22, 2022

&hugolib.pageState{pageOutputs:[]*hugolib.pageOutput{(*hugolib.pageOutput)(0xc000d19e00), (*hugolib.pageOutput)(0xc000d1c3c0)}, pageOutputTemplateVariationsState:(*atomic.Uint32)(0xc000a67a30), pageOutput:(*hugolib.pageOutput)(0xc000d19e00), pageCommon:(*hugolib.pageCommon)(0xc000de3080)}

YORB 2020 - June 26, 2020

YORB 2020 is a web application which allows people to communicate together using audio and video while navigating a 3D rendered environment. I started development of this project for the students of New York University’s Interactive Telecommunications Program to provide an alternative to the many existing digital communications platforms they might expect to use daily: Discord, Facebook, Instagram, Slack, Zoom, SMS & messaging apps and email, to name just a few.

&hugolib.pageState{pageOutputs:[]*hugolib.pageOutput{(*hugolib.pageOutput)(0xc000d183c0), (*hugolib.pageOutput)(0xc000d18a00)}, pageOutputTemplateVariationsState:(*atomic.Uint32)(0xc000a67830), pageOutput:(*hugolib.pageOutput)(0xc000d183c0), pageCommon:(*hugolib.pageCommon)(0xc000de2b00)}

Refracting Rays - April 22, 2019

How light interacts with surfaces, lenses and our visual perception is fundamental to how visual arts are created and perceived. Despite this importance, education around basic optical principles tends to employ a science-first approach which may not resonate within an artistic community. This installation attempts to bridge that gap by encouraging audience members to holistically engage with optics and the phenomenon of refraction. This installation consists of a series of engagements with playful and impractical lenses.

&hugolib.pageState{pageOutputs:[]*hugolib.pageOutput{(*hugolib.pageOutput)(0xc000947cc0), (*hugolib.pageOutput)(0xc000d0a280)}, pageOutputTemplateVariationsState:(*atomic.Uint32)(0xc000a67200), pageOutput:(*hugolib.pageOutput)(0xc000947cc0), pageCommon:(*hugolib.pageCommon)(0xc0003c9180)}

Library of Places - April 17, 2019

I made this prototype as part of Jer Thorp’s “Artists in the Archive” course, in which we developed engagements with the US Library of Congress’ open digital resources. This new search ‘vehicle’ for the Library of Congress’ unfathomably massive photo archive uses the analog of a roadtrip as a search through these collections. As you plot a route on the map, photos from the archive taken along that route are displayed.

&hugolib.pageState{pageOutputs:[]*hugolib.pageOutput{(*hugolib.pageOutput)(0xc000946f00), (*hugolib.pageOutput)(0xc000947400)}, pageOutputTemplateVariationsState:(*atomic.Uint32)(0xc000a67050), pageOutput:(*hugolib.pageOutput)(0xc000946f00), pageCommon:(*hugolib.pageCommon)(0xc0003c8c00)}

p5.js WebGL Improvements - April 16, 2019

New features debugMode() and orbitControl() give a clear sense of 3D space. I participated in Google Summer of Code in 2018, contributing to the open source library p5.js on their WebGL (3D Graphics) Implementation. p5.js is an open source javascript library for creative coding started by the Processing Foundation with the express goal of ‘making coding accessible for artists, designers, educators, and beginners.’ With this in mind, I proposed and made several changes to the Camera API and added several debugging features to aid the beginner programmer’s transition from working in 2D to 3D.

&hugolib.pageState{pageOutputs:[]*hugolib.pageOutput{(*hugolib.pageOutput)(0xc000d0b540), (*hugolib.pageOutput)(0xc000d0ba40)}, pageOutputTemplateVariationsState:(*atomic.Uint32)(0xc000a67510), pageOutput:(*hugolib.pageOutput)(0xc000d0b540), pageCommon:(*hugolib.pageCommon)(0xc000de2000)}

NYC Soundscape - April 16, 2019

This project, made in collaboration with Itay Niv, was built for Data through Design’s 2019 exhibition “celebrating tangible and multimedia expressions of New York City’s Open Data.” The project reimagines routes through the city as tracks on a musical sequencer, with the city’s trees and urban elements (e.g. subway stops, wifi access points) as notes on these tracks. Using an interactive map displayed on an supersized touchscreen, audience members are immersed in a synesthetic experience of the once-familiar landscape.

&hugolib.pageState{pageOutputs:[]*hugolib.pageOutput{(*hugolib.pageOutput)(0xc000d1f400), (*hugolib.pageOutput)(0xc000d1fe00)}, pageOutputTemplateVariationsState:(*atomic.Uint32)(0xc000a66420), pageOutput:(*hugolib.pageOutput)(0xc000d1f400), pageCommon:(*hugolib.pageCommon)(0xc0001bbb80)}