About the lab
Six effects, each one a real algorithm with the parameters the algorithm actually has, run on the machine in front of you.
Why so few effects
There is a version of this site with forty effects on it, and it would be worse. Forty effects means forty things nobody tuned, forty sets of controls reduced to a single slider marked strength because nobody had time to think about what the real parameters were, and forty results that are approximately what the name suggests. It also means every one of them shipped as a preset, because presets are what you build when you have not decided what the knobs should be.
Six is what fits in a build where each one can be written from its actual definition. The halftone measures cells and draws marks of the right area, and its round dots invert past halfway the way a real screen does, because otherwise the shadows never close. The dither scans in a serpentine, because otherwise skies worm. The palette comes out of your own photograph by median cut rather than from a fixed list. The ASCII grid is built once and rendered twice, so the text file and the picture cannot disagree. None of that is difficult; all of it takes a decision, and decisions are what run out first.
What this site will not do
It will not adjust your photograph. There is no brightness control, no contrast, no temperature, and there will not be. Every effect here begins by averaging regions, and an adjustment made just before an average is an adjustment that gets averaged away — so a tone panel on this page would be controls that appear to do something and mostly do not. If a picture needs tonal work before it is rebuilt, it needs it in a tool built for tonal work, saved, and brought back here.
It will not sharpen, retouch, cut out a subject, replace a background, or put words over a picture. Each of those is somebody else’s job and each is a genuinely different piece of software. A tool that does one thing has room to explain what it is doing; a tool that does twelve has room for a menu.
And it will not upload anything. There's no upload step on this page — your picture is decoded in the tab, drawn to a canvas, and gone the moment you close it.
How it is built
Every kernel is plain arithmetic over typed arrays — no shader language, no image library, nothing that behaves differently on one machine from another. The heavy ones run in a Worker so the page stays responsive while a twelve-megapixel photograph is being screened; when a browser cannot give us a Worker, the identical functions run on the main thread instead, slower and with the same output, because a fallback that produces a different picture is not a fallback.
The preview runs on a copy no more than 1600 pixels on its long edge and the export runs on the original. That is one code path with a different raster in it, and every length you set is converted between the two — which is the only reason the file you save looks like the picture you approved.
The site is a set of static files. There is no account, no database, no server-side processing of any kind, and nothing that could be added later without the whole thing being rebuilt differently.
Who runs it
It is made by the same small group behind PictureEditor.com, whose name is under the wordmark at the foot of every page. The plan for running costs is advertising, placed below the working surface where it cannot get between you and the picture — but none of it is switched on yet, because the domain is waiting on AdSense approval, so what you are reading is paid for by nobody at present. When it does arrive it still will not see a picture: an advert cannot read a canvas, and nothing on this page hands one anything to read.
If an effect here is producing something you can demonstrate is wrong — not unattractive, wrong — that is worth hearing about, because every one of these algorithms has a definition it either meets or does not.