Products

Products I build and ship for productivity, education, and creativity.

Graphbook

p5.js · Notebook · Creative Coding · 2026

Graphbook is browser-based notebooks for p5.js to learn, teach, and share sketches with others.

Graphbook

Creative Tools

Open-source projects that help people create, code, explore, or build.

Charming Pretext

2026

Pretext layer for Charming.js.

Charming Pretext

Recho Multiples: Creative Coding is a Search Problem

Code Environment · Creative Coding · Version Control · Parameter Exploration · Visualization · WebGL · p5.js · 2025

An exploratory code environment for creative coding that enables parameter variations inspired by small multiples in data visualization.

Recho Multiples: Creative Coding is a Search Problem

Recho Melody: Writing Code like a Pianist

Code Environment · Live Coding · Creative Coding · Music Interface · Performance · D3.js · p5.js · 2025

A live coding piano editor that merges code, music and visuals into one performative instrument.

Recho Melody: Writing Code like a Pianist

HAP: Hackers and Painters

Creative Coding · WebGL · Algorithms · Data Visualization · 2025

A WebGL-powered platform that transforms images into generative artwork by visualizing classic algorithms.

HAP: Hackers and Painters

Charming V2

2025

Charming.js API v2.

Charming V2

Charming V1

2023

Charming.js creative coding library.

Charming V1

Gossip: A Cool Way for Storytelling

React · Presentation Tools · HCI · Interface Design · 2020

An open-source platform for quickly authoring and delivering concise, impressive presentations.

Gossip: A Cool Way for Storytelling

Computational Expression

Open-source projects that transform language, symbols, names, or code into new visual / structural forms.

BioGlyph: Face to One-Line Drawing

Generative Art · Computer Vision · MediaPipe · Interactive Art · ITP Spring Show 2026 · 2026

An interactive web application that creates a one-line drawing of your face.

BioGlyph: Face to One-Line Drawing

Genuary 2026

Generative Art · Creative Coding · Observable · 2026

A collection of generative art pieces from daily learning and experiments based on Genuary prompts.

Genuary 2026

GType

2025

Typography tools for generative graphics.

GType

Pixel Poetry

2025

Pixel poetry on Observable.

Pixel Poetry

Frankenstein I: My First Tiny Robotic Arm Project

Physical Computing · Arduino · Robotics · Interactive Systems · 2024

A simple robotic arm with a smiling face and a digital twin, built from discarded materials.

Frankenstein I: My First Tiny Robotic Arm Project

Swings of Life

2020

Swings of life interactive piece.

Swings of Life

Information & Visualization

Open-source projects about understanding data, systems, or information visually.

Soft Time

2025

Soft time visualization.

Soft Time

Jiggly Wordle

2025

A jiggly Wordle variant.

Jiggly Wordle

Chart Music Lab

2025

Turning charts into music.

Chart Music Lab

CICSC Vis: A Visual Analysis Platform for Spatial-Temporal Data

Data Visualization · Visual Analytics · Spatial-Temporal Data · Platform · 2019

My journey starts here.

CICSC Vis: A Visual Analysis Platform for Spatial-Temporal Data

Pieces

Smaller works and experiments — generative sketches, data visualization studies, geographic patterns, Processing pieces, and shader play.

Bridget Lines

Bridget Lines

Feb 2026 · p5.js

Bridget Arcs

Bridget Arcs

Feb 2026 · p5.js

Bridget Circles

Bridget Circles

Feb 2026 · p5.js

Image Warping

Image Warping

Feb 2026 · p5.js

Video Warping

Video Warping

Feb 2026 · p5.js

Genuary 26 / 27 - Animated Fractal Tree

Genuary 26 / 27 - Animated Fractal Tree

Jan 2026 · D3.js

Genuary 26 / 28 - Slider Race

Genuary 26 / 28 - Slider Race

Jan 2026 · D3.js

Genuary 26 / 20 - One-line Snake

Genuary 26 / 20 - One-line Snake

Jan 2026 · Observable Plot

Genuary 26 / 23 - Sphere Path

Genuary 26 / 23 - Sphere Path

Jan 2026 · Three.js

Genuary 26 / 24 - Dithering Globe

Genuary 26 / 24 - Dithering Globe

Jan 2026 · Canvas

Genuary 26 / 18 - A Traveling Snake

Genuary 26 / 18 - A Traveling Snake

Jan 2026 · Observable Plot

Genuary 26 / 15 - Snake Time

Genuary 26 / 15 - Snake Time

Jan 2026 · D3.js

Genuary 26 / 17 - Falling Pattern Cards

Genuary 26 / 17 - Falling Pattern Cards

Jan 2026 · Canvas

Genuary 26 / 19 - Water Waves

Genuary 26 / 19 - Water Waves

