A computer-implemented method for rendering three-dimensional images using a level graph, the method comprising: accessing the level graph, the level graph comprising a first node, a second node, a third node and a target node, wherein: the second node, the third node and target node are descendants of the first node, the target node or an ancestor of the target node is a direct descendant of both the second node and the third node, and the first node comprises a first scene description data, the second node comprises a first variation data, the third node comprises a second variation data, and the target node comprises a third variation data, the first scene description data describing an asset comprising at least one of a character, a group of characters, an environment and a lighting rig; receiving a selection of the target node for computation; determining ancestors of the target node, wherein the ancestors of the target node comprises the first node, the second node and the third node; determining a linearization of the ancestors of the target node, the linearization comprising an order of the ancestors of the target node; initializing a scene description using the first scene description data of the first node; applying the variation data of the second node and the third node, based on the order determined by the linearization, to the scene description to produce an updated scene description; applying the third variation of the target node to the updated scene description to produce a final scene description; and rendering an image based on the final scene description. accessing the level graph, the level graph comprising a first node, a second node, a third node and a target node, wherein: the second node, the third node and target node are descendants of the first node, the target node or an ancestor of the target node is a direct descendant of both the second node and the third node, and the first node comprises a first scene description data, the second node comprises a first variation data, the third node comprises a second variation data, and the target node comprises a third variation data, the first scene description data describing an asset comprising at least one of a character, a group of characters, an environment and a lighting rig; the second node, the third node and target node are descendants of the first node, the target node or an ancestor of the target node is a direct descendant of both the second node and the third node, and the first node comprises a first scene description data, the second node comprises a first variation data, the third node comprises a second variation data, and the target node comprises a third variation data, the first scene description data describing an asset comprising at least one of a character, a group of characters, an environment and a lighting rig; receiving a selection of the target node for computation; determining ancestors of the target node, wherein the ancestors of the target node comprises the first node, the second node and the third node; determining a linearization of the ancestors of the target node, the linearization comprising an order of the ancestors of the target node; initializing a scene description using the first scene description data of the first node; applying the variation data of the second node and the third node, based on the order determined by the linearization, to the scene description to produce an updated scene description; applying the third variation of the target node to the updated scene description to produce a final scene description; and rendering an image based on the final scene description.