Abstract The increasing importance of individual-based modelling (IBM) in population dynamics has led to the greater availability of tools designed to facilitate their creation and use. Yet, these tools are either too general, requiring the extensive knowledge of a computer language, or conversely restricted to very specific applications. Hence, they are of little help to non-computer expert ecologists. In order to build IBM's without hard coding them nor restricting their scope too much, we suggest a component programming, assuming that each elementary task that forms the behaviour of an individual often follows the same path: an individual must locate and select information in order for it to be processed, then he must update his state, the state of other individuals, or the state of the rest of the ‘world’. This sequence is well suited to translation into elementary computerised components, that we call primitives. Conversely, task building will involve stringing out well-chosen primitives and setting their parameter values or mathematical formulae. In order to restrict the number of primitives and to simplify their use, ‘information’ must be carried through well defined structures. We suggest the use of the multi-agents system paradigm (MAS) which originates from the distributed artificial intelligence and defines agents as autonomous objects that perceive and react to their environment. If one assumes that a model can be described entirely with the help of agents, then primitives only handle agents, agent state or history. This greatly simplifies their conception and enhances their flexibility. Indeed, only 25 primitives, split into six groups (locate, select, translate, compute, end, and workflow control) proved to be sufficient to build complex IBM's or cellular automata drawn from literature. Furthermore, such a primitive-based multi-agents architecture is very flexible and facilitates all the steps of the modelling process, in particular the simulation engine (agents call and synchronisation), the results analysis, and the simulation experiments. Component programming may also facilitate the design of a domain specific language in which these models could be written and exported to other simulation platforms.