It started with two coloring sheets from a museum, the kind clearly designed for children, which is exactly why two adults did it anyway. You pick an animal from the Forests of Vietnam, color it, and scan it into a giant projected forest where it walks around with everyone else's creations.
I colored a giraffe. Shreya colored a fox. Mine had a cobalt blue face, a yellow mane, a fuchsia body, and a green and blue tail that made no ecological sense. Hers had a lime green face, careful purple stripes, and a tail filled entirely with pink swirls. She also wrote her name as SUREYA on the sheet, which I have chosen to preserve in family lore forever.
A few days later I sent photos of both sheets to Claude with a question that was mostly a joke: can you document our styles as if we were proficient painters? The answer was not a joke, and that is where this project actually began.
Step one: taking crayons seriously
What made this work was refusing to treat the source material as childish. Claude wrote us proper artist statements, and two people coloring the same sheet turn out to have completely different instincts.
My giraffe was diagnosed as chromatic maximalism with a Fauvist streak. Nothing was the color it should be, but the strokes obeyed the anatomy and the printed patches breathed through the pigment. Color as a wash over form.
Shreya's fox was the opposite intelligence. She does not color, she encodes. Vertical stripes at regular intervals, then a full texture switch for the tail, from lines to dense swirls that actually read as fur. Hard boundaries, full saturation, zero hesitation.
Written down like that, the two sheets stop being cute and start being a design brief. What happens if you force these two languages into one painting?
Step two: decide what the painting means before deciding anything else
Here is where my product brain took over. Instead of jumping to "generate a cute image," we built a decision tree ordered by how much each choice constrains everything downstream. The root decision was the thesis. Not the composition, not the medium, the thesis.
We picked a painting that says: we see each other through each other's eyes. That resolved half the remaining decisions. I get her language: lime green face in flat committed zones, my curls as her pink swirl loops, my jacket striped in her purple. She gets mine: translucent cobalt wash on her face, cadmium yellow tracking her hair the way my yellow tracked the giraffe's mane.
The animals stay untouched, exactly as we made them, because they are the evidence. The swapped portraits are the interpretation. Each style appears exactly twice: once on our own creature, once on the other person.
The rest cascaded. A facing pair, because a thesis about gaze should encode gaze. The giraffe's neck arcing in from the left, the fox's tail from the right, reaching toward each other without touching. Full crayon fidelity, an eight crayon palette from the originals.
That is the process lesson: deciding what the thing means before deciding what it looks like is the difference between an image and a piece.
Step three: likeness is signifiers, not pixels
We wanted our actual faces in this, recognizably. So we fed in reference photos and extracted likeness signifiers, the few features that make a low resolution medium still read as a specific person. For me: thick dark curls, straight brows, deep smile lines, the bandhgala collar. For Shreya: one curl across her cheek, a bindi, her necklace, and the fact that she wears florals in real life, always.
That produced my favorite discovery of the project. In real life she wears patterns and I wear solids. Under the swap, my solid jacket gains her stripes and her floral dress gets washed over in my translucent strokes, flowers ghosting through. The source material was secretly built for this exchange. We just had not noticed.
Step four: a vector study, then a handoff prompt
Claude first built a v1 as an SVG study, which verified the composition but could not fake crayon warmth, and we wanted photographic likeness under the crayon surface.
The next step was a transfer document, a long structured prompt for Gemini. Two choices mattered. First, rules before scene: the swap logic and locked palette went at the top, because image models weight early tokens heavily. Second, we resolved the contradiction in "photorealistic crayon drawing" explicitly: facial structure faithful to the reference photos, crayon as a surface layer over anatomically accurate faces. Without that split, models abandon likeness for style or style for likeness.
Step five: iterate composition first, texture second, and lock what works
Iteration one came back genuinely good. The faces landed on the first try, green face, blue face and all. But the fox's tail had detached and floated as a beautiful orphaned arc. The biggest element in the frame belonged to nobody.
Iteration two fixed the geometry with the single best idea of the project: the giraffe's neck and the fox's tail almost forming a heart around us, with a small gap of pure white paper at the apex, directly above us. The instruction said the gap is the emotional center of the image. It is.
Iteration three was about completeness: a forest floor with wildflowers and a couple of crayons left in the grass, canopies closing over the corners, butterflies in the middle air, and a wobbly hand drawn border with two QR style markers, a callback to the scanner that started all this. One hard rule held it together: fill everything, except the heart shaped gap.
The critical instruction later was declaring the faces final. Image models drift features when they redraw surroundings, so you protect what works loudly and explicitly. We kept a compositing fallback and never needed it.
What we ended up with
A crayon painting of the two of us in a Vietnamese forest that is being colored in around us. I have a green face and her swirls in my hair. She has a blue face and my yellow strokes in hers. My giraffe watches her. Her fox watches me. Above our heads, their arcs almost close into a heart, and the only clean white left on the whole sheet sits inside that gap.
Squint at it from across the room and you see a white heart floating in a saturated jungle with two faces at its center.
Total tools: two coloring sheets, four photos, eight imaginary crayons, one language model, one image model, three iterations. The whole thing took an afternoon.
The part I keep coming back to is not the output, it is the ordering. Thesis, then structure, then surface. Fix geometry before texture, and lock what works. I have shipped software with worse process than this painting.
And somewhere in a museum database, a blue faced giraffe and a green faced fox are still wandering around a projected forest together. This is just what happened when they came home.