The SCIRun computational steering software system
Modern software tools for scientific computing
The visualization toolkit (2nd ed.): an object-oriented approach to 3D graphics
The visualization toolkit (2nd ed.): an object-oriented approach to 3D graphics
Lava: hardware design in Haskell
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Haskell and XML: generic combinators or type-based translation?
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Large field visualization with demand-driven calculation
VIS '99 Proceedings of the conference on Visualization '99: celebrating ten years
A multi-threaded streaming pipeline architecture for large structured data sets
VIS '99 Proceedings of the conference on Visualization '99: celebrating ten years
AVI '00 Proceedings of the working conference on Advanced visual interfaces
VVS '00 Proceedings of the 2000 IEEE symposium on Volume visualization
Shortcut fusion for accumulating parameters & zip-like functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
The Design of a Pretty-printing Library
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Advanced Functional Programming, Second International School-Tutorial Text
PSoup: a system for streaming queries over streaming data
The VLDB Journal — The International Journal on Very Large Data Bases
Encoding Volumetric Grids For Streaming Isosurface Extraction
3DPVT '04 Proceedings of the 3D Data Processing, Visualization, and Transmission, 2nd International Symposium
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Experience report: visualizing data through functional pipelines
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Partial Parsing: Combining Choice with Commitment
Implementation and Application of Functional Languages
Huge Data But Small Programs: Visualization Design via Multiple Embedded DSLs
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Streaming-enabled parallel dataflow architecture for multicore systems
EuroVis'10 Proceedings of the 12th Eurographics / IEEE - VGTC conference on Visualization
On-demand unstructured mesh translation for reducing memory pressure during in situ analysis
UltraVis '13 Proceedings of the 8th International Workshop on Ultrascale Visualization
Hi-index | 0.00 |
The pipeline model in visualization has evolved from a conceptual model of data processing into a widely used architecture for implementing visualization systems. In the process, a number of capabilities have been introduced, including streaming of data in chunks, distributed pipelines, and demand-driven processing. Visualization systems have invariably built on stateful programming technologies, and these capabilities have had to be implemented explicitly within the lower layers of a complex hierarchy of services. The good news for developers is that applications built on top of this hierarchy can access these capabilities without concern for how they are implemented. The bad news is that by freezing capabilities into low-level services expressive power and flexibility is lost. In this paper we express visualization systems in a programming language that more naturally supports this kind of processing model. Lazy functional languages support fine-grained demand-driven processing, a natural form of streaming, and pipeline-like function composition for assembling applications. The technology thus appears well suited to visualization applications. Using surface extraction algorithms as illustrative examples, and the lazy functional language Haskell, we argue the benefits of clear and concise expression combined with fine-grained, demand-driven computation. Just as visualization provides insight into data, functional abstraction provides new insight into visualization.