1. An animation system, comprising: a server system connected to a communication network and configured to communicate with a user device that is also connected to the communication network; wherein the server system is configured to generate a user interface that is accessible via the communication network; wherein the server system is configured to receive a high level description of a desired sequence of motion via the user interface; wherein the server system is configured to generate synthetic motion data using at least one motion model resident on the server system that comprises motion data for a number of different motions based on the high level description of the desired sequence of motion received via the user interface by: determining a time base based on the high level description of the desired sequence of motion; normalizing the motion data of said number of different motions that form part of the motion model to the time base; determining weightings for the motion data of each of said number of different motions that form part of the motion model based on the high level description of the desired sequence of motion; and interpolating the normalized motion data of said number of different motions that form part of the motion model using the determined weightings; wherein the server system is configured to stream the synthetic motion data to a rendering engine on the user device; and wherein the user device is configured to render a 3D character animated using the streamed synthetic motion data.