Open the studio

What's new

Everything that has changed in the studio, newest first. Where a change could touch work you have already made, the entry says so — and the short version is that it almost never can: a look travels as a link that encodes the design itself, so renames and new controls cannot reach one.

Aug 14, 2026

Five more stages: Mirror, Threshold, Duotone, CRT and Grade

The second half of the same day, and a different kind of addition from the three warps below. Those bend the picture; most of these decide what colour it comes out. Mirror folds the frame into a grid of cells, each one its neighbour reversed — the fold Kaleidoscope makes around a centre, made along two straight axes instead. One column and one row is the picture untouched, so the effect starts at two. Threshold is one cut and no grey: below the level goes black, above it goes white. It makes no colour at all, on purpose. Duotone is the stage that does — it maps the whole tonal range onto two inks you pick, with a step count that turns the ramp into flat bands. Put Duotone above Threshold and you get a coloured one-bit print, which is two stages doing one job each rather than one stage with a colour picker bolted to it. CRT is a tube: scanlines, the red-green-blue phosphor stripes a shadow mask splits the picture into, and a bowed screen. The lines stay straight while the picture curves behind them, which is both what you see on a real tube from a metre away and the only way to keep the lines from turning into interference patterns. Grade is the quiet one and probably the most useful: exposure, contrast, saturation, and a white balance in temperature and tint. It is the only stage here that makes every other look you already have better rather than adding a look of its own. That is twenty-one stages, and like everything else in the kit they stack in any order — each one only ever touches what is below it.

Three new warps: Kaleidoscope, Flow and Shear

The Warp family had two stages in it — Waves and Glass — and both bend the picture in a shape they work out for themselves. These three bend it in ways you place, and like every other stage they sit anywhere in the stack and only touch what is below them. Kaleidoscope folds the frame into mirrored wedges around a centre you put where you like. Sides sets how many, Zoom decides how much of the picture each wedge reaches for, and the Mirror switch is the difference between a kaleidoscope and a pinwheel: with it on, neighbouring wedges are reflections and meet along a seam; with it off, the same wedge simply repeats around the turn. Under Advanced there is a Spin that counts in whole wedges rather than degrees — a whole wedge is the only turn that leaves the picture exactly where it started, which is what lets an animated loop close on itself. Flow pushes the picture around with a noise field, the way water moves it. Amount is how hard, Scale is how big the eddies are, and Bias collapses the whole field onto one heading — at zero the picture swims every which way, at full it all drags along a single line. With Animation on the field travels and arrives back where it began. Shear cuts the frame into bands and slides them. It is a clean displacement rather than a dirty one: bands have hard edges and move as whole strips, so the picture stays readable and looks cut rather than corrupted. Spread is the control worth knowing — it is the share of bands that move at all, and keeping it low leaves most of the picture whole and throws a few strips out of line, which is almost always the better cut. None of the three costs you a second look at the layers below, so they are the cheapest stages in the kit to draw.

Aug 9, 2026

The color picker gets a dropper, and it reaches as far as your browser allows

Every color in the studio opens the same small picker: a square, a hue strip, a hex field. All three assume you already know the color you want. To match one you can see — in the photo on your image layer, in the canvas the effects just made, in a reference open behind the window — you had to read it off by eye and type six characters. There is now a dropper beside the hex field that takes a color by pointing at it. How far it reaches depends on the browser, and the button says which one you have. On Chrome, Edge and other Chromium browsers it opens the browser's own magnifier and will read any pixel on your screen — your artwork, but equally a photo in another window or a color in whatever is open behind the browser. On Firefox and Safari that magnifier does not exist, so the dropper reads the canvas instead: press it, and a small loupe follows your cursor over the artwork showing the pixels under it and the hex you are about to take. Click to take it. Escape puts the dropper away without touching your color, and so does a click anywhere off the canvas. Two things worth knowing. It gives you the color that is really on screen — after every effect in the stack, after tone and after gamma — so sampling the middle of your own gradient hands back a value that is in none of your stops, because that genuinely is the color you were looking at. And a sample costs you nothing extra in history: the whole visit to the picker is still one step, however many colors you tried inside it, and Escape while the picker is open still puts back the one you arrived with.

Aug 7, 2026

Randomize stops eating memory, and deals a lighter hand

