Dynamic numerical models are powerful tools for representing and studying environmental processes through time. Usually they are constructed with environmental modelling languages, which are high-level programming languages that operate at the level of thinking of the scientists. In this paper we present PyCatch, a set of components for process-based dynamic hydrological modelling at the catchment scale, built within the PCRaster Python framework. PCRaster Python is a programming tool based on Python, an easy-to-learn programming language, to which components of the PCRaster software have been added. In its current version, PyCatch simulates the processes of interception, evapotranspiration, surface storage, infiltration, subsurface and overland flow. The model represents those hydrological processes as a series of interconnected stores, and it is structured in such a way that the exchange of water fluxes between the stores is easily performed. The modular structure of PyCatch makes it easy to replace or adapt components (such as a snow melt component or a soil erosion and sediment transport component) according to the aim of the study