FX engine guide
Every control
Every control, top to bottom. The effect section shows only the controls of the effect picked in the list. Here all 15 are listed, and each line starts with its effect.
Load and save
They stay at the top while the panel scrolls. Your pictures stay on this device for every lab tool until you press × on a tile; Reset puts the controls back and leaves them.
- Image AButton
- Your picture. Press it to open one from your device, or drop one on the frame; two at once fill A and B. It is kept on this device, never uploaded, and every lab tool that takes a picture opens with it until you press × on its corner. Flips and turns are cleared.
- SwapButton
- Changes which tile FX engine uses, so a picture you added as B in another tool can be used here. When the other tile is empty, the picture the page opens with comes back.
- Image BButton
- A second kept picture. FX engine uses one picture at a time: the tile it is not using is dimmed and says Not used here, and pressing it only says so.
- Save PNGButton
- Saves the picture as fx-engine- and the effect's name, such as fx-engine-halftone.png. See PNG.
- Record videoButton
- Records one sweep, frame by frame, and saves it as fx-engine.mp4 (H.264, so it plays anywhere); a browser that cannot write MP4 gets a WebM. Sweep starts by itself if it was not running, and stops after. See MP4 and WebM.
- Save JPEGButton
- Saves it as a JPEG, such as fx-engine-halftone.jpg, at the quality above. See JPEG.
Effects
The 15 effects. Tap one to switch; the picture redraws at once.
- HalftoneButton
- A grid of dots, sized by how dark each spot is. Where the page opens. See halftone.
- ASCIIButton
- Rebuilds the picture from text characters. See ASCII art.
- ContourButton
- Cuts brightness into bands and draws lines where they meet. See contour line.
- VoronoiButton
- Breaks the picture into irregular cells. See Voronoi.
- DitheringButton
- Shades with a fixed pattern of few colours. See ordered dithering.
- CrosshatchButton
- Draws the dark parts with crossed pen lines. See crosshatch.
- DotsButton
- One dot per grid cell, in the picture's colour. See dot grid.
- Edge detectButton
- Keeps only the outlines. See edge detection.
- Wave linesButton
- Draws the picture as rows of wavy lines. See wave lines.
- Matrix rainButton
- Falling columns of characters. See matrix rain.
- Pixel sortButton
- Sorts runs of pixels by brightness into streaks. See pixel sorting.
- BlockifyButton
- Big flat blocks of colour. See blockify.
- ThresholdButton
- Two colours only, split at one brightness. See threshold.
- Noise fieldButton
- Pushes the picture around with drifting noise. See noise.
- VHSButton
- The faults of worn video tape. See VHS look.
Image
The line under the button shows the picture's size in pixels.
- Try with sampleButton
- Brings back the 800 × 600 picture the page opens with, unflipped and unrotated. Your settings stay.
Halftone
This section takes the name of the effect you picked. It opens as Halftone. Its controls are listed here in the page's own order, not the list's.
- ScaleSlider · 4 to 20 · starts at 6
- ASCII: how wide each character cell is, in pixels. Cells are 1.4 times as tall as wide. See character cell.
- SpacingSlider · 0 to 4 · starts at 0
- ASCII: adds 0 to 4 pixels to each cell, so the characters get bigger and fewer.
- Standard · Detailed · BlocksPick one
- ASCII: the characters used, dark to light. Standard has 10, from a space to @; the brightest spots get @. Detailed has 68. Blocks uses shade and half-block characters. See character set and block characters.
- Original · Green · WhitePick one
- ASCII: Original paints each character in the picture's colour there. Green draws green characters and White white ones, on black.
- ScaleSlider · 1 to 8 · starts at 4
- Dithering: how many screen pixels wide each pattern dot is.
- LevelsSlider · 2 to 8 · starts at 2
- Dithering: how many steps each colour is rounded to. At 2 each is fully on or off. See posterize.
- 2×2 · 4×4 · 8×8Pick one
- Dithering: the size of the Bayer matrix: 2×2, 4×4 (where it opens) or 8×8. Bigger shades more smoothly.
- Color · MonoPick one
- Dithering: Color dithers red, green and blue apart. Mono dithers brightness only, in greys.
- Dot sizeSlider · 2 to 20 · starts at 8
- Halftone: how wide each dot's cell is, in pixels. See dot size.
- AngleSlider · 0 to 90 · starts at 45
- Halftone: turns the dot grid, from 0 to 90 degrees. See screen angle.
- SoftnessSlider · 0 to 100 · starts at 20
- Halftone: blurs the edge of each dot.
- Circle · Diamond · LinePick one
- Halftone: Circle dots, Diamond dots, or Line, which draws stripes along the grid. See dot shape.
- Grayscale · CMYKPick one
- Halftone: Grayscale draws light dots on black, bigger where the picture is darker. CMYK lays cyan, magenta and yellow dot grids at three angles over white; there is no black layer. See CMYK.
- SpeedSlider · 5 to 100 · starts at 60
- Matrix rain: how fast the columns fall. Each column has its own speed as well.
- DensitySlider · 10 to 80 · starts at 24
- Matrix rain: how wide each column is, in pixels. Higher gives wider columns, bigger characters and fewer of them.
- TrailSlider · 2 to 30 · starts at 18
- Matrix rain: how long the fading tail behind each falling head is. See trail.
- Image mixSlider · 0 to 100 · starts at 20
- Matrix rain: blends your picture in. At 0 only the rain shows; at 1 only the picture.
- Green · Cyan · WhitePick one
- Matrix rain: Green, Cyan or White rain. The head of each column is always close to white.
- ScaleSlider · 4 to 30 · starts at 10
- Dots: the size of each grid cell, in pixels. Each cell holds one dot.
- Min radiusSlider · 0 to 50 · starts at 5
- Dots: how big the dots are in the darkest cells, as a share of the cell.
- Max radiusSlider · 20 to 100 · starts at 90
- Dots: how big the dots are in the brightest cells.
- Circle · SquarePick one
- Dots: Circle or Square dots.
- Color · WhitePick one
- Dots: Color paints each dot in the picture's colour there. White makes them all white.
- BackgroundColour · starts #000000
- Dots: the colour between the dots.
- LevelsSlider · 2 to 20 · starts at 10
- Contour: how many brightness bands the picture is cut into. A line runs where two bands meet. See contour interval.
- ThicknessSlider · 5 to 40 · starts at 20
- Contour: how thick the lines are.
- SmoothSlider · 0 to 100 · starts at 30
- Contour: softens the lines. At 0 they are hard-edged; higher lets each line fade out gently on both sides, more so where the picture changes slowly.
- Lines · Filled · BothPick one
- Contour: Lines draws white lines on black. Filled draws flat grey bands with no lines. Both, where it opens, draws both.
- Off · OnPick one
- Contour: On flips light and dark before the bands are cut. See invert.
- Low thresholdSlider · 0 to 100 · starts at 10
- Pixel sort: pixels darker than this are left alone and break a run.
- High thresholdSlider · 0 to 100 · starts at 90
- Pixel sort: pixels brighter than this are left alone and break a run. See sort interval.
- RangeSlider · 1 to 250 · starts at 150
- Pixel sort: how far, in pixels, each pixel looks along its run. Higher makes longer streaks and more work for the GPU.
- Horizontal · VerticalPick one
- Pixel sort: Horizontal sorts along rows; Vertical down columns. See sort direction.
- Off · OnPick one
- Pixel sort: On sorts the other way, so the dark end of each streak swaps sides.
- Block sizeSlider · 2 to 50 · starts at 10
- Blockify: how wide each block is, in pixels. Each block takes the colour at its centre.
- GapSlider · 0 to 30 · starts at 5
- Blockify: a dark gap around each block. It is thin, and shows most with small blocks.
- Off · 4 · 8 · 16Pick one
- Blockify: Off keeps each block's colour. 4, 8 and 16 round each colour channel to steps of a quarter, an eighth or a sixteenth. See colour quantization.
- Square · Circle · DiamondPick one
- Blockify: Square, Circle or Diamond blocks, on black.
- LevelSlider · 0 to 100 · starts at 50
- Threshold: the brightness where Low color turns into High color.
- SoftnessSlider · 0 to 100 · starts at 8
- Threshold: widens that change into a soft ramp between the two colours.
- Off · OnPick one
- Threshold: On swaps which parts get which colour.
- Low colorColour · starts #000000
- Threshold: the colour of the parts darker than Level.
- High colorColour · starts #ffffff
- Threshold: the colour of the parts lighter than Level.
- StrengthSlider · 10 to 100 · starts at 40
- Edge detect: makes every edge stronger, so faint ones show.
- ThresholdSlider · 0 to 100 · starts at 5
- Edge detect: edges weaker than this are dropped.
- Luminance · Per channelPick one
- Edge detect: Luminance finds edges in brightness, in grey. Per channel finds them in red, green and blue apart, so the edges come out coloured. See Sobel operator.
- Dark · LightPick one
- Edge detect: Dark draws light edges on black. Light draws dark edges on white.
- Off · OnPick one
- Edge detect: On adds the edges on top of your picture. Background then does nothing.
- FrequencySlider · 5 to 80 · starts at 20
- Crosshatch: how far apart the lines are, in pixels. Higher spaces them wider.
- ThicknessSlider · 5 to 40 · starts at 18
- Crosshatch: how thick the lines are. Darker places draw them a little thicker.
- LayersSlider · 1 to 4 · starts at 4
- Crosshatch: how many line directions: two diagonals, then upright lines, then level lines. Each layer reaches only darker places; the fourth shows only in the darkest parts, and only with Threshold above about 0.5.
- ThresholdSlider · 0 to 100 · starts at 70
- Crosshatch: shifts where the layers start. Higher lets every layer reach lighter places, so more of the picture is hatched.
- Black · White · CustomPick one
- Crosshatch: Black draws black lines on white. White draws white lines on black. Custom draws in Line color on white.
- Line colorColour · starts #000000
- Crosshatch: the line colour, used only when Color is Custom.
- Line countSlider · 10 to 200 · starts at 50
- Wave lines: how many lines run across the picture.
- ThicknessSlider · 10 to 50 · starts at 30
- Wave lines: how thick the lines are. Brighter parts draw them thicker.
- AmplitudeSlider · 0 to 100 · starts at 80
- Wave lines: how far the lines bend. Brighter parts bend more; black stays flat. See amplitude.
- WiggleSlider · 0 to 100 · starts at 50
- Wave lines: how many waves run along each line. See frequency.
- Off · OnPick one
- Wave lines: On, where it opens, keeps the waves moving. Off holds them still.
- SpeedSlider · 5 to 100 · starts at 50
- Wave lines: how fast the waves move while Animate is on.
- ScaleSlider · 5 to 80 · starts at 40
- Noise field: how fine the noise is. Higher gives smaller swirls. See noise scale.
- AmplitudeSlider · 0 to 100 · starts at 60
- Noise field: how far the picture is pushed. Overlay does not use it. See displacement map.
- SpeedSlider · 0 to 100 · starts at 35
- Noise field: how fast the noise drifts. At 0 it holds still.
- OctavesSlider · 1 to 4 · starts at 3
- Noise field: how many layers of finer noise are added, from 1 to 4. See octave and fractal Brownian motion.
- Displace · Overlay · BothPick one
- Noise field: Displace pushes the picture around. Overlay leaves it in place and tints it with noise colours. Both does both.
- Cell scaleSlider · 3 to 40 · starts at 18
- Voronoi: how many cells across and down. Higher gives more, smaller cells. See Voronoi cell.
- Edge widthSlider · 0 to 50 · starts at 25
- Voronoi: how thick the lines between cells are. At 0 there are none. See Voronoi edges.
- Edge colorColour · starts #ffffff
- Voronoi: the colour of the lines between cells.
- Image · Cell average · SolidPick one
- Voronoi: Image keeps your picture inside the cells. Cell average gives each cell one flat colour from the picture near it. Solid gives each cell a random flat colour, not from your picture.
- Off · OnPick one
- Voronoi: On, where it opens, makes the cells drift slowly. Off holds them still.
- ScanlinesSlider · 0 to 100 · starts at 65
- VHS: how dark the fine horizontal lines are. Also drains a little colour. See scanlines.
- ChromaSlider · 0 to 100 · starts at 55
- VHS: pulls red and blue apart, sideways and a little up and down. See chromatic aberration.
- NoiseSlider · 0 to 100 · starts at 40
- VHS: how much flickering speckle is added. See analog noise.
- JitterSlider · 0 to 100 · starts at 35
- VHS: shakes each row sideways, with a bigger jump now and then. See jitter.
- TrackingSlider · 0 to 100 · starts at 30
- VHS: bands that roll down the picture and bend it sideways. See tracking error.
- Color bleedSlider · 0 to 100 · starts at 40
- VHS: smears red and green in from one side, which warms and brightens the picture. See colour bleed.
Transform
Turns or flips the picture itself, before any effect.
- Horizontal · VerticalPick one
- Horizontal mirrors the picture left to right; Vertical top to bottom. Press again to undo. A lit pill means it is on.
- 90°Button
- Turns the picture a quarter turn clockwise from how it came in. Pressing it again does not turn it further.
- 180°Button
- Turns the picture upside down, from how it came in.
- 270°Button
- Turns the picture a quarter turn anticlockwise, from how it came in.
- Reset transformButton
- Clears the turn and both flips.
Adjustments
Applied to the picture before the effect, for every effect.
- BrightnessSlider · -100 to 100 · starts at 0
- Makes the picture lighter or darker, from -1 to 1.
- ContrastSlider · 0 to 300 · starts at 100
- Pushes lights and darks apart, from 0 (flat grey) to 3. See contrast.
- SaturationSlider · 0 to 300 · starts at 100
- How strong the colours are, from 0 (grey) to 3. See saturation.
- HueSlider · 0 to 360 · starts at 0
- Turns every colour around the colour wheel, in degrees. See hue.
- SharpnessSlider · 0 to 500 · starts at 0
- Sharpens fine detail. See sharpness.
- GammaSlider · 20 to 300 · starts at 100
- Lightens or darkens the middle tones and leaves black and white alone. Above 1 lightens. See gamma.
Color mode
Starts closed; tap its title to open it. Mode is applied before the effect; Intensity after it.
- ModeChoice
- Recolours the picture before the effect: Original, Grayscale, Sepia, Invert, or Duotone (deep purple to warm yellow). See grayscale, sepia and duotone.
- BackgroundColour · starts #000000
- The colour that takes the place of the black an effect leaves, such as the ground behind ASCII, Dots or Edge detect. Black changes nothing.
- IntensitySlider · 0 to 100 · starts at 100
- How much of the effect shows. At 1 you see the effect; lower blends back to your adjusted picture; at 0 the effect is gone.
Post-processing
Starts closed. Applied last, on top of the effect.
- BloomSlider · 0 to 100 · starts at 0
- Makes the bright parts glow brighter. See bloom.
- VignetteSlider · 0 to 100 · starts at 18
- Darkens the edges and corners. It opens at 0.18. See vignette.
- Film grainSlider · 0 to 30 · starts at 2
- Adds fine speckle that changes every frame. It opens at 0.02. See film grain.
Export
- JPEG qualitySlider · 10 to 100 · starts at 92
- How much detail Save JPEG keeps, from 10 to 100. Lower makes a smaller file. See JPEG quality.
- CopyButton
- Copies the picture to the clipboard as a PNG. See clipboard.
Sweep
Shows for every effect. Space presses Sweep, the lab's one keyboard. See loop.
- SweepButton
- Starts and stops the sweep: the picked effect's first slider breathes around the value you set, a smooth wave, and returns to it when you stop. See sine wave and easing.
- Seconds a cycleSlider · 1 to 12 · starts at 4
- How long one breath takes, in seconds. Record video keeps exactly one, so the clip loops. See loop.
- WidthSlider · 10 to 100 · starts at 60
- How far the slider travels from end to end, as a share of its whole range, centred on your value. 100 swings the whole way.
Reset
- ResetButton
- Puts every slider, colour, pill and the colour mode back, clears flips and turns, and returns to Halftone.