CACANi
About CACANi
Hand-drawn animation divides into two jobs. Somebody draws the key poses that define the movement, and somebody draws every frame between them. The second job is the larger one by far, and it is mechanical rather than creative. CACANi automates it, generating the frames between two drawings you made.
CACANi works in vectors rather than pixels, which is what makes the automation possible. Each stroke is a described curve, so the software can match a stroke in one keyframe to the same stroke in the next and calculate the shapes in between.
That matching is the whole mechanism, and understanding it explains everything about how to draw for this software and where it goes wrong.
Feature points drive the matching
CACANi places markers on the ends of strokes and at sharp corners, and those markers are what get paired between keyframes.
They can be assigned automatically after each stroke is drawn, which improves the result on ordinary drawings. Where the automatic assignment misreads something, they can be corrected directly on the canvas, and the strokes rematched without redrawing anything.
The motion paths those points follow can also be made to overlap rather than travelling in straight lines, which produces motion with more natural arcs than a plain interpolation gives.
That last detail matters more than it sounds. Straight-line interpolation between two poses is exactly what makes machine-generated animation look mechanical, and the ability to curve those paths is what separates a usable result from an obviously computed one.
Gaps in the keyframes break everything downstream
Here is the CACANi failure people report most often, and its cause is in the drawing rather than the software.
The automatic colouring fills enclosed regions, so a region has to be enclosed. A stroke that stops slightly short of meeting another leaves a gap, colour escapes through it, and the fill spreads across the drawing.
On a single frame that is an annoyance you fix in seconds. Across generated in-betweens it multiplies, because the gap exists in every frame the software produced from that keyframe, and the result is dozens of frames that cannot be coloured automatically at all.
The fix is entirely preventative and experienced users state it plainly. Check that keyframes have no open gaps before generating anything, using the mode that displays colour regions so you can see whether the enclosures are actually closed.
That check takes a minute and saves an evening of manual filling, which is exactly the work the software exists to remove.
Regenerating discards your cleanup
The second CACANi workflow trap eats real hours when discovered late.
Cleaning up generated frames means correcting the drawing on them individually. Regenerating the in-betweens replaces those frames entirely, so the cleanup goes with them.
The consequence is an order of operations that has to be respected. Get the keyframes right, get the timing right, generate, and only then clean up. Anybody who cleans up first and then decides to add detail to a keyframe loses the lot.
Planning that order before drawing anything is what storyboarding is for, and Storyboarder settles the shot count and timing before a single keyframe exists.
People discover this by losing work rather than by reading about it, which is why it belongs near the top of anything written about the software.
Timing is drawn, not assumed
The objection raised against CACANi and automated in-betweening generally is that it produces even, lifeless motion, and the answer is in the timing controls rather than the generation.
Animation timing is not uniform. Things accelerate, hold, snap and settle, and a chart of which in-between sits where is how traditional animators express that.
Those charts translate directly here. The timing panel accepts the distribution you want, including holds, and generates frames accordingly rather than spacing them evenly. Practitioners who use it describe drawing a timing chart by hand and matching it in the panel.
That is the honest answer to the robotic-motion criticism. Generated in-betweens are only mechanical if you let the software decide the spacing, and deciding the spacing yourself is what the timing panel is for.
For frame-by-frame animation where every drawing is yours and nothing is generated, OpenToonz is the established option with a full production pipeline behind it.
Occlusion without layer gymnastics
One CACANi feature addresses a tedious problem specific to animated drawings.
When an arm passes in front of a body, the strokes behind it must be hidden, and hiding them changes frame by frame as the arm moves. Doing that manually means either splitting everything across layers or erasing repeatedly.
Strokes can instead be designated as boundaries, and sections behind them hide or reveal automatically across frames. Clipping regions handle the related case of confining strokes inside an area.
That removes a properly tedious category of work, and it is the sort of feature only somebody who has done the job would think to build.
The isolation is real
Being honest about something a practitioner said plainly about CACANi on another forum.
There is very little community around this software. Discussions are rare, the pool of people who use it is small, and somebody stuck on a problem will find far less written about it than for the mainstream animation packages.
That matters because specialist software with a thin community means the manual and your own experimentation are the support, and questions that would be answered in minutes elsewhere may not be answered at all.
For the drawing side rather than the animation side, a painting program with proper brush behaviour and its own frame handling is what many artists use for frames they then bring across.
Conclusion
CACANi targets the part of hand-drawn animation that is labour rather than art, which is the thousands of drawings between the poses somebody actually designed. When the matching works, that is an enormous amount of work removed, and the timing controls answer the usual objection about mechanical motion.
Learn the two workflow rules before starting anything real. Keyframes with open gaps will break the colouring across every generated frame, and cleaning up before you are certain the drawings are final means losing that cleanup when you regenerate. Both are discovered the hard way by most people, and both take a minute to avoid.
Pros & Cons
- Generates in-betweens from your keyframes, removing the largest mechanical task
- Vector strokes matched by feature points, correctable directly on the canvas
- Motion paths can curve rather than interpolating in straight lines
- Timing charts translate into the panel, including holds
- Automatic colouring propagates from one painted frame across a sequence
- Boundary strokes handle occlusion without splitting drawings across layers
- Resolution-independent output, since everything is vectors
- Gaps in keyframes break automatic colouring across every generated frame
- Regenerating in-betweens discards any cleanup already done on them
- Results look mechanical if the timing is left to the software to decide
- Very little community, so problems are yours to solve
- Vector drawing is a different discipline from raster animation
Frequently asked questions
Almost certainly gaps in the keyframes. Automatic colouring fills enclosed regions, and a stroke stopping short of another lets colour escape. That gap exists in every frame generated from that keyframe, so check keyframes are closed before generating.
Yes. Regenerating replaces those frames entirely along with any corrections made on them, so finish the keyframes and the timing first and clean up last.
Only if the software decides the spacing. Timing charts translate into the timing panel including holds, and motion paths can be curved rather than straight, which is what separates a usable result from an obviously computed one.
Boundary strokes, which hide sections behind them automatically across frames rather than requiring layer splitting or repeated erasing.