As it stands, no, this could be removed.

I went back and forth for a while with the design, trying to decide where the scenegraph should come from (should there be only one? a singleton class? arbitrary number?). Ultimately I gave it to the renderer to hold, but I'm not entirely convinced that's the best approach. It's a bit clunky to grab the graph from the renderer, operate on it, let it go, then have the renderer draw the scene. But I wanted an implementation-independent graph, so that they can all share the culling/rearranging functionality.

I think it may take some experimentation to get that part just right.