Rolling the die no longer costs you memory that never comes back. One of you reported that Randomize could bring a machine to its knees, and was right about why. The studio builds a small program for each combination of effects you stack and keeps it, so that returning to a combination you have already used costs nothing. A Full roll re-deals which effects are in the composition and reshuffles their order, so nearly every Full roll asked for a combination that had never been built — and the studio threw none of them away. Holding the space bar turned that into a flood: your keyboard repeats about thirty times a second, so it was building thirty of those a second while it was also trying to draw. It now keeps a fixed number and releases the rest, and what it releases is genuinely handed back, which is the part that was broken. Space rolls once per press — tap it again for another. The arrow keys still repeat while you hold them, because walking the seed by holding one is what they are for. Full deals a lighter hand as well: at most five effects, and at most one of Halftone, ASCII and Hatch. Each of those three redraws the picture beneath it as marks, so two or three at once showed you competing versions of the same image and read as mud — and the heaviest hands the old die could deal were more than a graphics card could draw in time. The ordinary roll is untouched. It dealt three effects on average before and it deals three now; only the runaway hands are gone. Three smaller things went with it. Swapping the picture or the clip frees the old one at once, where it used to keep hold for ten minutes — swap through a few large videos and that was gigabytes sitting idle. A deeply zoomed stage caps how many pixels it renders, so magnifying the artwork no longer magnifies what it costs to draw. And if the graphics driver takes the canvas away, which is what a machine under this kind of pressure does, the studio builds a new one and carries on instead of leaving you a black rectangle and a reload.

Footage gets a timeline, and a stop that stays stopped

Drop a video on the canvas and a strip appears along the bottom of the stage: play and stop, the clip's clock, and a scale marked out in time with a playhead you can drag, click, or step along with the arrow keys. It is there while the Image layer is holding a video and it leaves with it. Stopping the clip is the part that needed real work underneath — the studio would pause the footage and then quietly start it again the next time anything on screen redrew, so a stopped video stayed stopped only until you touched a slider. It holds now, however long you leave it. That turns out to be worth more than just keeping the picture still: a PNG export saves the frame you are looking at, so stopping the clip and dragging the playhead is how you choose which frame that is. None of it travels with the look. A link you share carries the design, not the place you had paused it, and neither stopping nor scrubbing costs you an undo — the same as zooming the stage or dragging the before-and-after divider.

The picture library stops stacking, and the keys speak Windows

Two things people hit while using the studio, both fixed. The picture library — the grid of photos in the Image section — could draw its tiles on top of each other, a smear of half-visible pictures where four tidy rows belong. It went wrong in Firefox, in Brave, and in Chrome and Edge on Windows, and looked perfect everywhere else, which is the sort of thing you can stare straight at and not see. The first row always came out right too, so it read as something going wrong partway down rather than as the whole grid being wrong. Underneath, one element was doing two jobs: the grid was also the box that scrolls it, and a box with a fixed height is allowed to squeeze its own rows to fit. It is two elements now, and the rows hold their tiles open on every browser. The second is for anyone not on a Mac. The shortcuts panel spoke only Mac — ⌘Z, ⌘⇧Z, ⌥ drag — while the keys themselves have worked on a Windows keyboard the whole time; Ctrl and Alt were wired from the start. Nothing on screen said so, which is much the same as not having them. Every row that needs one now carries both spellings side by side — ⌘Z or Ctrl Z — in the ? panel, on the docs page, and in the undo and redo buttons' own tooltips. ⇧ is left as it is: Shift is Shift on both.

Aug 5, 2026

Export asks one question, and answers it in pixels

The image rows are HD, 2K and 4K, and each one spells out the size it will save — PNG — HD (1920×1080) on a landscape frame, (1080×1920) on a mobile one. Three rows left with them. "Screen size" made the file depend on the window you happened to be working in, so the same look saved a different picture on a laptop than on a monitor, and nothing on screen told you which you were getting. "Exact size" and "actual size" only ever restated the frame's own W×H, which the Frame section has shown in editable fields for a while now — the frame settles the shape, so the only thing left to ask about is how big. Underneath, a real bug went with them: contour read its tone field through a fixed-width sample, and "fixed" meant screen pixels rather than picture, so the lines came out bold and glowing at one size and thin and wiry at the next. That sample now measures a constant fraction of the frame. A contour look exports the same drawing at every resolution — just with more pixels in it — and the studio canvas in front of you is the same drawing too.

