top of page
Portfolio

Average Abstraction
Hundreds of images. One subject. One algorithm.
The Averages series begins with a question: if you gather every photograph of a forest - every angle, every season, every quality of light - and average them together, what remains? What is the essential forest?
The process starts with a single word. That word generates a search. Hundreds of images are collected, clustered by perceptual similarity, then mathematically averaged within each cluster. What emerges is something between memory and hallucination - not a photograph, not a painting, but the distillation of how a subject appears across thousands of human interpretations of it.
The result is both precise and dreamlike. The sharp particulars dissolve. What persists is essence: the characteristic light of a lavender field, the vertical rhythm of sequoias, the particular way a window frame divides inside from outside.
These are not AI-generated images. No model learned to imagine them. Each is the direct mathematical output of pixel arithmetic applied to real photographs - a mean, taken carefully. The tools that make these works are built by me.
And yet the mean is where machine vision begins. A classifier learns a label the same crude way: shown enough examples, it keeps what they have in common and lets go of what only one of them happened to contain, until the class exists for it as a prototype rather than as any particular picture. Recognition is a distance, not an understanding. Is this near enough to what I hold as forest?
The blur is the concept. What survives the averaging is what a thing must have in order to be that thing at all, and what dissolves is everything a single photograph merely happened to catch.

Buntwald
A forest is never one thing - it is thousands of small decisions about light and cover, clustered into something we call a canopy.
Buntwald rebuilds that logic from bare branches. A tree render is separated into wood and leaves, the crown is clumped by watershed and faceted into low-poly plates, and a tapered trunk-and-branch skeleton is grown underneath it. Scatter enough of those trees and a scene appears that looks different every time the code runs.
Nothing here is drawn by hand and nothing is generated by a model. Procedural code stands in for the forest's own patience.

Random Effects
One working image, and a room full of filters to put it through.
Random Effects is where a finished render stops being finished. A watercolour simulation floods pigment across wet paper; a segmentation pass flattens a photograph into its constituent fields of colour; blends fold two images into one. Each effect is a small piece of hand-written image mathematics, and the interesting results come from stacking them in an order nobody planned.
The pieces here began life in another series and came out of this one as something else.

Squaresmith
A rectangle, filled entirely by squares, no two the same size.
It sounds like something you could solve on a napkin. It is not. The squares must cover the rectangle with no gaps and no overlaps, none may repeat a size, and — the condition that defeats every naive attempt — no group of them may quietly form a smaller rectangle inside. Below nine squares it cannot be done at all.
The way out is not to draw. Every squared rectangle is secretly an electrical circuit: each horizontal join is a node holding a voltage, each square a wire carrying a current equal to its own side. Kirchhoff's law and Ohm's law are the tiling constraints. So Squaresmith never places a square. It takes a surface — a 3D model, or a photograph lifted into relief by depth estimation — treats that surface's own structure as the circuit, powers it on, and reads the squares off the currents.
The seed decides everything. Change the mesh and every tile moves.
Each piece carries its Bouwkamp code — the notation mathematicians use to write a squared rectangle down. The image is an artwork and a proof at once.
The correspondence is Brooks, Smith, Stone and Tutte's, published in 1940 under the invented name Blanche Descartes. aiyopasta's film “What's Hiding In The 8,000 Squared Mosaic?” runs a Stanford bunny through exactly this route and comes out with eight thousand squares: https://www.youtube.com/watch?v=0fH80JF2mDM

Stairset
Skaters count stairs. Riser, tread, width, a number of steps: the vocabulary of a building code is also how a skate spot gets its name. The Hollywood 16. El Toro's 20, torn out in 2019. The Lyon 25 — twenty-five steps outside a Renzo Piano convention centre, whose ollie went unmade from Ali Boulala's attempt in 2002 until Aaron Homoki landed it in 2015. Nowhere else does anyone count the stairs.
Once you skate, that count changes how stairs look. The run-up gets measured, the rail reads as something to grind rather than hold, the landing gets checked for cracks and camber, and every new set is graded against the ones already rolled away from. Stairset comes from that way of looking, and its pieces are a way of passing it on: an appreciation for a good set.
Stairset builds only the object. Dimensions in, geometry out, the sun placed by hand, the same render call behind the screen and the paper. What it draws is the set standing empty — before the trick, or long after the spot was capped. Someone who has never stood at the top of one with a board may just see stairs; the pieces don't ask for more.

