Skip to content

Kaleidoscope

Folds a slice of the picture into mirrored wedges around a centre, like looking through a kaleidoscope. The pattern stays round on any picture size, and a moving figure becomes a flower that opens and closes.

Group: Lens & Distort · How to add an effect

Left: original. Right: Kaleidoscope with six mirrored pairs and Source Angle 75°, the slice straight below the middle.

Use it for: psychedelic and ornamental patterns · a symmetric flower from a dancer or from lights · a slow, hypnotic background.

  • Segments – how many mirrored pairs go round the circle.
  • Source Angle – which slice of the picture the mirrors show.
  • Zoom – how close that slice is.

Tip: Source Angle starts at 75°, the slice straight below the centre at six pairs, so a figure in the middle of the frame is folded whole. When you change Segments, set Source Angle to 90° − 90° / Segments to keep reading that slice. Keyframe Source Angle slowly for the classic look of a turning kaleidoscope.

The dancer four times in a grid, labelled: Ink Blot with her dress and arms mirrored left to right and top to bottom into one broad shape, Crystal with three large overlapping facets of the dress, Mandala with a dense round flower of thin petals and feet in a ring, Tiles with a small flower in the middle ringed by mirrored copies of the dress

The four presets on the dancer.

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. Every preset reads the slice straight below the centre, where a figure in the middle of the frame stands. Center X / Center Y go back to the middle of the frame.

Ink Blot – two mirrored pairs, slightly enlarged: the figure is mirrored left to right and top to bottom, like a folded ink print. Still readable as a body, so it works for a dreamlike double.

Crystal – three pairs, close up: big facets, as in a toy kaleidoscope with three mirrors. Strong on fabric, smoke and light.

Mandala – twelve pairs at full size: a dense, round flower of thin petals. For ornament, ritual and a hypnotic background.

Tiles – four pairs, zoomed out: a small flower in the middle, ringed by mirrored copies of the picture. On a busy picture the frame fills with a grid of tiles.

Properties, Effects with a Kaleidoscope card: the Preset menu showing Crystal, Segments 3, Rotation 0°, Source Angle 60°, Zoom 1.50, Center X and Center Y 0.50, Shape Circle and Frame Edges Mirror, beside a strip of the preview with the dancer's dress and legs folded into large mirrored facets

Kaleidoscope with the Crystal preset. 1 — Preset: pick a starting point. 2 — Segments: how many mirrored pairs. 3 — Rotation: spins the pattern. 4 — Source Angle: which slice the mirrors show. 5 — Zoom: how close the slice is.

Preset – a starting point for Segments, Zoom and Source Angle; see Presets.

Segments from 2 to 12 and back, Source Angle 75°.

Segments – how many mirrored pairs of slices go round the circle: 6 gives 12 slices. 2 is a simple double mirror, 3 to 6 the classic kaleidoscope, 12 and more a dense mandala of thin petals. Whole numbers give a clean pattern; between two whole numbers both patterns show at once, so a keyframed count dissolves from one to the next. Use hold keyframes for clean jumps. 2 to 16, default 6.

Rotation – spins the whole pattern around its centre, without changing what it shows. Keyframe it for a slowly turning ornament. −360 to 360°, default 0°; a typed or keyframed angle may go further, because the pattern repeats every turn.

Source Angle from 30° to 150° and back.

Source Angle – which slice of the picture the mirrors show, as a direction from the centre: 0° is to the right, 90° straight down, 180° to the left. The slice is 180° / Segments wide (30° at six pairs) and starts at this angle. Turning it is like turning the tube of a real kaleidoscope: the pattern stays in place, while new parts of the picture flow through it. −180 to 180°, default 75°; a typed or keyframed angle may go further and simply goes round again. Effects saved before 75° became the default keep 0°.

Zoom from 0.5 to 2.5 and back, Source Angle 75°.

Zoom – how close the slice is. Above 1 a smaller part of the picture fills the pattern, larger and softer; below 1 the mirrors read past the edge of the frame, and Frame Edges decides what fills those rings. 0.25 to 4, default 1.

Center X from 0.4 to 0.6 and back, Source Angle 75°.

Center X – where the centre of the pattern sits, from the left edge (0) to the right edge (1). The centre is also where the mirrors read from, so moving it changes the pattern, not only its place. 0 to 1, default 0.5.

Center Y – the same from the top (0) to the bottom (1). Keyframe Center X and Y together to keep the pattern on a moving figure. 0 to 1, default 0.5.