Aug 3, 2026

An empty canvas, and a tour if you want one

The "Start with…" card is gone. It floated in the middle of the stage with a close button and three choices on it — every one of which is also a key in the library beside it — so it was a popup asking a question the rail already answered, and its title made a free choice sound like a required one. An empty studio now just says so: Nothing here yet, the same three bases as plain words under it, and the reminder that you can drop a photo or video anywhere on the canvas. Nothing floats, nothing has to be dismissed. New alongside it: a five-step walkthrough that points at the real interface — pick a base, tune it in the panel, stack effects on it, re-order the stack, take it away. It opens with the studio every time, because a tool this new is worth putting in front of you rather than hiding behind a menu. Skip tour ends it, Esc does the same, and skipping leaves Take the tour on the empty canvas so there's a way back. When you've had enough of it, the ? menu has a switch — Show it on every open — that turns it off for good; Take the tour in the same menu still runs it on demand. The studio stays live underneath the whole time: the first step waits for you to actually add a base rather than miming the click for you.

One lock per thing, and a die on every layer

Right-click a section and every row now names what you clicked. The lock reads "Lock glass", where it used to read "Lock against Randomize" on an effect and "Lock shape vs Randomize" on the Color layer — three spellings of one idea, one of them a sentence about the die rather than about the thing in front of you. Color carried three locks in that menu (shape, colors and field) and a fourth way in from the palette's own right-click, which made it the only place in the studio where "is this locked?" had a partial answer: the padlock in its header lit if any one of the three was on. It is one lock per member of the stack now, so locking Color freezes the layer — palette, shape and field together. If you were locking those parts separately, that's the one thing here that behaves differently. Color and Pattern also pick up the Randomize row the effects have had since the per-stage dice landed: a fresh palette or a fresh grid with the rest of the composition left standing. Image doesn't get one — it's your photo, and the die has never dealt it. Finally, Copy and Paste settings are gone from those menus. They carried one stage's numbers between looks in this browser and nowhere else: you couldn't send them to anyone, and since an effect appears once in a composition there was never a second one to paste into. A look already travels whole as a link, which is the sharing that works.

Aug 1, 2026

Marks and Backdrop, not Ink and Paper

Halftone, ASCII, Contours and Hatch each had three colour controls called Ink, Ink colour and Paper. The print metaphor was doing more harm than work: ASCII sets glyphs, Contours draws lines, Hatch lays bands, and none of them touch paper — while the Paper stage a few rows down the same library is made of actual stock and fibre, so the one word meant two things. The row is now Marks, which is what those stages put down, and the surface behind them is Backdrop. The two colour swatches moved onto those rows instead of taking labelled blocks of their own. Backdrop also **follows your palette now**, the way the Pattern layer's gap colour does: add one of these screens and its backdrop arrives on AUTO, taking the lightest stop where the screen prints on a light ground and the darkest where it prints on a dark one — so it re-colours as you edit your stops. Pick a colour and it pins; the caret beside the label hands the palette back. Nothing about your existing looks changed — Mono and Source still mean what they meant, every colour keeps its value, and every link you've shared renders exactly as before, backdrop included.

A Full roll hands back the eye

Hiding a stage used to freeze it against Randomize, which meant a Full roll could deal you a composition with an effect in it that then refused to appear — and no roll could clear it, because the same freeze that kept it in the stack kept it from being dealt back out. Hiding isn't a lock. A Full roll is a new composition, so anything it deals now comes back visible. Light is unchanged and shouldn't change: it re-rolls what's on screen, and a hidden stage isn't. Locking a stage still freezes it completely — settings and eye alike — which is what the lock row is for.

Jul 31, 2026

The library gets out of the way

The tool library on the left now opens as its icon rail rather than as the full named list, and the list itself is narrower when you do open it — 220px against the 320 it was, which is all stage you get back. Nothing moved and nothing is hidden: every tool in the rail adds with a click, drags onto the canvas the same way, and names itself when you hover it, so the rail is the library rather than a folded-up version of it. The chevron at the top opens the reading view whenever you want it, and the studio remembers which one you left open.

The grids stop wandering

