The Generator-Modifier concept pushes procedural scene generation all the way to object creation. Channels that use generators for objects and modifiers guide the Ana interpreter through a tree structure where generator nodes are at the edges, like leaves, and the links, like branches, connect the graph back to a scene creation node. For all Ana Channels, when the interpreter is run on the graph, each node is executed (the .exec() method of the node is called). For object and modifier nodes based on generators, the objects are instantiated based the connected modifiers at runtime.

Generator based object and modifier nodes output generators that are expected in nodes that produce scenes. When the Ana interpreter executes a node that places objects in an AnaScene, the generators are ultimately executed at the end of the logical chain set up by the graph.

For example in the Rendered.ai SatRGB channel, a SatRGBScene(AnaScene) is built in a placement node. A SatRGB graph must have a PlaceObjectsRandom node or a PlaceClusters node. In either case, when the placement node is executed, the object generators are called in accordance to the various modifiers along the graph branches. In the following image, green nodes are object generators, while the brown nodes are modifiers.

Example graph: The Tank Node returns an ObjectGenerator(Generator), the DentModifier Node, which requires an ObjectGenerator linked to the input, returns an ObjectModifier(Generator). PlaceClusters instantiates the scene and contains any logic regarding placing the grid of tanks on the background.

For another example see Graph Best Practices.

When object generators are executed, they create objects either from a blender file, a native blender object, or programatically e.g. via 3D mathematical functions. For details on how to implement object generators see Adding Content to a Channel.