Skip to content

MLR125: Bare Mobject() leaf added to the scene displays nothing

qual reports MLR125 when a bare Mobject() — the base class, which has no drawable points — is added to the scene as a display object while provably having no children and no updaters.

  • Default severity: info
  • Minimum confidence: high
  • Implementation phase: 2
  • Fix: none (container/anchor use is legitimate: suppress with # qual: ignore[MLR125])

The base Mobject carries no geometry the renderers can draw; only subclasses with points (VMobjects, images) produce pixels. The rule stays silent for every legitimate use:

  • the object ever receives children (container.add(...));
  • the object hosts an updater (an invisible per-frame driver);
  • the class is a subclass (Group(), ValueTracker(), project classes);
  • the add is branch-dependent (a Maybe fact);
  • the add happens through a play (a bad animation target is MLR101 territory).

Wrong:

marker = Mobject()
self.add(marker)  # nothing appears

Right:

container = Mobject()
container.add(Dot())
self.add(container)          # container: has drawable children
self.add(spacer)  # qual: ignore[MLR125]  (deliberate anchor)