The InViWo project aims at providing high-level intuitive tools to describe virtual worlds populated with “intelligent” creatures and avatars. For this purpose, we have defined the Marvin language, which enables the high-level description of autonomous agent behaviours. In this paper, we present the underlying model we have designed, especially our agent and avatar architectures. We then present the main features of the Marvin language and we introduce the use of constraints as powerful tools for describing and combining behaviours.