Management of the communications among a set of concurrent processes arises in many applications and is a central concern in parallel computing. In this paper we introduce MANIFOLD: a co-ordination language whose sole purpose is to describe and manage complex interconnections among independent, concurrent processes. In the underlying paradigm of this language the primary concern is not with what functionality the Individual processes in a parallel system provide. Instead, the emphasis is on how these processes are interconnected and how their Interaction patterns change during the execution life d the system. This paper also includes an overview of our implementation of MANIFOLD.As an example of the application of MANIFOLD, we present a series of small manifold programs which describe the skeletons of some adaptive recursive algorithms that are of particular interest in computer graphics Our concern in this paper is to show the expressiveness of MANIFOLD, the feasibility of its Implementation and its usefulness in practke.Issues regarding performance and optimization am beyond the scope of thk paper. JJ This is the header (there are no arguments): example0 JJ These an the public declarations: Jf l b o ports arc visible fmm the outsi& &the manifold 'example'; fJ one is an input port and the other is an output one. JJ In fact, these ports am the dcfmclt ones. p o r t i n input. p o r t o u t output. JJ The body of the m o l d beginr here. If fJ private declarations: JJ three process instances are dcjined: p r o c e s s A is A-type. p r o c e s s B i s B-type. p r o c e s s C i s C-type. JJ First block (activated when 'example' becomes active) JJ The processes described above are activated on their turn JJ in a 'group' construct: start ( a c t i v a t e A.activate B , a c t i v a t e C) ; do begin. JJ A direct transfer to this block has been given from 'start'. JJ Three pipelines in a group are set up: begin: (A + B, output + C, input -+ output). JJ Event handler for the event 'el'; several pipelines are JJ set up (see Figure 2): el: (B + input, C -+ A. A + B, output + A, B -, C, input + output). JJ Event handler for the event 'e2'; a single pipeline If is set up (see Figurt 3): e 2 C + B.{