A method of performing a computer graphic character live, comprising the steps of: creating and storing character representation information in a first computer, the character representation information comprising: information referencing a plurality of control software objects, each control software object being configured to represent a position of a corresponding element of a manual input device, and each control software object being associated with an input channel through which manual input is received; information referencing a plurality of virtual actuator software objects each configured to represent a position of a corresponding moveable element of the computer graphic character, each virtual actuator software object being associated with a communication channel through which one or more physical movements of the computer graphic character may be driven, and a plurality of expression software objects, each expression software object being associated with more than one physical movement of the computer graphic character specified by an associated one of the control software objects and applied to the computer graphic character by more than one corresponding virtual actuator software objects and each expression software object being configured to associate the associated one of the control software objects with the physical movement of the computer graphic character; receiving, at the first computer, performer movement information from the manual input device that received live manual manipulations that are homologous to a puppetry performance and converts the manipulations into the performer movement information; creating and storing character motion information based on combining the performer movement information with the character representation information, the character motion information being created by applying the performer movement information to the plurality of expression software objects, and determining a final actuator value for each of the virtual actuator software objects; receiving the character motion information at a second computer; and displaying the computer graphic character substantially synchronised to the live manual manipulations using the second computer and based on the character motion information. creating and storing character representation information in a first computer, the character representation information comprising: information referencing a plurality of control software objects, each control software object being configured to represent a position of a corresponding element of a manual input device, and each control software object being associated with an input channel through which manual input is received; information referencing a plurality of virtual actuator software objects each configured to represent a position of a corresponding moveable element of the computer graphic character, each virtual actuator software object being associated with a communication channel through which one or more physical movements of the computer graphic character may be driven, and a plurality of expression software objects, each expression software object being associated with more than one physical movement of the computer graphic character specified by an associated one of the control software objects and applied to the computer graphic character by more than one corresponding virtual actuator software objects and each expression software object being configured to associate the associated one of the control software objects with the physical movement of the computer graphic character; information referencing a plurality of control software objects, each control software object being configured to represent a position of a corresponding element of a manual input device, and each control software object being associated with an input channel through which manual input is received; information referencing a plurality of virtual actuator software objects each configured to represent a position of a corresponding moveable element of the computer graphic character, each virtual actuator software object being associated with a communication channel through which one or more physical movements of the computer graphic character may be driven, and a plurality of expression software objects, each expression software object being associated with more than one physical movement of the computer graphic character specified by an associated one of the control software objects and applied to the computer graphic character by more than one corresponding virtual actuator software objects and each expression software object being configured to associate the associated one of the control software objects with the physical movement of the computer graphic character; receiving, at the first computer, performer movement information from the manual input device that received live manual manipulations that are homologous to a puppetry performance and converts the manipulations into the performer movement information; creating and storing character motion information based on combining the performer movement information with the character representation information, the character motion information being created by applying the performer movement information to the plurality of expression software objects, and determining a final actuator value for each of the virtual actuator software objects; receiving the character motion information at a second computer; and displaying the computer graphic character substantially synchronised to the live manual manipulations using the second computer and based on the character motion information.