Skip to content

Riso

Prints the picture in two inks of fine dots on cream paper, a little off register, like a risograph.

Group: Print & Halftone · How to add an effect

The dancer's face, raised arm and dress on a dark stage, original left and with Riso right: the stage becomes deep indigo where both inks overlap, her skin turns into pink dots, the shadows of her dress into blue dots, and the light parts of the dress stay cream paper
Left: original. Right: Riso at its default settings, a detail.

Use it for: a hand-printed zine or poster look · programme art, flyers and projections in the colours of a production · a warm, analogue texture on a dark stage.

  • Dot Size – how large the dots of the inks are.
  • Registration – how far the two inks slip apart.
  • Dark Ink and Warm Ink – the two colours that print the picture.

Tip: pick two inks of the production’s colour scheme: Riso works out by itself which ink prints which part of the picture, and where both overlap you get the darkest colour the two can make. A dark ink with a light, bright one reads best.

The dancer's upper body five times, once per preset: Zine in blue and pink dots with pink fringes on a violet stage, Postcard in teal and red on a dark teal stage, Art Print in fine green and pink dots on a dark aubergine stage, Gig Poster in bold black and red dots, and Off Register in large burgundy dots with aqua fringes beside every edge on navy

The five presets on the upper body. Click for full size: one pixel of a 1080p frame per screen pixel.

Pick one in the Preset row of the effect card. It sets all controls at once, in one undo step, and the row then shows its name until you change something. A control with keyframes keeps them, and the card says so.

Zine – medium blue and fluorescent pink in coarse dots, clearly off register: a self-printed fanzine. Loud and friendly, with pink fringes along the edges.

Postcard – teal and bright red in fine dots, almost in register: a holiday postcard. Skin goes warm red, shadows and the stage cool teal.

Art Print – hunter green and fluorescent pink in very fine dots: a quiet, almost photographic art print. The figure stays detailed and pale.

Gig Poster – black and bright red in bold dots: a concert poster. The black ink carries the picture, the red only the warm parts.

Off Register – burgundy and aqua in large dots, far off register: the aqua ink glows beside every edge like a print that slipped on the press. Made for large surfaces and graphic moments.

Properties, Effects with a Riso card: Preset menu showing Postcard, Dot Size and Registration under Pattern, Dark Ink, Warm Ink and Amount under Color, beside the preview of the dancer printed in teal and red dots, her dress light, the stage a dark teal

Riso with the Postcard preset. 1 — Preset: pick a starting point. 2 — Dot Size. 3 — Registration: how far the inks slip apart. 4 — Dark Ink. 5 — Warm Ink. 6 — Amount.

Style – switches to another look of the same engine, for example Riso Glow, Halftone or Paper Print. A control you changed keeps its value and keyframes when the new look has the same control, also under another name (Dark Ink is Halftone’s Ink); the others start at the new look’s defaults. Riso Glow keeps Dot Size and Registration; in the other looks Registration is no mark size, so their Scale opens at its default, and Dot Size stays for a switch back.

Dot Size – how large the dots of both inks are. 3 to 5 px gives a fine print that still reads as a photo, 6 to 10 px the classic risograph grain, 20 and more turns a figure into a graphic pattern of big dots. Each ink has its own grid of dots, turned against the other, so where both print they form small rosettes. It counts pixels of a 1080p picture, so a 4K export shows the same dots as the preview; on a frame too small for one pixel the card says what renders. 2 to 40 px, default 6 px.

Registration – how far the two inks slip apart, like two drums of the press that did not line up. At 0 they print exactly on top of each other; 2 to 4 px gives the slight, honest misprint of a real risograph; 10 and more lets one ink glow beside every edge of the figure. The dark ink moves up and to the left, the warm ink down and to the right, half the distance each. Keyframe it from 0 for a print that slowly drifts apart. 0 to 32 px, default 3 px.

Dark Ink – the first ink, printed through a grid turned 15°. Choose the darker of the two: it carries the shadows, and together with the warm ink it makes the darkest colour of the print. Blues, teals, greens, burgundy and black work well. It takes a colour, default #2046b3.

Warm Ink – the second ink, printed through a grid turned 75°. A bright colour gives the print its light: pink, red, orange, aqua or yellow. Each part of the picture is printed with whatever mix of the two inks comes closest to its colour, and every part keeps its brightness. It takes a colour, default #ef476f.