With Animation on, Pixelate's block lattice used to drift a fraction of a cell around the loop, so the mosaic slid slowly under the picture instead of holding its place. It was there on purpose — the idea was that the stage shouldn't sit frozen while everything else moved — but it was the wrong kind of motion for a stage whose whole point is hard blocks on a fixed grid, and adding Grout made it obvious, because mortar turns a drifting lattice into lines crawling across the frame. The grid now stays exactly where you set it, the way Halftone's cells and ASCII's glyph cells always have: those stages animate their marks and leave the lattice alone, and Pixelate now animates the only way a flat block can, by recolouring as the picture moves beneath it. Nothing about your stills changes — the drift was already zero at rest, so every export, thumbnail and paused frame was drawing this grid all along. Ordered dither is pinned now too, for the same reason: a Bayer weave is as much a grid you can see as a block lattice is, and it was sliding over your picture in exactly the same way. What still moves is everything with no structure to slide — the White noise and Blue noise dithers keep their boil, and so does film grain. That one matters: grain that holds perfectly still stops reading as grain and starts reading as dirt on the lens, sitting on the glass instead of living in the picture.

Sliders that say what they mean

A pass over every slider in the effect panel, asking one question of each: does its readout name the thing you're setting, or just where the handle is sitting? Four answers changed. Pixelate's Grout and ASCII's Gap were percentages of a cell — they now read in pixels of the finished frame and move one pixel per step, so you can ask for four pixels of mortar and get four. They still scale with the cell, which is what keeps a mosaic looking like itself when you resize the tiles, so the number follows the cell size set just above it. Contours' Weight was reading half the line: the value behind it is a half-width, measured out from the line in both directions, so what printed as 2px was drawing a 4px line. It prints the real thickness now — your lines have not changed, only the number describing them. And Gamma dropped its × on all three stages that have one, because gamma is an exponent and multiplies nothing; × in this panel now means a multiplier and nothing else. ASCII's Cell ratio also picked up the range every other cell-ratio slider has, 0.25 to 4, so it can finally make cells wider than they are tall. Plenty of sliders were left as percentages on purpose — Glass's Bevel, Halftone's Dot scale and Hatch's Weight are all shares of something with no single length to print. Every look you've saved renders exactly as before: these are readouts, not values.

Waves can run straight

Waves has drawn one shape since it shipped: rings, spreading out from a centre you place. It now has a second. A Type picker at the top of the section switches it between Circular — the ripple you already know, still exactly as it was — and Linear, which straightens the crests into a single front that crosses the whole frame. Pick Linear and a second picker appears asking which edge it comes from: left, right, top or bottom. The front enters there and sweeps to the far side. Everything else in the section keeps working on either shape — Amount is still how hard the crests shove the picture, Frequency is still how many of them cross the frame, and Falloff still spends the wave over distance, now measured across the frame from the edge it came in by rather than outward from a centre. At zero the front carries edge to edge at full strength. The one control that changes is the Center pad, which Linear doesn't show: a straight front spans the frame evenly and has no centre to place. It keeps whatever you last set and comes back the moment you pick Circular again. Every link you've already shared opens untouched — a look that never named a type is a ripple, which is what it always was.

Jul 30, 2026

Overprint is now Oddity

Same studio, new name. Nothing about how it works has changed — every link you've shared still opens the same look, every background you've embedded in a page keeps rendering, and the look you had on the canvas is still there. None of that was ever tied to the name: a shared link encodes the design itself, so a rename simply can't reach it. Embeds already on the web keep working too — the component they use answers to both the old and new name, deliberately and permanently, because the alternative is a blank space on somebody's page. The one thing worth knowing if you build with the Angular package: it's published as oddity-angular now, and the old package will point you there. Older entries below still say Overprint, since they're a record of what happened rather than a mirror of today.

Jul 28, 2026

3D has been pulled

Text and Shape are gone from the library, and with them the whole 3D layer — the extruded word, the primitives, the turntable and the gaze that followed your cursor. This isn't a bug you're seeing. It was the one feature here that never really joined the rest: everything else is a stage in a single stack that reworks whatever sits below it, while 3D needed its own engine, baked itself to a flat still the moment a look left the studio, and asked more of the app than anyone was getting back from it. Pulling it makes the whole thing lighter and clears the way for work that had been queued behind it. If you have a link with a 3D layer in it, it still opens — the layer simply isn't in it anymore, and the rest of the look renders exactly as it did. Whether it comes back depends on whether it's missed, so if you were using it, that is worth knowing.

