Skip to content
Alekhya
DocsAnimation

Inbetweening

Generating cels between two or more drawings by transporting the artist's own strokes — the sheet, the correspondence editor, and the limits.

Reference

Panel
Timeline
Section
Generate Inbetween
Menu
Animation ▸ Show Timeline

Inbetweening fills the frames between two drawings you have already made. It runs entirely on the device, and it performs no generative pixel synthesis. There is no model and no image generation anywhere in it. Every stroke it outputs is one of your own strokes, transported — moved, morphed, faded — never invented. The generated frames are ordinary cels; draw over any of them.

Selecting the keys

InbetweenButton

On the Timeline header, between Remove cel and the onion-skin menu. Opens the Generate Inbetween sheet. Disabled until the cel selection is a valid candidate.

Keys are chosen by tapping cel blocks in the dope sheet; tapping a selected cel again deselects it. The Inbetween button enables only when all of the following hold:

  • Between two and eight cels are selected.
  • They are all on the same track.
  • They are on distinct frames.
  • Every one of them holds a real drawing. A single blank cel disqualifies the whole selection — a blank has nothing to interpolate.

Selecting three or more cels means the middle ones are breakdowns, which changes how timing and arc are decided. Selecting exactly two enables hand-anchoring of raster patches.

What the engine does

  1. Weld. Each key's strokes are welded into shapes. Strokes that continue or retrace one another — a head roughed in over three overlapping passes, a lid and an iris — become one logical stroke. Individual passes have no stable identity across two drawings; the shape they compose does.
  2. Match. Shapes are matched between the keys, then the member strokes are matched locally inside each matched shape pair.
  3. Morph. Matched pairs are morphed point by point at a common node count.
  4. Transport. Strokes that matched nothing are carried along the motion field the matched strokes imply, so an appearing stroke slides into place rather than materialising where it will end up. Unmatched strokes fade in or out.

A stroke matched to nothing fades instead, which generally reads better than a wrong match.

Raster content — a lifted selection is pixels, not a polyline — is handled two ways. A raster patch can be hand-anchored to a source shape and travel along that tether, or it can be traced: its alpha is thresholded at a deliberately low floor (the faint tapering tail of a pencil line is still the line), morphologically closed to seal grain gaps, thinned to a one-pixel skeleton, and walked into polylines. Traced raster lines are first-class — selectable, weldable, matchable and morphable.

Timing, arc and regeneration

SelectionTiming comes fromEasingArc comes from
Two keysThe easing curve in the sheetAppliedThe Arc slider
Three or more keysThe frames you put the breakdowns onNot appliedThe breakdown drawings
Loop onWraps back to the first keyNot applied

With breakdowns, neither timing nor arc is guessed and neither is overridden in the sheet: reparametrising time would slide the drawn poses off the frames chosen for them. To retime a breakdown, move its cel.

Generation clears the cels strictly between the selected keys before it runs — a pose worth keeping is, by definition, selected as a key. The whole action is one undo step. If a gap is shorter than the number of frames requested, the gap is opened and later cels shift right to make room; the sheet warns rather than quietly generating fewer. After generating, the keys stay selected and the playhead moves to the frame after the first key.

The Generate Inbetween sheet

The sheet is titled Generate Inbetween, with Cancel and Generate in the toolbar. Generate is disabled whenever the selection stops being a valid candidate.

Preview

A horizontal strip of thumbnails: the first key or keys blue, the inbetweens grey, the last key orange. It samples two frames per gap and is recomputed straight from the engine whenever a control changes, using the same settings the real generation uses — what the strip shows is what Generate bakes.

Frames

Frames to generateStepper1–48

How many cels to make in the gap. When the selection contains breakdowns the stepper reads Minimum frames per gap instead, since each gap has its own length.

Easing presetsButtons

A scrolling row of named curves; the active one is tinted. Hidden entirely when the selection contains breakdowns.

Timing curveCurve editor

Drag the bezier handles directly. The vertical axis is shown from −0.35 to 1.35, giving headroom to reach overshoot handles; the horizontal axis is clamped to 0–1. Hidden when the selection contains breakdowns.

The named easing presets are:

PresetFeel
LinearConstant speed throughout
Ease InStarts slowly, arrives at speed
Ease OutStarts at speed, settles in
Ease In-OutSlow at both ends
SmoothA soft, front-loaded ease
BackOvershoots the destination and returns
AnticipatePulls back before moving off
Antic+OverPulls back, then overshoots

Motion

Loop — wrap back to the first keyToggleOff

Closes the action back onto the first drawing. The closing key is virtual — the first key's own drawing, one wrap-gap past the last — and is never inserted as a cel. Evenly spaced walk keys wrap at their own rhythm.

Scope to selectionButton

