Exposing contact patterns

Published: June 13, 2008

SocioPatterns.org aims to shed light on hidden patterns in social dynamics. A case in point is the study of contact patterns, which deals with such patterns in contacts among people. To date, little is known about these patterns. Although models can help in learning more, measuring real-world dynamics is indispensable for obtaining a complete picture. However, doing so manually is both laborious and intrusive, and tends to produce unreliable data – yet until recently it was the sole option we had. Fortunately, emerging technologies such as active RFID devices offer previously unfeasible means for collecting this much needed data. While collecting data is the first step, making sense of the resulting large amounts of data is the next. This is where insightful visualizations come into play, as these can expose otherwise invisible features and regularities.

The following movie gives an impression of a first contact patterns experiment and visualization we have been working on. It is followed by a detailed description.

Experiment set-up

We have been working on an experimental set-up in which we aim to measure the contact patterns of a group of people. To do so we asked volunteers to wear small tags with integrated active RFID technology, henceforth called the beacons. These beacons continuously broadcast small data packets. These packets are received by a number of stations and relayed through a local network to a server for further processing. The stations are installed in fixed locations in the environment. The beacons and stations we used were created by and obtained from OpenBeacon.org.

Schematic overview of the interactions between the beacons, the stations, and the server.

Schematic overview of the interactions between the beacons, the stations, and the server.

A first medium-sized test deployment of this experimental set-up took place recently (26-29 May, 2008) during the workshop “Sociophysics: status and perspectives” in Villa Gualino, in Turin, Italy. The workshop presentations took place in Sala A, while the participants lingered in the Bar during breaks, and had lunch in the Cafeteria. All three areas were covered by at least four stations each, as shown on the map below.

Map of the placement of the stations in Villa Gualino.

Map of the placement of the stations in Villa Gualino.

The packets from up to 50 beacons were collected continuously for about 75 hours at an overall rate of up to 100 distinct packets per second. In total about 25 million packets were collected, corresponding to about 200 Mb of compressed raw data.

On-line data analysis and visualization server

In addition to recording data for further analysis – whose results will be posted here in the future – we also developed a real-time visualization system to display some aspects of the observed dynamics. Our visualization involves a server component and a client component. The server component processes the beacon packets relayed by the stations. These packets are typically received by multiple stations at varying strengths. These reception patterns can be used as a proxy for the physical proximity of two beacons. A related technique is used in the geo-location feature of the Apple iPod Touch and iPhone, or in services like PlaceEngine.

All calculations are performed in real-time over a sliding window of about two minutes. The post-processed data are dispatched to the visualization client at regular intervals, as an XML stream. The on-line data collection and analysis system is entirely coded in Python on top of the Twisted framework and the Numpy library.

Visualization client

The main visualization represents the beacons, the stations, and their relations of proximity as measured by the system. The beacons are shown as simple discs, which are optionally labeled. Two beacons are connected by a link if the system detected that they are close to each other. The length, thickness and transparency of a link are a function of the strength of the link: short, thick and more opaque links represent strong proximity; thin, transparent links indicate weak proximity. The size of the discs representing the beacons depends on the number and proximity of other beacons, and specifically is a function of the sum of link weights to other beacons. The stations are shown as labeled shapes and laid out in a circle that spans the main view. The size of these shapes varies according to the number of beacons that are close to them.

Stations and beacons in the main visualization view.

Stations and beacons in the main visualization view.

While the stations are laid out at fixed positions, the beacons are not. The network of their proximity relations is laid out by using a force-based model. Beacons repel each other, and the link between two beacons acts as a spring pulling them close to each other. The stiffness of the spring increases with the proximity of beacons. Beacons are also pulled towards the stations that see them more often, so that groups of nearby beacons are laid out in the vicinity of the stations that is closest to them.

The result is a first attempt to obtain a rather abstract yet comprehensive visualization of the proximity dynamics. The movie at the top of this post contains a time-lapse playback of the most interesting periods of one day of the workshop.

