Programming takes designers away from typical domain- and task-based interfaces such as three-dimensional modellers. It thus imposes additional cognitive load on the already challenging design task. Programming in the model is a system design strategy that embeds the act of programming in a 3D CAD model. This paper presents the argument for programming in the model and two user interface constructs that support such programming.