Abstract: A method for interacting with a user comprising: receiving an input on a device, determining a text-based response based on the input using a logic engine, generating an audio stream of a voice-synthesized response based on the text-based response, rendering a video stream using a morphing of predetermined shapes based on phonemes in the voice-synthesized response, the video stream comprising an animated head speaking the voice-synthesized response, synchronizing the video stream and the audio stream, transmitting the video stream and the audio stream over the network; and presenting the video stream and the audio stream on the device.