Traditionally, the conceptual design of mechanisms was an art, based primarily on the experience of the designer. Today, despite the great advances in the science of machine systems, mechanism design is still a mixture of art and science. The basic premise behind this research was that experienced designers create complex mechanisms, in part, by concocting abstract representations of simpler building blocks. We made attempts to identify a finite set of design building blocks and to represent them in a manner that enables a rational, and therefore a computable, scheme for creation of mechanisms. Based on a systematic investigation of hundreds of existing mechanisms and machines, we first identified a finite set of kinematic building blocks. We then devised a matrix representation scheme that not only captures the essential nature of the building blocks, but also enables automatic decomposition of a given task into simpler sub-tasks. The matrix representation scheme served as a formal means to: (a) represent and reason with the building blocks at different levels of abstraction, (b) generate alternate conceptual designs, and (c) facilitate rapid simulation of design concepts by readily connecting a series of building blocks. The synthesis methodology based on the matrix representation was successfully implemented in a computer program for design of function generating mechanisms. The program takes as input the user supplied specification of input/output motion requirements and constraints, and automatically generates alternate conceptual designs. The matrix representation method and the automated design procedure are described in this paper, along with a design example.