A method for performing graphics processing, the method comprising: accessing a dependency graph, the dependency graph comprising a plurality of interconnected nodes, each node having one or more output attributes, wherein the dependency graph receives one or more input attributes; accessing a first list, wherein the first list includes a dirty status for each output attribute of the dependency graph that is invalid due to a change of a value of an input attribute that affect the value of the output attribute; accessing a input change list, wherein the input change list associates at least one of the one or more input attributes with output attributes that are affected by the at least one of the one or more input attributes; accessing an output dependency list, wherein: the output dependency list identifies at least one output attribute of a first node of the output attributes and identifies output attributes that affect the at least one output attribute of the first node of the output attributes, the output attributes that affect the at least one output attribute including an output attribute of a second node that is different from the first node; and the output dependency list associates the at least one output attribute of the first node of the output attributes with output attributes that affect the at least one output attribute of the first node of the output attributes; receiving an evaluation request for a requested output attribute; and evaluating, using a processor, a set of output attributes, the set of output attributes selected for evaluation based on the set of output attributes being specified in the first list as dirty and the set of output attributes being specified in the output dependency list as associated with the requested output attribute; rendering a frame of an animation using the evaluated set of output attributes of the dependency graph accessing a dependency graph, the dependency graph comprising a plurality of interconnected nodes, each node having one or more output attributes, wherein the dependency graph receives one or more input attributes; accessing a first list, wherein the first list includes a dirty status for each output attribute of the dependency graph that is invalid due to a change of a value of an input attribute that affect the value of the output attribute; accessing a input change list, wherein the input change list associates at least one of the one or more input attributes with output attributes that are affected by the at least one of the one or more input attributes; accessing an output dependency list, wherein: the output dependency list identifies at least one output attribute of a first node of the output attributes and identifies output attributes that affect the at least one output attribute of the first node of the output attributes, the output attributes that affect the at least one output attribute including an output attribute of a second node that is different from the first node; and the output dependency list associates the at least one output attribute of the first node of the output attributes with output attributes that affect the at least one output attribute of the first node of the output attributes; receiving an evaluation request for a requested output attribute; and evaluating, using a processor, a set of output attributes, the set of output attributes selected for evaluation based on the set of output attributes being specified in the first list as dirty and the set of output attributes being specified in the output dependency list as associated with the requested output attribute; rendering a frame of an animation using the evaluated set of output attributes of the dependency graph the output dependency list identifies at least one output attribute of a first node of the output attributes and identifies output attributes that affect the at least one output attribute of the first node of the output attributes, the output attributes that affect the at least one output attribute including an output attribute of a second node that is different from the first node; and the output dependency list associates the at least one output attribute of the first node of the output attributes with output attributes that affect the at least one output attribute of the first node of the output attributes; receiving an evaluation request for a requested output attribute; and evaluating, using a processor, a set of output attributes, the set of output attributes selected for evaluation based on the set of output attributes being specified in the first list as dirty and the set of output attributes being specified in the output dependency list as associated with the requested output attribute; rendering a frame of an animation using the evaluated set of output attributes of the dependency graph