Shape – Circle keeps the wedges true to the angle on any picture size, so the pattern stays round; Stretch to Frame stretches it with the frame into an oval on a wide picture. Circle, Stretch to Frame, default Circle.

Frame Edges – what fills in where the mirrors read past the edge of the frame, at a Zoom below 1 or a centre near the edge. Mirror reflects the picture at the edge, so the pattern continues in rings; Clamp repeats the outermost pixels into streaks; Transparent leaves those places empty, so a sharp-edged polygon floats over the layer below. Mirror, Clamp, Transparent, default Mirror.

The Kaleidoscope graph: Parameters feed Centre & Shape, whose Offset, Centre and Shape Scale go with Rotation, Source Angle, Zoom and Segments into Wedge Fold; its two Read Positions, the Premultiplied Source made from the Input Frame and the Frame Edges choice go into Frame Edges & Reads, and Crossfade & Straight Alpha blends Pattern A and Pattern B into the result

Kaleidoscope opened in the Nodes tab (Constants, Coordinates and the Output card left out). 1 — Centre & Shape: each pixel's offset. 2 — Wedge Fold: folds the angle. 3 — Premultiplied Source: the picture, ready to read. 4 — Frame Edges & Reads: reads the picture there. 5 — Crossfade & Straight Alpha: blends and finishes.

Kaleidoscope does not paint anything: it moves where each pixel reads, like every effect in its group (the shared idea). Centre & Shape measures each pixel’s offset from the centre, Wedge Fold folds its angle into one mirrored slice, Frame Edges & Reads reads the picture there, from the Premultiplied Source prepared once per frame, and Crossfade & Straight Alpha blends the two neighbouring whole segment counts and turns the result back into a normal picture. Wedge Fold and Frame Edges & Reads hold two paths each: A for Segments rounded down, B for one more. Click a folder’s header to open it; the sections below show what is inside.

Inside the Centre & Shape folder: Minimum of X and Y gives the shorter side; Divide makes Resolution relative to it; a Switch picks it or One by Shape (Greater Than with Half); Subtract takes the Centre from UV, and Multiply scales the result by the Shape Scale into the Offset

Inside Centre & Shape (the cards of Center X and Y are left out). Green cards bring values in from outside the folder. 1 — Divide: the frame against its shorter side. 2 — Switch: Circle or Stretch to Frame. 3 — Subtract: the place relative to the centre. 4 — Multiply: the Offset.

Divide – the frame size divided by its shorter side: (1.78, 1) on 16:9. Minimum before it finds the shorter side from the width X and height Y in pixels.

Switch – picks that size for Circle, or One for Stretch to Frame (Greater Than compares Shape with 0.5). This is the Shape Scale.

Subtract – the pixel’s place (UV) minus the Centre: how far it lies from the middle of the pattern, as a share of the frame.

Multiply – that distance times the Shape Scale: the Offset in units of the shorter frame side, so angles on screen are true angles and a circle stays round.

Inside the Wedge Fold folder, path A: Offset Y and X feed Arctangent 2; Add turns the angle by Rotation; Tau divided by Count A makes the Wedge; Mirror Repeat folds the angle into it; a second Add adds Source Angle; Direction from Angle times Read Radius makes the Read Offset

Inside Wedge Fold, path A; path B, the zoom and the segment counts are left out. Green cards bring values in from outside this excerpt. 1 — Arctangent 2: the angle around the centre. 2 — Divide: one wedge. 3 — Mirror Repeat: folds the angle. 4 — Add: picks the slice. 5 — Multiply: back to a place.

Arctangent 2 – turns each pixel’s offset into its angle around the centre. The first Add card turns that angle by Rotation, which spins the whole pattern.

Divide – a full turn (Tau, 2π) divided by Count A, Segments rounded down: the width of one mirrored pair, the Wedge.

Mirror Repeat – folds every angle into the first half of a wedge, forwards and backwards in turn: from 0 up to half a wedge, then down again. Every slice now reads from the same slice, every second one mirrored. This is the whole trick.

Add – adds Source Angle to the folded angle: which slice of the picture the mirrors show. This is the Read Angle.

Multiply – the direction of that angle (Direction from Angle) times the Read Radius, the distance from the centre divided by Zoom: the Read Offset. Two nodes after it turn it back into a place in the picture, Read Position A. The same chain with Count B makes Read Position B.