The paper is a fixed cream. To print on another paper, open the Nodes tab and change Paper R, Paper G and Paper B in the Constants folder (see the Remix under Paper & Inks).

Amount – how much of the print covers the picture. At 1 there is only ink on paper; 0.5 lays the dots softly over the picture’s own colours; 0 switches it off. Keyframe it to let a scene turn into print on a cue. 0 to 1, default 1.

The Riso graph in eight stages: Parameters feed Screens (Dot Size, Registration) and Paper & Inks; Cell Filter averages the picture over boxes of half a cell; Cell Colour reads that for every cell of both screens; Separation splits each cell's colour between the two inks; Tone sets how much ink each cell gets; Dots turns that into round dots; Print & Mix (Amount) prints them on the paper and lays the print over the picture

Riso opened in the Nodes tab (input frame and output left out). 1 — Paper & Inks: the paper and the two inks as light. 2 — Screens: where each ink's dots lie. 3 — Cell Filter: the picture averaged over half a cell. 4 — Cell Colour: one colour per cell. 5 — Separation: which ink prints what. 6 — Tone: how much ink. 7 — Dots: round dots. 8 — Print & Mix: ink on paper, over the picture.

Riso works in eight stages, one folder each in the Nodes tab. Paper & Inks turns the paper and the two ink colours into light. Screens places each ink’s grid of dots: slipped by Registration, turned to its own angle, cut into cells of Dot Size. Cell Filter averages the picture over boxes of half a cell, and Cell Colour reads one colour of that for every cell. Separation splits that colour between the two inks, Tone sets how much ink the cell gets so that it keeps its brightness, and Dots draws the round dot that covers that share of the cell. Print & Mix prints both inks on the paper and lays the print over the picture by Amount. Every folder holds the same nodes twice, once for each ink; the pictures below show the dark ink’s.

Inside the Paper & Inks folder: Combine Vector joins Paper R, G and B (0.96, 0.93, 0.85), and sRGB to Linear turns the paper into light; the Dark Ink goes through Vector 4 to RGB and sRGB to Linear; Subtract takes it from One (RGB): what the ink takes from the paper; Multiply with the paper light and Luminance give that as one brightness

Inside Paper & Inks, with the dark ink (the warm ink is built the same way). 1 — Combine Vector: the paper's colour. 2 — sRGB to Linear: the paper as light. 3 — Subtract: what the ink takes. 4 — Luminance: as one brightness.

Combine Vector – the paper is a fixed cream: Paper R, G and B are 0.96, 0.93 and 0.85.

sRGB to Linear – turns the paper into light, as it adds up on a screen; a second one does the same for the ink colour of the card. All mixing in Riso happens in light, like real ink on paper seen from a distance.

Subtract – one minus the ink’s light: how much of each colour channel a full layer of the ink takes away from the paper (Dark Ink Takes). A blue ink takes almost all red and green and little blue.

Luminance – the same as one brightness, measured on the paper (Multiply). Tone uses it to keep each cell’s brightness; a second Luminance in the folder measures both inks on top of each other.

Remix: open the Constants folder and set Paper R, Paper G and Paper B to 1 for white paper, or to 0.85, 0.72 and 0.55 for brown kraft paper: the whole print, its light parts and its separation follow the new paper.

Inside the Screens folder: Registration, at least Zero, times the Frame Scale and Half, times the Slip Direction (0.8, 0.6) gives the slip; Add moves the Pixel by it onto the dark ink's drum; Subtract the Frame Centre, Rotate UV by the Dark Angle of 15 degrees, Divide by the Dot Size, Fraction and Subtract Half give the place in the cell

Inside Screens (Dot Size, Registration), with the dark ink. 1 — Multiply: the slip. 2 — Add: the dark ink's drum. 3 — Rotate UV: the screen angle. 4 — Divide: counted in cells. 5 — Subtract: the place in the cell.

Multiply – half of Registration (in pixels of this frame, Frame Scale) along a slanted direction, 0.8 across and 0.6 down: how far each ink slips.

Add – moves the pixel by the slip: the place on the dark ink’s drum (Dark Drum). The warm ink subtracts it instead, so the two inks part in opposite directions.

Rotate UV – turns that place around the frame centre by the ink’s screen angle, 15° for the dark ink and 75° for the warm ink, so the two grids of dots cross and form small rosettes instead of a moiré.