Softness that defocuses instead of dissolving, and glass that curves

Two sliders blurred and neither was really a blur. Softness and the photo's own Blur both worked by dropping to a smaller copy of the picture and scaling it back up, so pushing either one didn't soften your work so much as dissolve it — at the top of the track you were looking at something closer to a bad upscale than a lens. Both are real optical blur now. At full Softness the picture goes properly out of focus and stays a picture, edges spreading into one another the way they do through glass, and the same holds for a photo you blur before stacking anything on top of it. It costs less than what it replaced, too, which was the most expensive thing being done to every single frame. The Lens gained a third slider while we were in there: Distortion curves the glass, right barrelling the middle out like a fisheye and left pinching it into a pincushion. It changes the shape of the picture without changing what's in the frame, so your corners stay where you put them — though pushed hard to the left it will streak the edges outward, a pincushion having to reach for picture that was never there. Everything starts where it always did, and every link already shared renders exactly as it did.

Screens that print crooked, blocks with mortar, and reactions that run backwards

Halftone and Hatch could knock their marks off the grid, but only while the loop was running — the knock cancelled exactly at rest, so every export, thumbnail and still printed a machine-perfect lattice however loose the screen looked on screen. Both now take a Jitter that prints: it shoves each mark off its own cell centre and stays shoved, with its own seed so you can reroll the arrangement without disturbing your palette, pattern or lights. On Hatch it is the difference between ruled and cut by hand. Pixelate, meanwhile, snapped its blocks edge to edge with no idea a block had an inside; it can lay grout between them now, either a colour you pick or a shade of each tile, which reads as recess over anything. And every pointer reaction ran one way only. Reverse pinches instead of magnifying, leans into the cursor instead of away, turns the swirl the other way, and makes the spring gather rather than scatter — over ASCII the glyphs really do converge and leave a hole behind, while over other rasters the sheet draws in instead. The spring also lets you set damping apart from stiffness, so marks can ring on long after the cursor has gone. All of it is off by default, and every link already shared renders exactly as it did.

Fluting that runs sideways, paper you can choose, lights that differ

Three stages could only ever describe one surface. Fluted glass ran vertically and nothing else, so the horizontal panel every glazier sells was unreachable; the flutes now run at whatever angle you set, and turning them keeps their width rather than stretching them. The pane got two more knobs while we were there: its cross-section, from a straight prism to a flat sheet that bends only at the seam, and how far the polished bevel reaches in from each edge. The stage named Paper, meanwhile, could not pick a paper — one warm white was baked in. Newsprint grey, kraft brown and anything else are yours now, along with how coarse the weave is and how hard the corners fall away. And the Light stage shared one brightness and one radius across all four of its sources, so four lights were always the same light in four places. Each carries its own share of both now, which is the whole difference between a key, a fill and a rim. Everything here is off or neutral by default, so no link you have already shared moves a pixel.

Cells stop having to be square

Halftone, Dither, Pixelate and Glass each divided both axes by one number, so their cells were always square whether you wanted that or not. Each now takes a ratio: above 1 the cell stretches tall, below 1 it goes wide, and the mark stretches with it. On Halftone that gives you the elliptical screen a duotone is printed with; on Pixelate, the tall blocks of a scan line. ASCII had this all along and it was one of its better knobs — now the rest have it too. Square is still the default, and a square look renders exactly the pixels it always did.

The negative screen, and a Hatch that can crosshatch

Halftone, ASCII, Dither and Hatch each gained an Invert switch under Advanced. It flips the tone that picks the mark, so the shadows print the big dots and the heavy glyphs instead of the highlights — the negative you previously had to fake by inverting everything underneath. Hatch also learned the thing its name promises: how many rules are ruled across each shadow cell is now yours to set, and a second set can be laid across the first at any angle. Where the two sets cross they print as one, not as a darker knot. All of it is off by default and none of it moves a link you have already shared.

Every stage gets its own dice, and its own clipboard

