Painterly rendering has recently drawn considerable attention from graphics researchers. However, the state of the art is neither systematic nor evaluative. This work presents a novel painterly rendering framework. The painting process is decomposed into three stages to satisfy the needs of developers and users of painterly rendering algorithms and programs. The framework comprises three systems, namely primitive mapping, rendering and mark systems, and is inspired by John Willats' perceptual decomposition of the painting process presented by [Wil97]. Moreover, the rendering system is further decomposed into four independent modules, namely initial point, path, cross-section and color. The independence of each module makes new styles easy to generate by combining existing styles, or constructing complex styles from simple styles. The proposed framework shows the power of painterly rendering algorithm, which can not only imitate existing styles, but also generate new styles. Furthermore, parameters in rendering systems are specified hierarchically. Users only need to specify the user parameters, which are then automatically converted into system parameters during rendering. This approach is crucial to facilitating the use of the program by end-users.