Limits the Wave, Stretch and Imperfection modifiers to the bounds of the current lasso region, so a cape can ripple, a fist can smear, or a loose sketch can boil while the rest of the drawing stays rigid. Requires a region of at least three points. While a scope is set the sheet reads Modifiers scoped to selection and the button becomes Whole drawing.

ArcSlider−0.5–0.50

"bows the motion path sideways." Two drawings say nothing about which way a motion bows, so this is not derived — it is the artist's handle. With breakdowns present it is replaced by a read-only row reading From breakdown.

OverlapSlider0–0.80

"strokes far from the centre drag behind."

DragSlider0–10

"stroke tips trail their roots (tails, hair)."

SettleSlider0–10

"overshoot and ring down like jelly."

Feel

A disclosure group titled Feel — stretch, wave, boil, fade. Once any of its controls is off its default the title reports the count, for example "Feel — stretch, wave, boil, fade (2 active)".

StretchSlider0–1.50

"fast strokes elongate and smear."

WaveSlider0–0.30

"flag/cloth/hair ripple from the anchored end." The slider sets the amplitude; the wavelength and cycle count are fixed.

ImperfectionSlider0–0.60

"hand-drawn wobble, so inbetweens don't look too clean."

Fade windowSlider0.1–11

"how fast appearing/vanishing strokes fade (low = snap, e.g. a blink)."

Strokes

Shown once a correspondence has been computed. It reports Matched, Fading out and Fading in counts, and opens the editor.

Edit stroke linksButton

Opens the correspondence editor full-screen.

Match sensitivitySlider0.2–1.20.6

Raise it when strokes that should match are fading instead. Lower it when unrelated strokes are being pulled together.

The correspondence editor

Titled Stroke Links. Geometry cannot always settle a correspondence: when a profile turns to face the viewer, the visible eye migrates inward while the far eye appears at the outer edge, and with nothing else in the drawing to establish the motion both readings are equally consistent. This is where the artist settles it; everything downstream stays automatic.

The editor works at shape level — the same welded logical strokes generation matches at. Taps land on ink, and the tool understands which shape that ink belongs to.

The two keys are shown side by side, divided by a dashed line, at one shared scale so the drawings read at their true relative size, but each centred on its own drawing so that a real move never pushes half the face out of its pane.

SegmentPicker

Shown only with three or more keys: Key 1 → 2, Key 2 → 3, and so on. Changing the segment clears the current selections and raster links and re-derives the automatic matches.

FitButton

Resets zoom and pan. Appears only once zoomed in; the label reports the current zoom.

ResetButton

Discards every hand-made override and clears the selections. Disabled when there are none.

It vanishesButton

With a first-cel shape selected: declares that this ink is not in the second drawing and should fade out.

Newly drawnButton

With a linked second-cel shape selected: declares that this ink is new and should fade in rather than be matched.

UnanchorButton

With a hand-anchored raster patch selected: releases its tether.

Tap a left shape, then a right shape

Links them. Tapping several partners makes a many-to-many link, and tapping an already-pinned partner again unlinks it.

Tap a right shape alone

Inspects its link and reports its cost. A bare tap never rewires anything on its own.

Tap a left shape, then a raster patch

Anchors the patch's motion to that shape. Available only when exactly two keys are selected.

PinchZooms, from 0.35× to 10×.
One-finger drag

Pans. A release under 8 pt of travel still reads as a tap.

The colour language is the whole point of the editor — a wrong pairing, a chin painted the same colour as an ear, is impossible to miss.

ColourMeaning
A shared hue on both panesSame colour = linked pair
BlueUnmatched, first cel
OrangeUnmatched, second cel
GreenPinned by hand, and raster tethers

Hand-made pins are always honoured, whatever they cost the solver. Shapes pinned to a shared partner are merged into one shape per side — that is what a many-to-many link means. Overrides are kept per segment.

With no cels selected the editor reads "No cels selected — Select two drawing cels on one track."

Limits and failure modes

Inbetweening degrades rather than emitting garbage: where it cannot establish a correspondence it fades rather than guessing. The real limits are these.

  • Large rotations read the short way round. Above roughly 100° of turn between two keys the sheet warns and names the segment. The fix is a breakdown between them.
  • Symmetric shapes are ambiguous outright. A wheel has no way to say which spoke went where; it needs a key per spoke interval.
  • Blank cels cannot be inbetweened. One in the selection disqualifies the whole thing.
  • Eight keys maximum. Selecting a ninth drops the oldest.
  • Raster patches can be hand-anchored across one direct key-to-key transition only — the option requires exactly two selected keys, because a breakdown has several active segments while a raster patch has one authored destination.
  • Regenerating destroys unselected cels inside the span. Any drawing between the keys that is worth keeping must be selected as a key.
  • Ambiguous correspondence is unsolvable by geometry. No cost function settles the profile-turn case, which is precisely why the correspondence editor exists.

See also