The dice deals a whole look, which makes it useless for the question you actually have — what else could this halftone be? Each effect's ⋯ menu now rolls just that stage and leaves the rest of your composition exactly where it was. The same menu will copy one stage's settings and paste them into the same stage on another look, so a Light you spent ten minutes on can move without bringing the rest of the design with it. Controls that can't act in the current mode still get out of your way — but if one is holding a value you set, it now stays put and says why it's idle, instead of vanishing with your number inside it. And on a machine that can't quite keep up, dragging a slider on a heavy stack briefly softens the canvas rather than dropping frames; full quality returns the moment the control settles.

Jul 27, 2026

Some controls became one control

Halftone's Wind was two sliders — how hard, and which way. It's one puck now: drag it out for strength, around for the bearing, hold Shift to snap. At the centre there's no direction to have, which is what the vanishing angle slider used to be telling you. The 3D layer's Yaw and Pitch became one pad the same way, so you turn an object with the gesture you'd use to turn an object — and every pad in the app now takes a typed number, which they never did. Halftone, ASCII and Hatch each grew a small square beside their size sliders showing one of their own cells, rendered by the same engine that draws the canvas: pitch and mark weight are two numbers that only mean something together, and now you can see which picture you have.

The controls answer the keyboard

Open a dropdown and it hands the keyboard the list: arrows walk it, Home and End jump the ends, typing a letter goes straight to that option, and Escape closes it and puts focus back where it started. Sliders that only have a few legal stops — Levels, Weight, anything that steps — show those stops in the groove when you're on them, so a smooth-looking track stops pretending it can land anywhere. Hold Alt while dragging and the slider lets go of its default instead of snapping home, which is how you reach the values either side of it. Readouts now hold their width, so a row no longer shuffles sideways as digits come and go, and each one shows exactly the decimals its own step can produce. Escape in a colour picker puts back the colour you opened on — it used to mean keep it and close — and a whole picking session, however many drags it took, is one undo. Shift-drag on a position pad holds one axis. And while an export is running the panel now looks switched off rather than silently ignoring you.

Every picker is a dropdown now

The last few option lists in the panel were little two-up strips you clicked between — the Ink switch on Halftone, ASCII, Contours and Hatch, and the Pattern layer's Layout / Tiles source. Everything else had been a dropdown since the Presets tab took the tabstrip with it, so the panel was quietly speaking two languages: a list of two options looked nothing like a list of thirteen. They are all dropdowns now, which means one thing to learn, one place to look, and a name a screen reader can actually read out — the old strips had none. The Pattern layer's two dropdowns picked up captions in the process, Source and Layout, so neither reads as a heading for the other. Nothing about your looks changed: same options, same order, same result.

Three stages get plainer names

Every effect in the palette is one word now. Contour lines is Contours, Optics is Lens — it always was one, sitting under everything the way a lens does — and Tone geometry, the most opaque name in the app, is Hatch. It does what it did before: one mark per cell, rules in the shadows, rings through the midtones, bars in the light. ASCII's Density slider is called Levels, the name Dither already used for the same thing — counting the steps your tones get rounded to. Nothing moved but the words: your links, your saved looks and every embed on a page somewhere render exactly what they rendered yesterday.

Jul 26, 2026

Hover an effect to see it on your own look

The effects list used to be names and glyphs, which never told you what a stage would do to the picture you already had. Hover one now and a small plate appears beside it: your look, with that effect in it, rendered for real. It's the same answer the click commits, so nothing surprises you afterwards. The Presets tab is gone in the same breath — most of its ten combos were one effect with grain or a lens on top, none of them had learned the newer stages, and a preview of your own work beats a grid of someone else's. With one list left, the tabs at the top of the panel went too; it simply says Library now. Roll the dice (Space) is the way to be surprised on purpose. The control panel got a tidier order while we were in there: every section now runs the same way — what it is, then the sliders, then the colours, then the switches, so on/off decisions like Stagger rows and Blend in OKLab sit together at the bottom instead of interrupting the sliders. The floating bar moved to the bottom of the stage and lost weight: it runs undo/redo/clear, then zoom, then compare and preview quality, with Randomize in its own pill off its right end. Copy look is an Export menu item now — it is an export, the cheapest one, and the only one that stays editable. Two things retired outright: Recenter, since double-clicking the stage and the 100% button both reset the pan, and the O home mark — the studio is where you were going, and the help key still links out to the docs.

