What does a collection of stories about isolation and social distancing look like? What do we gain when we experience those stories from a cosmic perspective?

This is a project overview. For details on the computer graphics implementation, visit this post


The overview effect is a cognitive shift observed in astronauts who see the entire Earth from space. There is something about experiencing the whole planet from a cosmic perspective that strengthens the connection to humanity, life, and peace.

In the current climate of social distancing and isolation, can we use this inherently optimistic cognitive shift to help build empathy and connect to others through a shared experience.

Overview is a web-based meditation experience that explores its namesake effect in the context of the global COVID-19 crisis, specifically through the lens of stories about the day-to-day isolation experience.


The original version of this project focused on an immersive VR experience to explore the overview effect in an Earth-bound audience.

NYU going remote created logistic problems in that I lost access to VR equipment, but more so it highlighted how inaccessible the original project was. My pivot to a web-based project was both pragmatic but also ideological, since I wanted to share the stories of as many people as possible, not just those with fancy headsets.

Much of the research I had done – into perspective and scale in VR, shaders, what experiencing the world from above felt like – still applied on a screen, though to lesser degrees.

The original context of the piece was experience-driven: what happens when we experience the world from space. Influences included VR pieces about scale and perspective and media about the overview effect. The context in which the project has landed though is a story-driven one; the most compelling part is listening to the stories of others and building a world-scale perspective of personal isolation life.

Technical Overview

The project is built in Unity and runs on the Unity WebGL engine. The WebGL application talks to both a browser application that handles audio recording, and the Apache server which stores the application and message data.

The Earth is rendered with a custom shader that uses a noisy UV map to sample a medium-resolution texture of the globe (and clouds). This results in a globe that looks decently realistic from afar but becomes painterly stylistic when close. This was my solution to avoid a pixelated experience without requiring hundreds of gigabytes of textures.

100 Days of Making

100 Days of Nature

Exploring natural phenomena one day at a time. See the latest on Instagram

100 Days of Unity Sketches

Each day for 100 days I explored a new mechanic, simulation, or effect in Unity. View on Instagram for more detailed descriptions of each day

100 Days of Spaceships in Blender

Each day for 100 days I modelled or animated a spaceship concept in Blender. View on Instagram for detailed descriptions of each day.

XR Sketches


A prototype solution for a meeting in VR in which each participant sits at a desk of arbitrary height.


Hand Tracking Globe Rotation

Move a globe around in VR with your hands!

The Not So Subtle Knife

Slice open a window to other worlds.

Virtual Reality in VR

Experience Virtual Reality in VR. Made during the ITP stupid hackathon 2020.


This project is a collaboration with Emily Lin

Rising is an underwater exploration game. The apparent goal of the game is to reach the water’s surface. Along the way, monsters made out of trash weigh the player down. Eventually players realise there is no way to reach the surface, and the only way to win is to stay and fight against the trash.

View on GitHub Read more “Rising”


Blenduino is an almost-plug-and-play addon for Blender that facilitates easy access to a Serial data stream. Bringing information from the physical world into a virtual 3D environment has many potential applications, from experimental new interfaces for 3D modelling and animation to immersive interactive experiences that blend the real and the virtual.

Github Repo

Save Dave

Inspired by twitch, a class called Mashups, and the secret desire to watch the world burn, this project is a proof-of-concept in handing control of a Unity-built game to the twittersphere.

A node.js server constructs a maze and places Dave in the center. The data of that maze is broadcast to all connected clients – clients being any of the Unity games running in a browser.

The server listens to the twitter stream for appearances of a specific phrase, in this case “#savedave”. If a tweet with that phrase also contains a direction (up, down, left, or right), the server updates Dave’s position in the maze and broadcasts the change, along with the tweet responsible, to all clients.

The clients simply handle rendering the data onto your screen.

You can find the documentation as it stands, as well as a play-by-play account of my terrible panic when everything broke on launch, here.

NYUAD Open Studios

The entire NYUAD Arts Department opens their doors to the public on this intense evening of Works-In-Progress

My participation was both logistical, helping to prepare and organise the events, as well as creative, showcasing some projects in progress.

In 2016 Lecturer Pierre Depaz and I set up a live greenscreen studio that was broadcast around the campus to entice people to come in to the Arts Center and experience the event. For the finale of Open Studios, I developed a web-based app that would flash the screen and flashlight of a smartphone in different patterns that the dancers could control. With everyone gathered outside we pumped the music, launched the drone, and had a great collaborative dance party!

In 2017 I collaborated with the fabrication instructor, Dustin Foster, to create a neopixelled advertising board, I helped to laser cut and engrave a series of cardboard and paper animal masks, and I created a projection mapped audio visualiser that enveloped the outdoor dance arena.

Watch the 2016 dance party here.
Watch the 2017 dance party here.