About this file
Printed dots that move. A slow, swirling field flows under a fixed halftone screen, and every dot swells and shrinks with it. With three inks (cyan, magenta and yellow by default) each ink prints on its own screen angle, and where dots overlap their colours multiply into blues, reds and greens, the way ink does on paper. Switch to two inks for a two-colour print, or one for newsprint.
Every dot is drawn exactly, so the screen stays crisp at any size, and no picture is needed: the flowing image is part of the shader. The paper and ink colours, number of inks, dot spacing, screen angle, shape size, swirl, contrast and ink amount are all settings. The demo has presets for three inks, two inks, newsprint, teal on cream and big dots, plus a Behind text preset.
Made for print shops and studios, zines, editorial and music sites, posters in motion, stream backgrounds and video. Its reduced-motion setting holds it still on its poster frame for visitors who ask for less motion, and a veil setting shrinks the dots and pales the inks so text reads on top. At the Behind text preset, dark text keeps a contrast ratio of at least 8.3:1 against 98 % of the background under it.
What you get: a GLSL ES 3.00 fragment shader for plain WebGL2, an ES module that returns a three.js ShaderMaterial, a Shadertoy version, an offline demo page with a settings panel, a 10-second 1920 x 1080 H.264 loop that plays end to start without a seam, the same loop upright at 1080 x 1920 for vertical video, and the poster frame as a PNG (and a WebP for the web). One pass with no textures, about 2.1 ms of GPU time per 1920 x 1080 frame on a recent laptop, measured in headless Chromium. The README covers set-up, reduced motion, every uniform and performance notes.
What you download
9 files · 55.7 MB · MD, HTML, MP4, PNG, WEBP, FRAG, GLSL, JS
- README.md14 KB MD
- halftone-flow-shader-demo.html29 KB HTML
- halftone-flow-shader-loop-1080p.mp426.3 MB MP4
- halftone-flow-shader-loop-1080x1920.mp426.2 MB MP4
- halftone-flow-shader-poster.png2.2 MB PNG
- halftone-flow-shader-poster.webp1013 KB WEBP
- halftone-flow-shader.frag10 KB FRAG
- halftone-flow-shader.shadertoy.glsl8 KB GLSL
- halftone-flow-shader.three.js11 KB JS
Details
- Shelf
- Shaders
- Type
- Single file
- Topics
- animated backgroundcmykcoded motionglslhalftonehalftone dotshero sectionnewsprintpop artposter frameprint lookreduced motionrisographshadershadertoythree jsvertical videovideo loopwebgl
- Licence
- Personal or commercial
What the licence allows
Personal licence
- Use it in projects for yourself, for learning, and in your portfolio.
- Change it and combine it with other work.
- Keep using it forever. The licence does not expire.
- Use it in anything that earns money, including client work and monetised video.
- Use it in a product, a game or an app that is sold or carries ads.
- Resell, redistribute or share the file.
- Put it into a dataset used to train a model.
Commercial licence
- Use it in unlimited commercial projects, including client work.
- Ship it inside products you sell: games, apps, films, print runs, print-on-demand.
- Use it in monetised and sponsored content, and in broadcast.
- Change it, and keep the result. No credit required, though it is always welcome.
- Keep using it forever. The licence does not expire.
- Resell or redistribute the asset as an asset, on its own or in a pack.
- Register it, or anything substantially it, as a logo or trademark.
- Put it into a dataset used to train a model.
Better together
Also in this pack
Shaders