Skip to content

MLR101: Create/Write-style animations require a vectorized (VMobject) target

qual reports MLR101 when Create, Uncreate, Write, Unwrite, or DrawBorderThenFill (any animation whose knowledge entry declares accepted_target: VMobject) receives a first argument that is confirmed not to be a VMobject: a value tracked to a plain-Mobject class (such as ImageMobject, Group, or a bare Mobject), or a literal.

  • Default severity: error
  • Minimum confidence: high
  • Implementation phase: 1
  • Fix: none

These animations draw the Bézier outline of a vectorized mobject; a plain Mobject has no such curves, so Manim raises a TypeError when the animation begins. Unknown argument kinds never fire — silence over false positives.

Wrong:

img = ImageMobject(path)
self.play(Create(img))  # TypeError: Create only works on VMobject

Right:

img = ImageMobject(path)
self.play(FadeIn(img))          # FadeIn accepts any Mobject
self.play(Create(Square()))     # Create on a vectorized mobject