The entire Data Arena display area has very large resolution, much greater than what can fit in any common monitor. Also, due to regular projector maintenance, the exact width in pixels is in flux, so for these two reasons we recommend using the following code at the beginning of your sketch:
// If you're in the Data Arena, set this boolean to true
boolean dataArena = true;
int xStart, xEnd, yStart, yEnd;
void settings() {
if (dataArena) {
size(displayWidth, 1200, P2D);
} else {
size(1920, 1200, P2D);
}
}
void setup() {
if (dataArena) {
xStart = 83;
xEnd = 10659;
yStart = 0;
yEnd = height;
} else {
xStart = 0;
xEnd = width;
yStart = 0;
yEnd = height;
}
// ... all other code for setup
}
Here we’re using Processing’s settings()
function because unlike setup()
, it allows for multiple calls to size()
. A boolean called dataArena
acts as a switch between the resolution of the room (which is automatically detected), and the resolution you would like to work with on your local monitor.
This switch also defines variables for the sketch’s beginning and end points. This is included because there is a necessary overlap between the first and last projectors in the Data Arena (near the access door), so creating continuous 360º animations just using 0
and width
values can result in a visual stutter effect. Using the xStart
and xEnd
variables instead fixes this issue. If you’re working locally, just switch dataArena
to false and these variables will switch to the default areas.
Keep in mind that the exact numbers above may need to be altered as future projector maintenance occurs.