Divide – divides by Dot Size: the place counted in cells. Floor of it says which cell the pixel belongs to.

Subtract – Fraction and Subtract Half give the place inside the cell, from −0.5 to 0.5: Dots measures the distance from the cell’s centre with it.

The picture averaged over boxes of half a cell, in linear light and weighted by alpha, once for both inks (they share Dot Size). The four reads of a cell lie in the middle of four such boxes, which together cover the cell, so each cell prints the average colour of all its pixels and its dots change smoothly on moving footage. The same as Halftone › Cell Filter, sized by Dot Size.

Inside the Cell Colour folder, with one of its four reading points: Floor and Add give the middle of the cell, Multiply turns it into pixels, Rotate UV turns it back by Minus Dark Angle and Add puts it on the frame: the Dark Cell Centre; Subtract takes the Quarter Diagonal off it, Divide by Resolution gives the place to read, Clamped Image Sample reads the Cell Filter there, Split RGB + Alpha splits it, sRGB to Linear and Alpha to Scalar feed Multiply; Divide splits the Light of All Points by their alpha: the Dark Cell Colour

Inside Cell Colour, with the dark ink and one of its four reading points. 1 — Rotate UV: the cell's centre on the picture. 2 — Subtract: one reading point. 3 — sRGB to Linear: colour as light. 4 — Multiply: weighted by alpha.

Rotate UV – turns the middle of the cell back by the screen angle and puts it on the picture: the Dark Cell Centre. Every pixel of a cell finds the same centre, so the whole cell gets one colour and one clean dot.

Subtract – one reading point: the centre minus a quarter of the cell along its diagonal (Quarter Diagonal). The other three points sit on the other corners of the same small square. Each reads the Cell Filter, the average of a quarter of the cell, so together they give the average of the whole cell.

sRGB to Linear – turns the colour the Cell Filter holds there into light, as it adds up on a screen.

Multiply – weights that light with the point’s alpha, so a transparent point does not darken the cell. Divide splits the light of all four points by their alpha: the cell’s colour (Dark Cell Colour). A little paper is added to both sums, so a cell whose points are all transparent prints no ink at all.

Inside the Separation folder, the first part: Divide splits the Dark Cell Colour by the Paper Light, Subtract takes it from One (RGB) and Maximum keeps it at Zero (RGB) or more: Dark Cell Takes; Multiply with Dark Ink Takes, RGB to Vector, Split Vector and two Add nodes sum it over the three channels

Inside Separation, comparing the cell with the dark ink. 1 — Maximum: what the cell takes from the paper. 2 — Multiply: channel by channel with the ink. 3 — Add: summed up.

Maximum – one minus the cell’s colour divided by the paper: how much of each channel the cell takes away from the paper, at least 0 (Dark Cell Takes). A cell lighter than the paper takes nothing.

Multiply – compares that, channel by channel, with what a full layer of the dark ink takes. The same is done with the warm ink.

Add – sums the three channels (Cell · Dark Ink). Together with the inks compared with each other (Dark · Dark, Dark · Warm, Warm · Warm in the folder), these numbers are all a least-squares fit needs.

From these numbers the folder solves for the two shares: first the dark ink’s share as if nothing limited it, kept between 0 (no ink) and 1 (a full layer), then the warm ink’s share beside it, then the dark ink’s once more: Dark Share and Warm Share. Two equal inks share the work.

Inside the Tone folder, the scale: Luminance of the Dark Cell Colour, subtracted from the Paper Brightness and kept at Zero or more by Maximum: the gap; Add sums the shares times what each ink takes: the slope; Multiply gives the overlap of both inks; Square Root and two Divide nodes solve for the scale, and Minimum takes the smaller result

