PainterlyVisualization: Using Abstract Painting Techniques to Visualize Social Data

Dana Spiegel

MIT Media Laboratory
20 Ames Street
Cambridge, MA 02142 USA
+1 617 225 6407


In this paper we describe a program that uses Abstract painting techniques to paint a picture with data. This painting allows the many dimensions of social data to be represented in a compact form by mapping particular data onto the variable dimensions of a brush stroke. By using the concept of a brush stroke, many more dimensions are available for representing data than are available using traditional visualization techniques. This type of representation is well suited to data about people and social interaction. Such data is often inexact, and PainterlyVisualization can portray such data in a user discernable way.


Social visualization, data painting, abstract images, strokes, image generation, portraits


Traditional visualizations utilize basic dimensions of graphical representation to portray multi-modal data: color, shape, size, and location. Such representations also portray each data point in isolation: a graphed data point looks the same regardless of the data surrounding it. This type of representation limits the dimensionality and expressiveness of the visualization as a whole and prevents any analysis based on the context of data. These visualizations are also usually unaesthetic and do not to the user feel like the data that they are presenting. All of these qualities are important for understanding of social information, such as data about the existence and interaction of people in a virtual community.

PainterlyVisualization is a project that attempts to address these issues of Social Visualization. Using techniques of abstract art, it paints a picture in a particular abstract style based on a set of data objects, a technique we call data painting. These abstract painting styles allow for more dimensions with which to portray the data Such visualization allows unique data to be recognized easily in a sea of homogenous data [1].

By painting a picture of the data in an abstract art style, the visualization can be made aesthetically pleasing, drawing the viewer in. This technique also allows each brush stroke to resemble the data it is portraying. For example, a visualization depicting data about people's interaction within a group should portray that data in such a way that it evokes a feeling in the viewer that they are looking at people interacting. Such a display casts the data into a form that is more natural than a plain graph.

Due to the many visual dimensions of representation afforded by PainterlyVisualization, each representation can be unique. This allows each set of data to have an individual portrait that represents qualitatively the character of its content. Multiple portraits can be compared, and their differences can be easily seen. Furthermore, if the dimensions of the data and the dimensions of the visualization are properly matched, the portrait painted can be evocative of the underlying data, and not merely arbitrary, as many digital portraits are. [4]

While this type of representation does not portray the data in a scientifically exact manner, often such an exact portrayal is unnecessary or even undesirable. PainterlyVisualization portrays data in a "fuzzy" way, which though inexact, facilitates a reading of the overall content of the set of data. This allows a qualitative understanding of what the data show in many dimensions more quickly and easily than traditional representations. This qualitative understanding is especially helpful when dealing with social data (data about social interaction) which is often inexact in of itself, since such qualitative data is recorded quantitatively.


Each abstract painting style has number of dimensions that can be changed to affect the look of a data point painted in that style. Haeberli [2] suggests five such dimensions: location, color, size, direction, and shape. By varying each of these dimensions, he was able to create images that, though contained many various brush strokes, were on the whole cohesive and expressive.

PainterlyVisualization builds on these dimensions, and adds others as well. To allow more control over the representation of each data element as a brush stroke, each dimension discussed by Haeberli is separated into its distinctive parts: Location is specified as x and y coordinates, color as hue, saturation, and brightness, and size as height and width. Direction remains an angle of rotation for the stroke, and shape is dropped altogether since it specifies the type of stroke that will be used, and is implicitly assumed as a particular shape by each different painting style. Added to these dimensions are curvature, which bends each stroke into an arc, and coherency, which specifies how spatially constrained a stroke is if it is made of a collection of lines or points.

In PainterlyVisualization, once a painting style is chosen, each of the dimensions of that style is mapped over a particular measurement of the underlying data object. For example, if each stroke represents a person and data about them, than the color of a stroke may dependant upon the particular group of which that person is a member. Each painting style affords a particular subset of dimensions in which its strokes can be affected. A pointillist type style may take advantage of color, location, and size and coherency (if each stroke paints a number of colored dots), but has no use for rotation, whereas another painting style may use rotation, but disregard coherency since it paints only a single object per stroke.

