1. A method of defining an animation of a virtual object within a virtual world, wherein the animation comprises performing, at each of a series of time points, an update that updates values for object attributes of the virtual object, the method comprising: allowing a user to define the update by specifying, on a user interface, a structure representing the update, wherein the structure comprises a plurality of items and one or more connections between respective items, wherein each item represents a respective operation that may be performed when performing the update and wherein a connection between two items represents that data output by the operation represented by one of those two items is input to the operation represented by the other of those two items; allowing the user to specify that the structure comprises one or more items in a predetermined category, the predetermined category being associated with a predetermined process such that an item belongs to the predetermined category if performing the respective operation represented by that item requires execution of the predetermined process, wherein said predetermined process may be executed at most a predetermined number of times at each time point; and applying one or more rules that (a) restrict how the user may specify the structure to ensure that performing the defined update does not require execution of the predetermined process more than the predetermined number of times, (b) do not require the user to specify that an item in the predetermined category is at a particular location within the structure relative to other items and (c) do not require the user to explicitly specify which operations need to be performed before execution of the predetermined process when performing the update nor which operations need to be performed after execution of the predetermined process when performing the update.