The optical flow visualization toolkit.
Read any flow format · render publication-quality color maps · compute error maps · compile videos · or just drag-drop into the browser viewer.
🌀 Try the browser viewer — no install, no upload, works offline · 📚 Docs
- Reads every format —
.flo(Middlebury), KITTI 16-bit PNG,.pfm(Sintel),.npy/.npz, Spring.flo5, and PyTorch tensors — all through onefz.read. - Publication-quality color maps — Baker/Middlebury color wheel, bit-compatible (±1 LSB) with
flow_vis; UV, magnitude and angle encodings; embedded color-wheel legend. - Temporally consistent video — sequence-wide normalization for flicker-free MP4/WebM/GIF, no ffmpeg install required.
- Evaluation built in — per-pixel EPE, KITTI Fl-score, error-map heatmaps, and one-call
compare_gridpaper figures. - Vector overlays — quiver arrows on the color map or any background frame.
- Fast & scriptable — vectorized colorization, multiprocess batch conversion, a
flowizCLI, and typed numpy-in/numpy-out APIs. - Browser viewer — drag-drop any flow file (or click a shipped example) at georgegach.github.io/flowiz; everything runs client-side.
pip install flowiz -U # batteries included: video, CLI, plotting
pip install flowiz[torch] # + torch tensor helpers
pip install flowiz[spring] # + Spring .flo5 (HDF5) readingimport flowiz as fz
flow = fz.read("frame_0001.flo") # .flo, KITTI .png, .pfm, .npy, tensors — auto-detected
img = fz.colorize(flow) # (H, W, 3) uint8 RGB, Middlebury color wheel
# straight from a model
pred = fz.from_tensor(model(x)) # torch tensor -> Flow
fz.compare_grid(pred, gt, save="figure.png") # pred | ground truth | EPE — a paper figure in one callflowiz convert 'flows/*.flo' -o out/ --workers 8 # batch -> PNGs
flowiz video 'flows/*.flo' -o flow.mp4 -r 24 # flicker-free video (shared normalizer)
flowiz info frame_0001.flo # header + magnitude stats
flowiz compare pred.flo gt.flo --save grid.png # EPE / Fl-score
flowiz view # open the offline browser viewerDrag flow files onto georgegach.github.io/flowiz — or click a built-in example (a real 5-frame sequence plus synthetic rotation/zoom/wave fields) — and inspect them per-pixel: u, v, magnitude and angle on hover, WebGL2 rendering, adjustable normalization, a color-wheel key in the side panel, PNG export, and movie playback of multi-frame sequences with a play/pause button and fps control. Everything runs client-side; your files never leave the machine.
- Getting started & API reference
- Supported formats
- flowiz for papers
- Examples:
examples/— KITTI ground truth, RAFT output, error maps, videos
If flowiz helped your research or figures, a citation is appreciated (it's requested, not required — the MIT license asks nothing):
@software{gach_flowiz,
author = {Giorgi Gachechiladze},
title = {flowiz: the optical flow visualization toolkit},
url = {https://github.com/georgegach/flowiz},
version = {3.0.0},
year = {2026}
}See CITATION.cff. Upgrading from v2? See MIGRATION.md.
Based on the Middlebury Vision Project color coding — original credits to Daniel Scharstein (C++) and Deqing Sun (MATLAB): http://vision.middlebury.edu/flow/.
MIT © Giorgi Gachechiladze

