Functional Programming in Graphics and Visualization
Functional programming offers new ways of thinking about visualization and
graphics. Recent work has for example shown how a non-strict
language such as Haskell can be used to reconstruct algorithms for scientific
visualization, structuring programs as a fine-grained pipeline operating
on a stream of data.
This creates new opportunities for tuning performance, and we have already
shown that the resulting programs can match, and sometimes outperform,
imperative implementations.
I am beginning to explore the paradigm of domain-specific languages (DSLs),
how these can be used to express visualization tasks,
how they support program transformation and compilation,
and through this how functional language can provide a powerful
vocabulary for visual computing, from application problems down
to the stream model of general purpose GPUs.
Minimal Graphics
Research on graphical rendering originally aimed at
increasing the 'photo-realism' of images or the speed of rendering.
However for many applications of graphics, "non-photorealistic"
images are routinely used, because they have
qualities that make them appropriate for their intended task.
Artists, for example painters and illustrators, have developed a
wealth of representation styles,
some of which have been influenced by the traditions of other cultures.
Ivan Herman
and I have set out a rationale for a new approach to depiction,
called
Minimal Graphics, inspired by Chinese and Japanese painting.
A prerequisite is a richer 'semantic' model of the data to be
visualized, and to this end I am exploring how concepts from the
semantic web can be used to drive the synthesis of representations.
Schematic Knowledge
Using mathematical tools originally developed for program specification
Phil Barnard
Jon May and
David Duce and I
developed
syndetic modelling, a form of usability modelling where
the conjoint behaviour of human user and device could formalised and explored
using proof.
Key to syndetics was
ICS, a
model of human information processing developed by Phil over many years.
A feature of ICS is the integration of affect into cognition, and
some progress has been made in using ICS to understand how different styles
of representation affect judgement.
Large-scale Graphs
With the support of an EPSRC Advanced Research Fellowship, I investigated
techniques for large-scale data visualization.
Part of this work involved node-link graphs, which arise in diverse
applications including molecular models, organisational management
and social structures, telecom networks, and biochemical pathways.
VTK Graph library page/download
Visualization Services
Developing meta-data for visualization is important for three reasons:
- we are increasingly concerned with distributed,
heterogeneous data (think of applications in bioinformatics,
or the idea of "visual analytics")
and require tools that can locate and/or combine data;
- in order to visualize that data we may want to use
services that someone else (e.g. an HPC center) provides,
and need to locate and/or compose multiple services to make
applications; and
- to record, compare, share or collaborate with visualization
results, we need a way of stating precisely how those results were
obtained.
Although meta-data can be provided through low-level ad-hoc annotations,
expressed in RDF, a more systematic and maintainable approach is to
develop
ontologies for visualization; other work on the
Semantic Web has lead to promising approaches and tools for building
and using ontologies.
NeSC Workshop on Visualization Ontologies
Article in IEEE Computer Graphics and Applications