Jul 25, 2026

A light that rides the cursor

"Light follows" used to sit in the Pointer rack, next to four reactions that bend the picture — an odd one out that added a glow instead of moving anything. It now lives in the Light stage, as a Follows the pointer switch, and it's the light itself that rides: whichever source you point it at brings its own effect, color, amount and size along, so the cursor can drag tinted caustics or a fan of rays around, not just a white sheen. Light several sources and a row appears to hand the ride to another one. It needs no Pointer stage at all — like the Color layer's own follow, it's a property of the thing that moves — and it fades out when the cursor leaves, so stills and exports never catch it mid-ride. The Pointer rack keeps the four reactions that were always its real job. Older links that used the old mode open as a following light in exactly the same place in the stack, so they still print the same picture at rest.

Six families, and the deep controls fold away

Thirteen effects in one flat list was a wall. They now sit in six families — Warp, Light, Raster, Print screens, Finish, Interact — and the collapsed icon rail cuts a groove at the same lines, so the shape holds whichever way you keep the library. Halftone and ASCII, the two longest sections, tuck their deep controls into an Advanced fold at the bottom: halftone's Emboss, Wind, Wobble and Glint, ASCII's Exposure, Density and Scatter. Nothing was removed, and nothing hides behind your back — open a look that already uses one of them and the fold is open too, showing the control that's doing the work. One rename came with it: the slider that said "Background" in four different sections (and meant paper in two of them, a dark backdrop in another) says Show-through everywhere now — how much of your artwork comes through the marks. Dither's "Quantize" is "Color mode". Labels and layout only: every link you've shared renders exactly as it did.

Spring — marks that flee and bounce back

The Pointer stage traded Shard scatter and Smudge for one reaction that does what both were reaching for: Spring, a particle system. With ASCII below the stage every glyph becomes a true particle with a home — bring the cursor near and glyphs get flung away with real momentum, leaving actual gaps behind and piling up where they land; pull back and they spring home, overshooting once before they settle. Strength sets how hard they flee, Radius the size of the bubble, and the new Stiffness slider the personality of the return. Under Pixelate, Halftone or Dither the blocks and dots fly whole; over a plain print the sheet flexes like rubber. Older links that used the two retired reactions open on Spring.

A color that rides the cursor

The Color layer's new Follows the pointer switch hands one of your palette's colors to the mouse. By default the palette gives up its lightest color — the one that shines through whatever sits above it — and the swatch beside the switch opens your gradient's own colors, as ink, not hex, to put any stop on the ride instead. On Mesh that color's own point swims to the cursor; on every other shape its color blooms through the field around it — the gradient warps around the travelling color and blends out through the neighboring stops at the rim. It's the layer moving, not the effects above it: put Halftone, ASCII or Dither on top and their grids stay planted while the color passes underneath, dots and glyphs changing hue as it goes. No Pointer stage needed, it ships inside embeds and components, and everything eases home when the cursor leaves — stills and exports never move.

Jul 20, 2026

Four lights, one look everywhere

The Light stage now holds up to four sources — press + on its position pad to place another, drag each puck home, and give every light its own color (tinted Iridescence is the oil-slick look). Effects also stopped changing size between screens: cell sizes now anchor to the frame's own resolution, so a shared link renders identically on a 4K desktop, a laptop and inside embeds — existing links keep rendering exactly as they always did. Plus a before/after split on the toolbar, position pads that span the panel and pan edge-to-edge with no dead zones, one dropdown for every dither pattern with a new Threshold slider, and a fresh add now opens its own controls while the rest fold away.

Jul 18, 2026

Smudge — throw the print around

The Pointer stage learned a sixth reaction. Smudge paints your cursor's path into a living ink trail — over a plain print it drags the look like wet ink, and with Pixelate, ASCII, Halftone or Dither below it, their own blocks, glyphs and dots tear loose, fly with your stroke, then ripple and gather back home as the ink heals. The new Fade slider sets how long the smear lingers. Ships inside embeds like every reaction, and stills stay untouched, as always.

Angular component export

Building an Angular app? Export → Copy Angular component hands you a ready component: npm install overprint-angular, paste, done. Your look travels as a typed config object — every field spelled out and editable in your codebase — and the package renders it through the studio's own pipeline, so what you see here is what your app draws. React and Vue flavors are on the roadmap; the embed snippet covers every framework today.

