Arvid's Renderer Design

This is a sketch of my understanding of Arvid's renderer design:

I say 'my understanding' with good reason - a diagram can be biased, even a formal(ish) one like this, so I don't claim that this is definitive!

It is interesting, anyway, as it seems to be a combination of a Composite and a Visitor pattern. The RenderingModel implements IRenderingElement (and Iterable of IRenderingElements), which is Composite.

The Modules are Elements in the Visitor pattern, and the Elements are Visitors.

edit: What nonsense I talk! The IRenderingElements are Elements and the  IRenderingModules are Visitors. That's better.