Inside Tone, the scale (the dark ink's cell). 1 — Maximum: how much darker than the paper. 2 — Square Root: where the inks overlap. 3 — Divide: the exact scale. 4 — Minimum: or the darkest the inks reach.

Maximum – how much darker than the paper the cell is, as one brightness: the gap the inks have to fill. 0 for a cell as light as the paper.

Square Root – where both inks print on the same spot, they multiply and darken less than side by side (Multiply: the overlap). The square root solves the small equation that counts that overlap.

Divide – the scale for both shares that gives the cell exactly its brightness: twice the gap, divided by the slope (Add: how much the shares darken side by side) plus the root.

Minimum – takes that scale, or the deepest the inks can go (the other Divide) if the cell is darker than the two inks can print. The rest of the folder scales the other ink’s share by it and then solves this ink’s coverage exactly beside it, so when one ink is already full, the other prints the rest: Dark Coverage.

Inside the Dots folder: Multiply by Dark Inverse Pi and Square Root give the radius of a small dot; Subtract, Square Root and Multiply by the Dark Corner Reach, taken from the Dark Cell Corner, give the radius of a large dot; Greater Than compares the coverage with the Dark Touch Share and Switch picks one; Add moves it by the Edge Shift, and Smoothstep and Subtract draw the dot one pixel soft: the Dark Dots

Inside Dots, with the dark ink. 1 — Subtract: the radius of a large dot. 2 — Switch: small or large. 3 — Add: pure black and white. 4 — Smoothstep: the dot's edge.

Subtract – a round dot that covers exactly the ink’s coverage of the cell has the radius √(coverage / π) (Multiply and Square Root below). Once the dots touch their neighbours, at about 79 % coverage, the paper is left only in the corners of the cell; this radius closes those corners, so a full coverage prints solid ink.

Switch – picks the small or the large radius by the coverage (Greater Than the Dark Touch Share of π/4).

Add – moves the radius by up to half an edge (Edge Shift): a cell without ink shows no speck, a full one no hairline of paper.

Smoothstep – draws the dot with an edge one pixel soft at every Dot Size, measured from the place in the cell: the Dark Dots.

Inside the Print & Mix folder: Mix chooses between One (RGB) and the Dark Ink Light by the Dark Dots, a second Mix does the same for the warm ink; Multiply puts both on the Paper Light, Linear to sRGB turns it into the Print, Mix lays it over the Pixel RGB by Amount and Combine RGB + Alpha joins it with the Pixel Alpha

Inside Print & Mix (Amount). 1 — Mix: the warm ink where its dot sits. 2 — Multiply: both inks on the paper. 3 — Combine RGB + Alpha: the transparency back on.

Mix – the warm ink’s light where its dot sits, and 1 (no ink) between the dots; the dark ink has the same node above it.

Multiply – the paper’s light through both inks: where the dots of both inks overlap, they multiply into the darkest colour of the print, as real inks do. Linear to sRGB turns that light back into a colour, the Print, and the second Mix lays it over the picture by Amount.

Combine RGB + Alpha – puts each pixel’s own transparency back on, so a cut-out figure keeps its outline and empty areas stay empty.

  • Size. Dot Size and Registration count pixels of a frame whose shorter side is 1080: a 4K export, a portrait frame, a lower Preview Quality and the thumbnails show the same dots and the same slip. A cell is never smaller than one pixel of the frame being drawn, so small dots can come out coarser in a preview at 1/4 quality than in the export; the card says so, for the preview as well as the export. Registration may stay below a pixel.
  • Colour. Each cell’s colour is the average of all its pixels in linear light (four reads of the Cell Filter) and split between the two inks by a least-squares fit of the light it takes from the paper. The inks multiply where they overlap, and over an area the dots keep the colour’s brightness within a few percent. A colour the two inks cannot make (green with blue and pink ink) keeps its brightness and takes the nearest mix; black prints both inks in full, white stays paper.
  • Screens. The dark ink’s dots lie on a grid turned 15°, the warm ink’s on one turned 75°; dot edges are one output pixel soft, so a 4K export is sharper than the preview, not different.
  • Transparency. Transparent reading points do not count towards a cell’s colour, and a cell whose points are all transparent prints no ink. Each pixel keeps its own alpha, so the inks slip inside a cut-out figure’s outline.
  • Time. Riso does not move by itself: a paused picture needs no extra rendering. On moving footage the grids stay in place and the dots change with the picture.
  • Saved projects. A project stores each effect’s node setup, so a saved Riso keeps the look it was saved with. One saved before Dot Size existed, without a node setup, keeps its earlier look exactly: both inks printed the same darkness, a little apart (Registration in pixels of the frame), without dots, mixed over the picture at Amount 0.75. Its card hides Dot Size and says so; add the effect again for the print described here. A custom Look keeps the node setup it was saved with in the same way. A Dot Size or Registration below its limit renders at the limit, and the card says so, also on a saved node setup.
  • More: Effect system · Node Catalog · Styles and presets.