A computer-implemented method for rendering three-dimensional images using a dependency graph, the method comprising: accessing the dependency graph, the dependency graph comprising a plurality of interconnected nodes, the plurality of interconnected nodes comprising a plurality of supplier nodes, a multiplexer node, and a plurality of graphlet nodes; accessing the plurality of supplier nodes, the plurality of supplier nodes each having an output, wherein the output of each supplier node of the plurality of supplier nodes is of a first type, and wherein the output of each supplier node of the plurality of supplier nodes is connected to the multiplexer node; accessing a graphlet (224, 302), the graphlet (224, 302) comprises the plurality of graphlet nodes, wherein the plurality of graphlet nodes are interconnected, wherein an output of the multiplexer node connects to the graphlet (224, 302) by connecting the output of the multiplexer node to an input of one node of the plurality of graphlet nodes, and wherein the input of the one node of the plurality of graphlet nodes is of the first type; wherein the multiplexer node is configured to generate an instance of the graphlet (224, 302) for each supplier node connected to the multiplexer node; and rendering an image utilizing the accessed graphlet (224, 302); wherein rendering comprises: generating an instance of the graphlet (224, 302) for each supplier node connected to the multiplexer node; and evaluating the instanced graphlets for the supplier nodes connected to the multiplexer node to render the image; the method further comprising: accessing a distinction node of the dependency graph, wherein the distinction node provides an input to the graphlet (224, 302); wherein the graphlet (224, 302) does not comprise the distinction node and the distinction node is separate from the multiplexer node; and wherein the distinction node receives inputs from the plurality of supplier nodes. accessing the dependency graph, the dependency graph comprising a plurality of interconnected nodes, the plurality of interconnected nodes comprising a plurality of supplier nodes, a multiplexer node, and a plurality of graphlet nodes; accessing the plurality of supplier nodes, the plurality of supplier nodes each having an output, wherein the output of each supplier node of the plurality of supplier nodes is of a first type, and wherein the output of each supplier node of the plurality of supplier nodes is connected to the multiplexer node; accessing a graphlet (224, 302), the graphlet (224, 302) comprises the plurality of graphlet nodes, wherein the plurality of graphlet nodes are interconnected, wherein an output of the multiplexer node connects to the graphlet (224, 302) by connecting the output of the multiplexer node to an input of one node of the plurality of graphlet nodes, and wherein the input of the one node of the plurality of graphlet nodes is of the first type; wherein the multiplexer node is configured to generate an instance of the graphlet (224, 302) for each supplier node connected to the multiplexer node; and rendering an image utilizing the accessed graphlet (224, 302); wherein rendering comprises: generating an instance of the graphlet (224, 302) for each supplier node connected to the multiplexer node; and evaluating the instanced graphlets for the supplier nodes connected to the multiplexer node to render the image; generating an instance of the graphlet (224, 302) for each supplier node connected to the multiplexer node; and evaluating the instanced graphlets for the supplier nodes connected to the multiplexer node to render the image; the method further comprising: accessing a distinction node of the dependency graph, wherein the distinction node provides an input to the graphlet (224, 302); wherein the graphlet (224, 302) does not comprise the distinction node and the distinction node is separate from the multiplexer node; and wherein the distinction node receives inputs from the plurality of supplier nodes. accessing a distinction node of the dependency graph, wherein the distinction node provides an input to the graphlet (224, 302); wherein the graphlet (224, 302) does not comprise the distinction node and the distinction node is separate from the multiplexer node; and wherein the distinction node receives inputs from the plurality of supplier nodes.