Poly-Peaks
Standing somewhere high, naming what you can see.
Poly-Peaks reconstructs the view from a single point on the earth: which summits are visible from there, where each one falls across the horizon, and how far away it stands. The result is a panorama that is not a photograph but a survey — the same view a person gets on a clear day, with the names still attached.
Layers can be peeled back to the bare horizon line, or built up through hillshade and relief until the distance reads as depth. The far ridges are genuinely far; the rhythm of the skyline is the one that place actually has.
Every peak here is a real peak, at a real bearing, at a real distance. The drawing is procedural; the geography is not invented.

Overstory
A machine learns to recognise a forest. Then it is drawn as one.
Overstory trains a random forest classifier — an ensemble of decision trees — to tell woodland from everything else, using nothing but the shape of a year of satellite greenness over each patch of ground. Forest and farmland green up differently, and the classifier learns that difference.
Then the metaphor is taken at its word. Each decision tree in the ensemble is drawn root-down as an actual tree, its branching the branching of its own logic, and the ensemble is scattered into a wood. The picture of the model and the thing the model recognises become the same image.
The satellite data is real and public. The classifier genuinely works. Every tree in the scene is one the model actually grew.

Brixels
A landscape, rebuilt one brick at a time.
Brixels takes elevation data for a real place and quantises it into the discrete world of a brick: fixed heights, a fixed palette, a grid that will not bend to the terrain. Everything the landscape does between two brick heights has to go somewhere, and where it goes is the artwork.
The constraint is the point. A mountain rendered smoothly is a photograph of a mountain. A mountain rendered in twelve available colours and a plate thickness is a reading of it — a decision, taken thousands of times, about what counts as high ground.
The elevation is real, sampled from public terrain data. The palette is a real catalogue of parts. What sits between them is arithmetic, written by hand.
The first piece, World, is a free build kit — instructions, order list and 3D model: https://www.karoshirt.art/product-page/brixels-world-001

Scribe
A word, scratched rather than written.
Scribe takes text and abandons the idea of a typeface. Letterforms are rebuilt as procedural marks — scored, split and worried at by the code until they read the way something scratched into a surface reads, not the way something set in type does.
Underneath is a Voronoi structure, the same partitioning that decides how cells fill a leaf or how cracks propagate through a glaze. Language is handed to a process that has no interest in legibility, and asked to survive it.
The words are chosen. Everything that happens to them is arithmetic.
Works from this series are in production, and will appear here as they are finished.

Shadow Maps
Where the sun does not reach, and for how long.
Shadow Maps casts real sunlight across real terrain. For a given place and a given moment, it computes which ground the light lands on and which sits in the shadow of the ridge behind it — then averages that across a day, a month, or a whole year.
Averaged over a season, the image stops being a moment and becomes a fact about a place. South-facing slopes come out bright because they are bright; a narrow valley stays dark because it is dark. This is why vineyards sit where they sit and why one side of a hill holds snow into spring.
Nothing is stylised into being. The sun's position is astronomy, the terrain is measured, and the shadow is geometry — an image that argues something true about the ground it describes.
Hello My Name Is
Your name, on a wall, in three dimensions.
Hello My Name Is starts from the sticker every visitor wears for a day: a name, written by hand. You draw the tag with a finger or a mouse, and the line is lifted into a solid, lit and turned in perspective like a piece of lettering on a wall.
The hand stays in it. The wobble of the stroke, the speed of the turn, the place where the pen paused: all of it survives the move into depth.
bottom of page