Jan 2026 · Observable Plot

Genuary 26 / 16 - Sorting Visualization

Genuary 26 / 16 - Sorting Visualization

Jan 2026 · Observable Plot

Genuary 26 / 14 - Fit Text to Image

Genuary 26 / 14 - Fit Text to Image

Jan 2026 · D3.js

Genuary 26 / 11 - Heart by Heart ❤️

Genuary 26 / 11 - Heart by Heart ❤️

Jan 2026 · HTML

Genuary 26 / 13 - Progressive Self Portrait

Genuary 26 / 13 - Progressive Self Portrait

Jan 2026 · D3.js

Genuary 26 / 5 - Progressive Genuary

Genuary 26 / 5 - Progressive Genuary

Jan 2026 · Canvas

Genuary 26 / 9 - Cellular Architecture

Genuary 26 / 9 - Cellular Architecture

Jan 2026 · Three.js

Genuary 26 / 10 - Chinese Polar Clock

Genuary 26 / 10 - Chinese Polar Clock

Jan 2026 · D3.js

Genuary 26 / 8 - A City of Rainbow People

Genuary 26 / 8 - A City of Rainbow People

Jan 2026 · Canvas

Genuary 26 / 2 - Star 🌟

Genuary 26 / 2 - Star 🌟

Jan 2026 · WebGL

Genuary 26 / 7 - Wuxing Partitions

Genuary 26 / 7 - Wuxing Partitions

Jan 2026 · D3.js

Genuary 26 / 6 - Yin-Yang Picasso Animals Sketches

Genuary 26 / 6 - Yin-Yang Picasso Animals Sketches

Jan 2026 · Canvas

Genuary 26 / 3 - FibonacciGirl With a Pearl Earring

Genuary 26 / 3 - FibonacciGirl With a Pearl Earring

Jan 2026 · Canvas

Genuary 26 / 4 - Venus MST

Genuary 26 / 4 - Venus MST

Jan 2026 · Canvas

Genuary 26 / 1 马到成功

Genuary 26 / 1 马到成功

Jan 2026 · D3.js

CG HW 7: Robotic Arm

CG HW 7: Robotic Arm

Nov 2025 · WebGL

CG HW 05: World Airports Delaunay

CG HW 05: World Airports Delaunay

Nov 2025 · WebGL

CG HW 06: World Flight Paths Voronoi

CG HW 06: World Flight Paths Voronoi

Nov 2025 · WebGL · D3.js

CG HW 03: Golden Tree

CG HW 03: Golden Tree

Nov 2025 · WebGL

CG HW 04: Twisted Porcelain

CG HW 04: Twisted Porcelain

Nov 2025 · WebGL

CG HW 02: DLA

CG HW 02: DLA

Nov 2025 · WebGL

AClocks

AClocks

Oct 2025 · APack

CG HW 01: Beesandbombs

CG HW 01: Beesandbombs

Oct 2025 · WebGL

Tree Beeswarm

Tree Beeswarm

Oct 2025 · Observable Plot

Tree Grid

Tree Grid

Aug 2025 · D3.js

Tree Cloud

Tree Cloud

Aug 2025 · D3.js

Genuary 24 / 25 - Painter

Genuary 24 / 25 - Painter

Jan 2024 · Charming.js

Genuary 24 / 19 - Green Growth

Genuary 24 / 19 - Green Growth

Jan 2024 · Charming.js

Genuary 24 / 18 - Shapes with Pattern

Genuary 24 / 18 - Shapes with Pattern

Jan 2024 · Charming.js

Genuary 24 / 17 - Islamic Avatar

Genuary 24 / 17 - Islamic Avatar

Jan 2024 · Charming.js

Genuary 24 / 16 - Waltz of Circles

Genuary 24 / 16 - Waltz of Circles

Jan 2024 · Charming.js

Genuary 24 / 9 - On Fire 🔥

Genuary 24 / 9 - On Fire 🔥

Jan 2024 · Charming.js

Genuary 24 / 1 - Noise Swirl

Genuary 24 / 1 - Noise Swirl

Jan 2024 · Charming.js

Shapes

Shapes

May 2019 · Processing

SineWavesPlus

SineWavesPlus

May 2019 · Processing

StarCloud

StarCloud

Apr 2019 · Processing

Parallel Universe

Parallel Universe

Jan 2019 · Processing

ParticleDance

ParticleDance

Dec 2018 · Processing

The Great Wall

The Great Wall

Nov 2018 · Processing

Purple Rain

Purple Rain

Nov 2018 · Processing

Fire Tree

Fire Tree

Nov 2018 · Processing

Wave

Wave

Oct 2018 · Processing

Clutch Shot

Clutch Shot

Oct 2018 · Processing