
Un art voulu voyant is the research and art project of Florian Rosinski, artist and researcher. I build its site, as a volunteer, under his art direction.
One of its pieces lays cut-out hands over a text. Before the first line of the program that extracts them, there were two notes. They are public on the project's site, in French. This note sums up what they decide, and why I work this way.

uavv.fr, the project's site.
What we are making
The note for Florian starts with the point of arrival: a page read on a phone. Text in a column. Over it, some thirty cut-out hands, each as wide as two words.
When you scroll, the hands move more slowly than the text. They drift through the lines, and what they were hiding is freed.
These hands come from tarot-reading videos published on social networks. Dozens of people who do not know each other make roughly the same gesture in them: shuffle, cut, lay down, point. It is that repetition the piece wants to make visible.
A note for the artist, a note for the developer
Two documents, two readers.
- La Fabrique des mains is written for Florian. No jargon. It says what happens, in order, and above all which decisions are his.
- Quel détecteur de mains is written for whoever codes. Measurements, licences, dead ends.
In a volunteer project with an artist, what is scarce is not computing power. It is his time and his judgement. The first note exists to ask for them only where they count.

Découpes: the texts and images produced along the research.
The chain multiplies, then reduces

The chain, in La Fabrique des mains.
Forty videos give nearly three thousand still images. The machine finds four hundred usable hands in them. A human keeps about thirty.
Judgement comes in at the narrowest point: where it costs the least and decides the most. Not at the start, when three thousand images would have to be sorted. Not at the end, when it would be too late.
There are seven operations. Each writes its result to disk and never redoes the work of the previous one. The note says it concretely: if we change our mind about the cut-out in three weeks, we rerun the cut-out alone, without downloading a single video again, and without losing the choices already made.
Three choices that are not obvious
We do not ask the machine to "remove the background". A background remover does not look for an object: it looks for the most visible subject of the image. In these videos that is the person, or the table. So we crop around the hand first. Cropping is not there to save time: it changes what the machine thinks it is looking at.
Sharpness is measured inside the silhouette. These videos are shot with a blurred background. Measured on the whole image, a sharp hand on a soft background gets a bad score, and is thrown away. So we measure the sharpness of what we keep, never of what we are about to remove.
The halo. The pixels on the edge of a cut-out are half transparent, and keep the colour of the original background. On black, that gives a pale rim around each hand. The cure is an operation of its own: recomputing the foreground colour under the transparent zone.
Choosing the detector: measure, do not assume
Eleven options were compared for a single stage of the chain: finding a hand that handles cards.

The verdict: one choice, one safety net, and a separate use for vision models.
MediaPipe Hand Landmarker wins. It is the only candidate whose quality was measured in our conditions instead of being assumed.
The serious objection was known: it was said to lose track on close-ups and when an object hides the hand. Those are exactly our two conditions. So we measured, on real hands.

Each line is a sweep, not a single point.
The throughput settles the hardware question: 46.6 milliseconds per image on a single core, that is 126 seconds for the 2,700 images, and about twenty seconds on six processes. No graphics card is needed for this stage.
Measuring also showed something we were not looking for.

As blur increases, sharpness collapses. The detector's confidence stays high.
The detector's confidence says nothing about sharpness. It recognises a frankly blurred hand very well. The note for Florian puts it better: a tool always tells you how confident it is in its task, never in yours.
A last result, less expected. A rule of the project required Python 3.12, because MediaPipe would not install beyond it. Running it showed this was no longer true: version 1.0.1 installs on Python 3.14. A written rule has a date. It has to be checked again before building on it.
Licences are a technical criterion

The comparison. The licence is in the second column, not in a footnote.
Several candidates are good and unusable:
- an AGPL licence, which its publisher reads more broadly than common practice;
- non-commercial licences, one of which even forbids derivatives;
- a project frozen since April 2024, which every installation recipe still assumes;
- the detector closest to our need, which requires Python 3.8 and a build nothing maintains any more.
We ruled out on principle any tool whose licence forbids commercial use, so as not to close a door if the piece is one day exhibited or sold. The note flags it to Florian as a point to settle: that constraint has a cost in quality, and it is for him to say whether it is excessive.
What the note says it does not know
The technical note ends with a section "What I could not verify": eight items. Model weights spotted but not audited. A fallback library neither installed nor tested. A deduction made from the size of a file, with no confirmation.
It is a section I want to find in every technical note. It tells the reader where to lean, and where to redo the work.
The text flows around the hand
One option of the project: that the text follows the outline of the hands instead of passing under them.

The note's demonstration. The silhouette is an image generated in the page; the text follows its outline, not its box.
The CSS property that does this is shape-outside. In its url() form it reads the transparency of the image: exactly what the cut-out produces. The setting that matters is shape-image-threshold: at 0.5 the outline follows the solid matter rather than the faintest pixel of the edge.
But shape-outside requires a floated element, so one in the flow of the text. And the hands have to drift more slowly than the text, so out of the flow. The two cannot hold on the same hand. The note says it plainly: it is an alternative, not an addition.
What we do not allow ourselves
The note does not dodge it: these videos belong to their authors, and collecting them automatically is not what the platforms' terms provide for. So three limits are written into the making itself.
- The rate is capped. One browser, no parallelism. Forty videos, not forty thousand.
- Attribution goes all the way. The author's name, the platform and the link to the video travel with each hand, and show when you touch it.
- No collected image enters the repository. What is versioned is the programs and the decisions, never other people's material.
What I take from it
- Write before coding. Two notes take time. They avoid building on a wrong choice, and leave a trace the artist can read.
- Measure in your own conditions. A tool's reputation does not say how it behaves on your images.
- Separate what the machine decides from what belongs to someone. The cut at the wrist, the casting, the text: those choices carry a "Yours" mark in the note.
- Keep the cancelled decisions visible. The project's journal keeps them, on purpose.
The same project gave a library that computes the sky. That is the other note: astralmanach, taking a library out of a volunteer project.