Today's tools help shape tomorrow's creativity.
Creative technologist and HCI researcher at NYU ITP building tools for programming, generative art, and data visualization. Creator of Recho (CHI & UIST 2026); previously led AntV G2 5.0 at Ant Group.

A text-first notebook that shows output as comments right in your code, for algorithms, ASCII art and sketching.

A camera web app that draws your face as one continuous line; 400+ faces collected at ITP Spring Show 2026.
A collective installation that grows a unique tree from each visitor's name and plants it in a shared forest.

A writing system that packs English letters into square glyphs, so words read like Chinese characters.
A live-coding editor where every keystroke plays the piano, turning code, music and visuals into one instrument.

A Grammar of Graphics library for interactive charts. Led v5.0; 12.5k GitHub stars, 1M+ monthly npm downloads.
FilA mobile feed for interactive programs, where a coding agent adapts sketches into playable, remixable posts.
Recho SpecsWrite the examples first; an AI agent builds the JavaScript library to match, with snapshots as tests.
GraphbookBrowser notebooks for p5.js to write, run and share sketches for learning and teaching.
Recho MultiplesExplores creative code by rendering many parameter variations side by side, like small multiples.
GTypeA typeface system that defines each letter as a graph of nodes and links, rendered in SVG and WebGL.
{Mountains, Trees, Names}*An infinite, zoomable landscape planted with every tree from Find Trees in Names.
Soft TimeA generative clock of blurred, drifting circles that turn with the hours, minutes and seconds; web and Apple Watch.
HAPRepaints images through visualizations of classic sorting, sampling, search and graph algorithms.
M2Animates one static image by rotating polarized light, applying Malus' Law instead of a barrier grid.
Jiggly WordleWord clouds that wobble with personality, built on d3-cloud (with a fix sent upstream).
Chart Music LabSix experiments that turn charts into instruments: what do charts sound like, and can music draw them?
Swings of LifeA 3D stacking game where every floor you drop evolves under Conway's Game of Life.
Charming PretextFlows text inside any SVG shape for text-based visualization and generative art, built on Pretext.
Charming V2A lightweight JavaScript library for data-driven SVG and Canvas with little boilerplate; pairs with D3 and p5.
Markdown GenjiA Markdown extension for interactive documents, inspired by Observable; plugs into VitePress and Docusaurus.
Charming V1A declarative, high-performance language for computational art and ASCII graphics, with a Rust/WebAssembly core.
SparrowA tiny Grammar of Graphics plotting library written to teach how visualization libraries work, with a companion book.
AntV CoordCoordinate transforms for visualization (polar, helix, parallel, fisheye); authored for G2, also works with D3.
AntV ScaleMaps data to visual values like position, size and color, with custom ticks; authored as a core module of AntV G2.
PyCharmingA Processing-style Python library for ASCII art in the terminal, and the beginning of Charming.
BlinkBlinkA Chrome extension that turns Notion pages into slides, with impress.js-style transitions.
ColorFuAn online editor for wallpapers made of words, colors, patterns and emoji, named after the 福 tradition.
CA2A visual analytics system for comparing subgraphs of a large network to trace cyber attacks.
nCovisA visual analysis platform tracing how COVID-19 shaped news and public opinion in 2020.
GossipA slide tool that lays out and animates your outline automatically using a word-cloud layout.
CICSC VisA visual analytics platform for 1.88M conference sensor logs, revealing crowd movement and anomalies.
Ping Pong Table MonitorA vibration sensor and live dashboard that log when the ITP floor's ping pong table is in play.
Rolling Mail ServiceA roaming mailbox robot that prints anonymous letters from strangers and invites a reply.
FrankensteinA two-link robotic arm built from scrap wood, steered by inverse kinematics, with an LED face that smiles.