Remix: for a spiral, add a new Multiply node of Read Radius and a Value of 3, and a new Add node of the first Add’s Turned Angle and that Multiply. Plug the new Add into the Value input of both Mirror Repeat nodes (one per path). The pattern now twists further the further it is from the centre.

Inside the Premultiplied Source folder: Frame goes into Split RGB + Alpha; Multiply multiplies the colour by the alpha, Combine RGB + Alpha joins it with the alpha again, and Cache Image keeps the result as the Premultiplied Source

Inside Premultiplied Source (cached). 1 — Multiply: colour times transparency. 2 — Cache Image: keeps the prepared picture.

Multiply – multiplies every pixel’s colour by its transparency. When a read later blends neighbouring pixels, a transparent one then adds no colour, so a cut-out figure keeps clean edges instead of a dark rim.

Cache Image – keeps the prepared picture, so it is made once per frame, not once per pixel, and both paths read the same one.

Inside the Frame Edges and Reads folder, path A: Read Position A goes through Clamp (between Zero and One) and through Mirror Repeat; a Switch picks one of them by Not Mirror; Sample Image reads the Premultiplied Source there; a second Switch picks One or Edge Coverage by Is Transparent, and Multiply scales the read by it into Pattern A

Inside Frame Edges & Reads, path A, reduced to its recipe (how Edge Coverage, Is Transparent and Not Mirror are worked out is left out). 1 — Mirror Repeat: reflects at the edge. 2 — Clamp: stops at the edge. 3 — Switch: picks one by Frame Edges. 4 — Sample Image: reads the picture. 5 — Multiply: empties the places beyond the edge.

Mirror Repeat – folds a Read Position beyond the frame back in, as in a mirror: the Mirror choice.

Clamp – holds the Read Position between Zero and One, so it stops at the outermost pixel: the Clamp choice, and the base of Transparent.

Switch – picks the mirrored or the clamped position; Not Mirror is true for Clamp and Transparent.

Sample Image – reads the Premultiplied Source at that position, blending the four nearest pixels.

Multiply – scales the read by One, or for Transparent by Edge Coverage, which falls from 1 to 0 within one pixel of the frame edge. The result is Pattern A; the same chain makes Pattern B from Read Position B.

Inside the Crossfade and Straight Alpha folder: Mix blends Pattern A and Pattern B by the Crossfade; RGBA to Image and Split RGB + Alpha take the result apart; Maximum keeps the alpha above Coverage Floor, Divide divides the colour by it, and Combine RGB + Alpha joins colour and alpha into the Result

Inside Crossfade & Straight Alpha (the two RGBA conversions of the patterns are left out). 1 — Mix: blends the two patterns. 2 — Maximum: never divide by zero. 3 — Divide: the colour back to full strength. 4 — Combine RGB + Alpha: the finished picture.

Mix – blends Pattern A and Pattern B by the Crossfade, the part of Segments after the point: at 6 only Pattern A shows, at 6.5 both equally, so a keyframed count never cuts a wedge open.

Maximum – keeps the transparency above a tiny Coverage Floor, so a fully transparent pixel never divides by zero.

Divide – divides the colour by the transparency again: the step back from the Premultiplied Source, so half-transparent edges keep their real colour.

Combine RGB + Alpha – joins colour and transparency into the finished picture that goes on to the next effect.

  • Fold. Offsets are measured in units of the shorter frame side, so angles are on-screen angles and the Circle shape stays round. The angle is folded into one mirrored slice of 180° / Segments, turned by Source Angle and read at distance / Zoom.
  • Fractional Segments crossfade the patterns of the two neighbouring whole counts, so an animated count changes smoothly and no wedge is cut open; halfway, both patterns show at once. Each count reads the picture once, so the effect costs two reads per pixel.
  • Units. Rotation and Source Angle are stored in radians and shown in degrees; keyframe lanes, MIDI and tools use radians.
  • Limits. The Segments slider goes to 16; keyframes, MIDI and tools may go up to 64. Segments outside 2–64 and a Zoom below 0.01 are clamped, and the card says so below the effect.
  • Transparency. The picture is read premultiplied, so cut-out figures keep clean edges; the preview and the export match.
  • Saved projects keep their look: an effect saved before effects owned a graph loads as its earlier recipe with Stretch to Frame and Clamp.
  • More: Effect system: Lens & Distort · Editable mirror, split and pixel graphs · Mirror Repeat in the Node Catalog · Styles and presets.