Mapping data dimensions onto painting dimensions

Each of the above stroke dimensions best represents a particular type or set of types of data. The underlying data that can be portrayed by PainterlyVisualization can be classified into four groups: Data that relates to the environment, data that relates to others, categorization data, and data describing the intensity of a particular quality. By determining the types of data within each object, the data can be linked to the dimension of the painting style that best represents that type of data.

Relation to the environment

Data of this type often measure distance from more than one base. The most obvious type of data that fit this description are data the object’s location in an environment, such as to the right point A and north of point B. Such data can be linked to the coordinates of the brush stroke representing that object. The data need not be absolute; relative locations in the environment can also be linked to the location of the stroke, so long as they are quantified, such as north than another object. However, other stroke dimensions may best represent this data. Hue, which is an easily discriminated visual characteristic, can be used to represent relative relations to the environment: Objects that are on different floors can be given different colors. Saturation can be used to portray closeness to a physical landmark. However, it is important to portray information in as natural a dimension as possible, to facilitate understanding on the part of the viewer. Therefore, location information is best mapped to the x- and y-axes.

Relation to others

This type of data is most likely to be generated by comparing objects to one another after their location is determined. Objects that are close to one another can be made to have an affect on each other’s representation. For example, if a data object differs in a particular quality when compared to all of the data objects around it, stroke dimension that portrays that quality can be made more distinct by increasing or decreasing the intensity of that dimension for that object. A group of people of similar height can be represented by strokes that are of similar height. If a taller person is placed within that group, then the height of the stroke that represents them can be magnified compared to the stroke’s height when the person is within a group of people of differing heights. This magnification effect aids in the discrimination of data that differentiates objects within a group.


Categorization refers to any data that can be separated into groups that signify some type of commonality between the object of that group. A broad categorization grouping objects by their sex. This is the type of data that the user must be able to use to group the objects visually. Hue works well in this case, so long as there are few enough distinct groups such that each group’s color is easily discriminated. Direction can also be used, since people can easily discriminate similar objects of different orientation [1].

Intensity of a quality

This type of data measures variation from a baseline on an individual basis. A person’s height or weight are good examples of this type of data. Such measurements are best tied to stroke dimensions that vary continuously, such as the height or width of the stroke. This is a natural form for the example data, however age or amount of interaction within a group, which are data that have no natural form, can also be represented by these stroke dimensions. Others mappable dimensions include the saturation, brightness or curvature of a stroke, which can also show a visually continuous range of values. More obscure data, such as the number of countries to which a person has traveled, can be mapped onto the coherency of the stroke. This representation is particularly well suited for this data, since it portrays spatially data that has some relation to a spatial environment.


PainterlyVisualization is implemented as a set of Java classes that perform the creation of a painting from data and its display onscreen. A user inputs each object to be painted into a DataObject, which specifies each of the stroke dimensions. At this time, the user must handle the mapping of data dimensions to stroke dimensions based on the categorizations discussed above. The frame that will contain the painting can contain multiple The user then creates one or more PaintRenderers which can paint in a particular style the data that falls within its boundaries, specifying their location and size. The PaintRenderers then paint the data into the frame. Some of the PaintRenderers depend upon stochastic processes–such as the pointillist type, which paints a set of random dots for each object–so each painting is unique, even with the same underlying data. It is possible to use this technique to build unique portraits from data about different groups, as in Loom [3], which attempts to give newsgroups unique portraits based the interaction of people that participate in them.

Future work

Thus far, only two abstract painting styles have been implemented. Further styles which afford different stroke dimensions should be investigated. A style based on Dirichlet domains as described by Haeberli [2] would allow the shape of the stroke to be modified.

Also, constraints on stroke dimensions should also be imposed to insure a visually pleasing painting is generated. Impressionists often used palettes containing less than 12 colors, which were mixed to create intermediate colors. Restricting the colors available for painting allows a more unified image [2]. Constraining other dimensions as well may help create a more aesthetically pleasing image and may aid in discrimination of objects within the image.



  1. Haeberli, Paul. Paint By Numbers: Abstract Image Representations. SIGGRAPH 24, 4 (August 1990), 207-214.