A data processing device comprising: a camera to capture successive images of an optically detectable marker of a second data processing device (A, B), wherein the optically detectable marker comprises two or more spatially separated marker portions; a location detector configured to detect a location of the data processing device in a real space shared with the second data processing device; a data receiver configured in a calibration phase to receive location information from the second data processing device indicating a location of the second data processing device in the shared real space; and a processor configured to, in the calibration phase, generate mappings, each mapping being between an image location, in images captured by the camera, of the optically detectable marker of the second data processing device, the communicated location of the second data processing device and the detected location of the data processing device, in which the processor is configured to generate a mapping only in response to received location information indicating that the second data processing device is within a predetermined margin of one location in a three dimensional array of locations in the shared space; and in which the processor is configured during an operational phase to capture, using the camera, successive images of an optically detectable marker of a second data processing device; detect, using the location detector, a location of the data processing device; detect, using the processor, a location of the second data processing device by interpolation between the mappings generated in the calibration phase. a camera to capture successive images of an optically detectable marker of a second data processing device (A, B), wherein the optically detectable marker comprises two or more spatially separated marker portions; a location detector configured to detect a location of the data processing device in a real space shared with the second data processing device; a data receiver configured in a calibration phase to receive location information from the second data processing device indicating a location of the second data processing device in the shared real space; and a processor configured to, in the calibration phase, generate mappings, each mapping being between an image location, in images captured by the camera, of the optically detectable marker of the second data processing device, the communicated location of the second data processing device and the detected location of the data processing device, in which the processor is configured to generate a mapping only in response to received location information indicating that the second data processing device is within a predetermined margin of one location in a three dimensional array of locations in the shared space; and in which the processor is configured during an operational phase to capture, using the camera, successive images of an optically detectable marker of a second data processing device; detect, using the location detector, a location of the data processing device; detect, using the processor, a location of the second data processing device by interpolation between the mappings generated in the calibration phase. capture, using the camera, successive images of an optically detectable marker of a second data processing device; detect, using the location detector, a location of the data processing device; detect, using the processor, a location of the second data processing device by interpolation between the mappings generated in the calibration phase.