Visualization client interface

The visualization client is an Adobe Air application developed in Flex. The visualization and physics system use (a mildly modified version of) the flare visualization toolkit.

The application interface involves a visualization window, a control panel and a number of auxiliary windows. The visualization itself can be shown full-screen during presentations. The control panel provides various interfaces to manage the data-sources, the visualization and the physics engine.

The data source is either the server component for real-time visualizations, a simulation for off-line testing, or data files for time-lapse playback. When using a simulation, an additional window is provided in which the simulated stations and beacons are shown. When in time-lapse mode, one can activate the recorder, which saves a bitmap file for each rendered frame. These saved frames were for example used to create the movie at the top of this post.

The complete interface of the visualization client, including the simulation window.

The complete interface of the visualization client, including the simulation window.


visualisation: Wouter Van den Broeck

data analysis: Ciro Cattuto

music: Maps and Diagrams – Siaptik – Recorded by Tim Martin

experiment set-up: Alain Barrat, Ciro Cattuto, Vittoria Colizza, Daniela Paolotti, Jean-François Pinton, Wouter Van den Broeck, and Alessandro Vespignani

thanks to: Santo Fortunato, ISI administration, Ezio Borzani, Milosch Meriac (openbeacon.org), and the workshop participants

sponsoring institutions: Institute For Scientific Interchange Foundation (Torino, Italy), Laboratoire de Physique de l’École Normale Supérieure de Lyon (Lyon, France)


New data sets published: co-presence and face-to-face contacts
SocioPatterns: measuring animal proximity networks
School closures to mitigate influenza spread: two studies based on SocioPatterns data
New paper in Nature Communications
New paper and new data available!
SocioPatterns at a full-scale emergency response exercise
A new high-resolution social network dataset for a primary school
Sensors on cats !
The SocioPatterns hardware goes open !
SocioPatterns at ECCS’14
Contact patterns among high school students
SocioPatterns at NetSci2014
New publication and new time-resolved contact data
A sociometric study on gender homophily
New manuscript about temporal networks of human contacts
SocioPatterns at NetSci2013
SocioPatterns chapter in the “Temporal Networks” book
SocioPatterns at “Digital Epidemiology” workshop
New paper in BMC Infectious Diseases
New research using SocioPatterns data
SocioPatterns featured in Scientific American Graphic Science column
SocioPatterns at ECCS2012
SocioPatterns at Sunbelt 2012
SocioPatterns at the APS march Meeting
Releasing the time-resolved Infectious SocioPatterns data set
SocioPatterns at EPIDEMICS3 – Third International Conference on Infectious Disease Dynamics
Releasing new time-resolved contact data
New PLoS ONE paper on the contact patterns in a school
New paper in BMC Medicine
New paper in Ad Hoc Networks
SocioPatterns at NetSci 2011
SCaMPiE workshop, London
Data-driven Exploration of Dynamical Networks – workshop announcement
IMéRA art-science residency
SocioPatterns at Pixelache
Close Encounters in a Pediatric Ward
Arts, Humanities, and Complex Networks
Infectious SocioPatterns visualization
New: SocioPatterns Gallery
What’s in a crowd?
Pixelache 2011
Technology Uptake
new paper in PLoS ONE
Frontiers of Interaction 2010
Live Social Semantics at ESWC 2010
Practice Mapping
SocioPatterns at Council in Brussels
First deployment in a healthcare setting
Announcing a new experiment in a primary school
Live Social Semantics
Live Social Semantics at HT09
This weekend: SocioPatterns workshop in Dublin
Triple deployment
Upcoming SocioPatterns experiments
SocioPatterns at Infectious in the Science Gallery, Dublin
SocioPatterns at the 25C3 conference
Contact Patterns part 2
Social interactions at a conference
Contact duration
New firmware for contact detection
Exposing contact patterns