I code and dance.
I want to learn how to VJ.
I like interactive installations and physical computing.
I'm from HK <3 and based in Boston, MA.
[z]: zoom in, [s]: spin, [spacebar]: pause, [e]: for ellen

Visual Programming Sketches

openFrameworks, Processing, Max/MSP, TouchDesigner, GLSL

#FF0000, #0000FF, #FFFF00, #000000

The idea of animating a Mondrian painting never left my head after visiting Stedelijk Museum. #FF0000, #0000FF, #FFFF00, #000000 pays tribute to Mondrian's Compositions with Red, Blue, Yellow and Black with GLSL shaders. With the use of Perlin noise, it generates a unique Mondrian composition at each frame.


Blob in Coma

Blob in Coma is a simple visual sketch resulting from a study of two-dimensional metaball effect in TouchDesigner.


Chaotic Planet

Particle system built by forking keijiro/KvantStream.

Imagine a universe where stars collapse on the planet in a spiral loop. Chaotic visual is introduced by hitting spacebar.


Hand Paint

Built with Leap Motion and openFrameworks, Hand Paint is a tool for you to paint digitally with your hands.

RGB Test

RGB Test visualizes the change of individual RGB values.

Varying Grid

Inspired by Piet Mondrian's play with grids in his paintings, Varying Grid is an experiment to digitize and animate grid play.


HTML5 canvas, ReactJS, Three.js, D3.js, Adobe XD, Illustrator, Sketch

Lost Code

Lost Code is a graphic design project exploring the friction in translation.

Design by Hilda Wong. Development by Ellen Lo.

Site / Code

Axis Mundi

Axis Mundi is an experimental exhibition project exploring man’s attempt to override nature with technology and nature’s resistance.

Identity design by Hilda Wong. Web and installation development by Ellen Lo.

Site / Code

Public Art Data Visualization

With ReactJS, HTML5 canvas, and D3.js, the map visualization was created with Cambridge Open Data's public art dataset.

It provides an alternative for visitors to discover public artworks in Cambridge, MA through their color combinations and materials.



occupied. is a project that aims to explore the amount of time spent in the bathroom through personal data collection.

Site / Code

Autobiographical Mobile Interface Design

Explore my thoughts and everyday life through playful grid and color compositions! :)

XD Prototype

Physical Computing

C/C++, Python, Arduino, Raspberry Pi, Linux Kernel Programming, Qt

A Study of Motion and Tension

The kinetic sculpture is a work of collaboration with Jake Abraham. As a study of motion and tension, it was developed over the course of our internships at Volvox Labs. It comprises 16 micro servos with custom cut servo arms, 1 Arduino Uno, a 12" x 12" cheesecloth, steel cables, crimps, 3 Aluminum rods, and plywood.

The installation continuously runs a sequence of 6 different animations at an update rate of 60 Hz. By altering the speed, the amplitude, and the wavelength of the sine functions, the sculpture embodies sea waves under different weather conditions.



FLUID is a study of dynamic motion as an ever-changing form. This interactive installation involves laser sensing, custom LED lighting, and physical computing technology. The triptych features interactive animations, titled - DEW, WAVES, and RAIN. The installation recreates and pushes the everyday interaction humans have with matter in different fluid forms.

The triptych is a 95” by 40” digital canvas mounted onto the wall. The lights are encapsulated in a custom CNC cut alucobond frame with patterns. They mimic the natural flow of fluids through a scalloped-like pattern. By using LiDAR sensing technologies, distance between each canvas and any object in front becomes the major interface for interaction. The audience is invited to observe the flow of lights from afar as well as approach the installation to introduce a change in the display.

IoT Experiments

Here is a collection of IoT experiments created in C, Node.js, NoSQL, and Python with the Huzzah board, Raspberry Pi, and various sensors and motors.

The repo and playlist contain source code and demo videos for RC car with live camera feed and node server, smart key with real time graph and IR message decoding, and alarm clock with servos and alphanumeric display.

Code / Playlist

Embedded Pong

Embedded Pong is a single player Pong game that runs on an LCD screen connected to the Gumstix board. The paddle in the game is controlled by the player's hand, and its vertical movement is captured by a Kinect camera.



woodpeckersPro provides you the ideal experience of house protection from woodpeckers. Built with Arduino, the device has ultrasonic sensors to detect presence of woodpeckers or any invading birds and speakers to play mp3 file of predator call to scare them away.


Human-computer Interaction

Unity, OpenCV, HTC Vive, Leap Motion, Kinect, Tobii eye tracker

ofxFaceTracker experiments

These visual sketches are created with ofxFaceTracker. The first mimics the effect of breath condensed on glass surface when we exhale, the second portrays a rather comical effect of swirly eyes in animations, and the third is a ofxBox2d test using facial features as obstacles that bodies can bounce off.


Head gesture recognition + gaze tracking

This prototype is a continuation to Boston University Image and Video Computing Group's project EyeSwipe: dwell-free text entry using gaze paths.

As the undergraduate research assistant, I built a prototype on Qt platform that combines gaze tracking using Tobii Core SDK and head gesture recognition using OpenCV.

In video, moving circular blob represents user's gaze on screen. When gaze hovers over square on interface, user can nod or shake to change its color to green or red.

Code available on request

Virtual Jenga

Surrounded by skyscrapers made from vertically stacked blocks, which resemble the look of jenga, players can shoot bullets into the architecture with their controllers and experience the apocalypse within the virtual environment.


Virtual Ball Pit

Implemented with Leap Motion, the experiment Virtual Ball Pit challenges players to touch intangible, nonexistent objects with their hands in a tangible, virtual environment.