WYGWYL · the film in cels · compared

Found film against our footage, and seven ways to make the frames between drawings.

Every number here is measured on the film itself: 165 drawn patches for the first table, 9 patches run every way for the second. How each frame is made · the films.

1 · Found film and our footage, as cels

Found film draws better per keyframe than our own footage (colour error 4.43 against 5.62, value structure 0.907 against 0.884): at 640 px, mostly without colour noise, it simplifies into fewer shapes (45 against 60). It plays a little worse (pops 0.49/s against 0.21/s) and costs more (30.5 s of drawing per second against 25.6): old film cuts and flickers inside a patch, and every cut forces another drawing. Our own film keyframes (family "film", the fastest footage) are the hardest of all.

nsource pxb&wmotionΔE ↓value SSIM ↑edges F ↑shapespops/s ↓ghost (1 = none)track ↑drawing s per film s
found film (archive)9764075.204.430.9070.598450.491.0690.88030.50
our footage, all68128045.835.620.8840.581600.211.0560.83025.60
markov33128005.555.640.8920.581590.231.0550.87428.05
other21193607.985.380.8840.589620.001.0700.82920.00
film101688110.906.050.8740.578651.881.0630.58722.25
halfworld3128033.774.060.8740.602561.250.9940.41927.20

2 · The frames between drawings

The same keyframe drawings, made into in-betweens seven ways. Compute counts the in-betweens and the drawings (about 25 s of the full stack per drawing).

our footage · 4 patches

pops/s ↓ghost (1 = none)track ↑between-frames compute, s per film stotal with drawings, s per film s
A · blend (theirs)0.001.0510.6260.828.4
C · hold1.301.0090.0080.027.5
F · EbSynth0.110.7430.86257.284.7
G · RIFE0.340.9800.1250.928.4
A3 · blend, 1 drawing / 3 s0.401.0110.7000.812.3
F3 · EbSynth, 1 drawing / 3 s0.070.6430.80554.666.1
G3 · RIFE, 1 drawing / 3 s0.580.911-0.1280.412.0

found film · 5 patches

pops/s ↓ghost (1 = none)track ↑between-frames compute, s per film stotal with drawings, s per film s
A · blend (theirs)0.821.0640.8981.128.9
C · hold1.201.0030.1250.027.7
F · EbSynth0.060.7120.94183.8111.5
G · RIFE0.140.9690.2851.128.8
A3 · blend, 1 drawing / 3 s0.831.0490.8981.113.3
F3 · EbSynth, 1 drawing / 3 s0.030.6650.93476.989.2
G3 · RIFE, 1 drawing / 3 s0.540.9310.1720.512.8

Each player: the grid first (footage, then every way, labelled, in sync); the buttons play any one alone at the same moment.

P01-002 · markov · A: track 0.427, pops 0.0/s · C: track -0.125, pops 1.85/s · F: track 0.805, pops 0.0/s · G: track 0.137, pops 0.74/s · A3: track 0.669, pops 0.37/s · F3: track 0.465, pops 0.0/s · G3: track 0.243, pops 1.85/s
P01-009 · archive · A: track 0.931, pops 0.0/s · C: track 0.124, pops 0.99/s · F: track 0.97, pops 0.0/s · G: track 0.024, pops 0.0/s · A3: track 0.94, pops 0.0/s · F3: track 0.965, pops 0.0/s · G3: track 0.135, pops 0.0/s
P02-006 · markov · A: track 0.586, pops 0.0/s · C: track -0.055, pops 1.02/s · F: track 0.957, pops 0.44/s · G: track -0.12, pops 0.0/s · A3: track 0.825, pops 1.02/s · F3: track 0.964, pops 0.29/s · G3: track -0.269, pops 0.0/s
P03-007 · archive · A: track 0.923, pops 1.14/s · C: track 0.149, pops 0.76/s · F: track 0.951, pops 0.0/s · G: track 0.287, pops 0.19/s · A3: track 0.898, pops 0.95/s · F3: track 0.91, pops 0.0/s · G3: track -0.226, pops 0.76/s
P03-009 · archive · A: track 0.827, pops 0.0/s · C: track 0.047, pops 2.0/s · F: track 0.891, pops 0.0/s · G: track 0.538, pops 0.5/s · A3: track 0.897, pops 1.0/s · F3: track 0.914, pops 0.0/s · G3: track 0.71, pops 1.75/s
P04-009 · other · A: track 0.878, pops 0.0/s · C: track 0.193, pops 0.61/s · F: track 0.902, pops 0.0/s · G: track 0.193, pops 0.0/s · A3: track 0.89, pops 0.2/s · F3: track 0.955, pops 0.0/s · G3: track -0.745, pops 0.0/s
P08-006 · markov · A: track 0.615, pops 0.0/s · C: track 0.019, pops 1.71/s · F: track 0.782, pops 0.0/s · G: track 0.291, pops 0.61/s · A3: track 0.415, pops 0.0/s · F3: track 0.837, pops 0.0/s · G3: track 0.26, pops 0.49/s
P09-012 · archive · A: track 0.866, pops 1.14/s · C: track 0.195, pops 1.55/s · F: track 0.931, pops 0.0/s · G: track 0.304, pops 0.0/s · A3: track 0.839, pops 0.41/s · F3: track 0.928, pops 0.0/s · G3: track 0.039, pops 0.21/s
P12-006 · archive · A: track 0.943, pops 1.81/s · C: track 0.108, pops 0.7/s · F: track 0.961, pops 0.28/s · G: track 0.274, pops 0.0/s · A3: track 0.915, pops 1.81/s · F3: track 0.951, pops 0.14/s · G3: track 0.202, pops 0.0/s

3 · What each way allows

waycomputeoutputeditingre-timingquality and failure
A · blend (theirs)29 s of computer per second of film, almost all of it drawing a keyframe every secondraster frameschange a keyframe drawing, re-run the in-betweensneeds the footage’s flowtracks well (track 0.78); boils where neighbouring drawings disagree, ghosts in fast motion
C · hold28 s per film s: no in-between work at alleach frame IS a drawing: the scene program’s vector SVG, editable and re-timableany held drawing can be redrawn by hand or re-run alonefree: holds are the classic way to time a cartoondoes not move between drawings (track 0.07); pops at each new drawing (1.24/s)
F · EbSynth100 s per film s; the synthesis itself (CPU) costs more than the drawingsraster frames that keep the drawing’s own texturechange a keyframe drawing, re-synthesisefollows the footage’s structure frame by frametracks best and ghosts least (track 0.91, ghost 0.73); smears where new content appears
F3 · EbSynth, a drawing every 3 s79 s per film s, a third of the drawingsas Ffewer drawings to fix by handas Fkeeps EbSynth’s quality with a third of the drawings (track 0.88)
G · RIFE29 s per film s; the in-betweens are GPU-fastraster frames: learned morphs between drawingschange a drawing, re-runfree: it never looks at the footagesmooth between drawings but blind to the footage between them (track 0.21); best used to turn 12 drawings a second into 24
B / D / E · carry, planes, morphcheap (flow only) to moderate (vector rendering)E alone gives vectors in every frameE: move vertices by handD and E could re-time freelylost on every patch in the first bench: carry tears figures, planes ghost them, morph mismatches shapes — all three need keyframe drawings that share their shapes first