Four new Color shapes & OKLab

The Color layer learned four new fields: Metaballs melt blobs into rims and cores, Voronoi grows organic cells with inked veins, Aurora sways curtains of additive light over a dark base, and Liquid marble combs ink into creased filaments. Every one holds an exact still, loops seamlessly and travels in the link like the shapes before it. There's also a Blend in OKLab rocker under the color stops — perceptual ramp blending that doesn't go muddy mid-ramp, off by default so existing looks don't move a pixel.

Jul 17, 2026

Frame your photos, trust your exports

The Frame section slimmed to five named shapes with W×H fields always in view: type any size and the name follows the shape (1920×1080 reads 16:9, anything else reads Custom), exports can save exactly those pixels, and Actual matches the canvas to the image itself — no crop, no bars, a PNG at its native size. The image layer learned framing: Cover or Contain fit, a Focus pad and Zoom — controls appear only while something is actually cropped. A toolbar gauge drops the preview resolution when heavy stacks lag (each option shows what it draws) — exports always save at full quality. The studio also locks itself while a loop export renders, and the Gradient layer is now called Color — one stop makes it a solid.

Jul 16, 2026

Transparent images work

PNG uploads with transparency no longer get a black background — clear regions show whatever sits below the image in the stack, and blurred edges stay clean. Embeds keep the transparency too.

Jul 15, 2026

Layers joined the stack

The whole composition is one draggable stack now — Gradient, Image, Pattern and 3D re-order like any effect, and a stage only affects what's below it. Halftone the gradient but keep the photo crisp above; grid a wave-warped image. The gradient also gained Blend and Opacity, so it can ink onto whatever sits under it. Old links render exactly as they always did.

Solid colors

The gradient's palette now goes down to a single stop — remove the rest and the layer becomes a flat color, exactly the swatch you picked. Add a second stop and the gradient comes back.

3D moved into the Effects list

The 3D tab is gone: Text and Shape now sit in their own group between Layers and Effects. Pick the exact primitive — torus, sphere, knot, box, cone — in the panel's 3D section, like before.

Drag positions on a pad

Light position, waves center and the gradient's focal point are now little maps of your frame — drag the puck instead of nursing two sliders. Double-click returns to rest, arrow keys nudge for fine work. Panel labels also stopped highlighting mid-drag.

Jul 14, 2026

3D type & shapes

The 3D tab is open for business: extruded words and primitives — torus, sphere, knot, box, cone — rendered under the whole effect stack. Halftone a headline, contour-line a knot, spin it whole turns per loop with the turntable, or flip on Face the pointer and it turns to meet the cursor. Everything lives in the URL; embeds bake a still and stay exactly as light as before.

Jul 13, 2026

Video layers

Drop a video onto the canvas like a photo — the whole effect stack plays over the footage, halftone to pointer warps. Loop exports match the clip's length so the wrap lands on the file boundary. Videos stay on your device: links and embeds won't carry them.

Paper is its own effect

The fibered stock that lived inside Grain is now a Paper stage of its own — drag it anywhere in the stack. The sliders that fade an effect's gaps toward a flat color are all called Background now; old links keep rendering exactly as they did.

MP4 loop export

Loop videos now save as H.264 MP4 wherever the browser can encode it — rendered offline, so the export finishes as fast as the GPU draws, not in clip-time. Browsers without WebCodecs still record WebM.

Contour Lines & Tone Geometry

Two new stylize stages. Contour Lines turns the tone field into a topographic map — iso lines with dash, glow and paper. Tone Geometry prints shadows as thin rules, midtones as rings, highlights as bars.

Jul 12, 2026

Halftone weather & ASCII symbols

Wind streaks whole lanes of halftone cells, wobble and glint move the marks on the animation beat, and ASCII gained a font-free Symbols style — dots, bars, crosses and stars picked by tone band.

Paper stock

The Grain stage grew a Paper slider: warm fibered stock with a corner vignette under the speckle, anchored to CSS pixels so 2K and 4K exports keep the exact same sheet.

Two new pointer reactions

Vortex stirs the print around the cursor like wet ink; Shards breaks it into rigid pieces that scatter and reassemble exactly when the pointer leaves.