Data Visualization · AI Product

Silhouette Art of Early America

Designer & Developer · Timeframe: 2 months · Collaboration with the Smithsonian Museum

Gallery View
Collection Browser
Webcam Silhouette
AI Generated Faces

Overview

An archive of over 1,800 silhouettes is a hard thing to browse. Every object is a black profile on a white background. There is almost no differentiation. Some sitters the Smithsonian were able to give names to, while for many of the other sitters, there is no name: history recorded the outline of a person and nothing else.

Silhouette Art of Early America is my attempt to make that archive explorable. Further useing AI, I set out to do something the original archive never did. Give a 'face' to the people it left unnamed.

The silhouettes are the work of William Bache, an early nineteenth century artist who cut thousands of paper profiles as he traveled the eastern seaboard, the Caribbean, and Cuba. He captured American society as he found it: politicians, soldiers, everyday men, women, and children. Cheap to make and quick to produce, the silhouettes were kept as mementos, slipped into a locket, pasted into a family album or could be shared with a relative for safekeeping. They capture likeness and mystery.

Built with Smithsonian Open Access materials and a Hugging Face model backend, the project turns these portraits into an interactive archive you can filter, compare, and trace. It lets a visitor render their own profile through the same idea Bache worked with centuries ago: outline, shadow, identity.

Clickable desktop version — the full archive, filters, and trace animations at scale

Clickable mobile version

The Design Problem

Browsing over 1,800 nearly identical objects

An archive of silhouettes resists browsing. A visitor has no reason to click one over another.

So I let the data decide the structure. I worked through the archive's records to see which attributes were actually populated and reliable enough to filter on, and built the navigation from what the data could genuinely support rather than from categories I wished existed. That produced filters by sitter, gents (men), women, and children, or by role, surfacing the politicians and military figures among Bache's sitters, and by date range across his travels.

One of the most important filters came from a gap I observed. The Smithsonian's own research recovered names for some of Bache's sitters; many others remain unidentified and always will. I made that division a filter of its own, so a visitor can move between the named and the nameless.

Some attributes were genuinely distinct but only applied to a handful of silhouettes. Those filters that returned only a handful of results for example were not worth exposing to a visitor. I initially tried combining several of these filters into fewer, broader categories, then pulled them back apart.

Gallery View

Interactive gallery of silhouette portraits

Collection Browser

Browsing and filtering the collection

The AI Interaction

Webcam

Asking a visitor to turn on their camera is the big ask in the experience. I set expectations: guidance on how to position yourself for the best result even though the model works without following it exactly and an honest statement of how long the image generation will take, so the wait is something a visitor agreed to.

The exchange had to be worth it. A visitor gives their face, and in return they see themselves rendered in the same visual language Bache used two hundred years ago. The physiognotrace (the device Bache used to trace a sitter's profile) is replaced by computer vision, with the same idea of outline, shadow, and identity.

Webcam Silhouette

Creating your own silhouette with the webcam feature and AI

The Line I Drew

Giving a face only to the faceless

The AI can generate a portrait for any sitter. I chose to generate them only for the ones history never identified.

That rule mattered. Recreating a face for someone whose likeness or identity we actually have would be inventing over the record, replacing a real person. But for the sitters whose names were lost, there was never going to be a face at all. While generating an image to people who would otherwise have none, the project doesn't overwrite anyone who does.

AI Generated Faces

Using AI to visualize unidentified sitters

The Trace

Over 1,800 outlines, redrawn

Bache didn't draw freehand. He used a physiognotrace: a mechanical device that followed the contour of a sitter's face and reduced a person to a single continuous line. Fast, cheap, repeatable, it's why one man could produce thousands of portraits across a lifetime of travel, and why ordinary people could own a likeness when a painted portrait was too expensive.

To make that mechanism legible, I extracted the outline of all the silhouettes and rebuilt them in D3 as animatable paths. Any silhouette in the archive can be re-traced on screen, along a similar profile Bache's stylus may once have followed.

That's why the trace feature isn't just a novelty. It's the same operation Bache ran two centuries ago. The physiognotrace pointed at a face and captured an outline. The model does the same only using different tools but with the same premise.

Trace Visualization

Visualizing the physiognotrace tracing technique

What the Archive Revealed

The nameless as a population

Of Bache's over 1,800+ sitters, more than 1,100 are still unnamed. People whose likeness survived two hundred years while their identity did not. The Smithsonian's research recovered some but the rest are lost for good. Building a filter for that gap made it visible in a way a catalogue never could: you can browse the nameless as a population. And for the first time, they have faces, not recovered but imagined.

Reflection

Designing with a machine that invents

The hardest decision in this project wasn't technical. It was deciding where the AI was allowed to go. A model that can generate a face can generate any face including one for a person whose real likeness we already have, which would mean replacing a record. Drawing that line mattered more than anything I built.

Explore the live project →