A visualization framework can be seen as a solution to a specialized data flow problem. Spiegel is a visualization framework which uses the Unix pipeline model to execute programs that visualize scientific data. A visualization program in Spiegel is constructed out of simple components with communication endpoints which can be connected together. Spiegel provides a graphical programming environment, which can be used to write programs using these components. This paper describes the language used to define a Spiegel program, the graphical programming environment, and the Spiegel architecture.