This thesis is an attempt to analyze the muqarnas phenomenon, establishing it as a distinct field; and to design a computer algorithm for muqarnas generation system. It is divided into two parts as such. The first part starts with a review of the terms used to describe muqarnas along with the etymology of the word. It presents a new comprehensive definition for muqarnas (that is both inclusive and generic), and discusses its origin (formally, geographically, and chronologically). It categorizes the values of the muqarnas criterion either as characteristics (constant values for all muqarnas forms) or attributes (values that vary according to the type). Their different aspects are identified, defined, and extensively analyzed. This concept of characteristics and attributes constitutes the tools for further typological studies, which are suggested as the means to arrive at the final evolution map of muqarnas. The first part ends with a five-step model for the muqarnas design process. The second part recognizes the needs for a muqarnas computer generation system, discusses its module design in relation to the design process, and suggests the data structure for any muqarnas form in correspondence to the issues analyzed in the first part. Sample programs are written as tests for the algorithm. The second part ends by suggesting new contemporary steps in the evolution of muqarnas forms. All issues discussed in this thesis are the result of an original work conducted by the author unless specified otherwise.