Clusters of detected gamma photons are being studied in order to find potential sources of gamma rays
The cube or tesseract is emitting gamma radiation. In order to find sources of gamma radiation (and thus a potential location of the tesseract) one can use algorithms to detect clusters in the detected locations of gamma radiation.
Note that the estimated locations/directions of the observed photons are not so accurate, with error, so statistics comes into play. Whenever the detected photons are a lot near each other then this may indicate that they are related to a source radiating gamma photons.
Finding clusters of gamma rays is a way to find out whether a detected gamma ray is background or belongs, along with other detected gamma rays, to some potential common source.
Astronomers have been using the minimal spanning tree algorithm to find clusters of (ptentially) associated detected gamma rays( see for instance: Campana 2008 ).
An example image of how this works
An example image of how this works can be generated with the R statistical software (see below):
It is a similar image as those found in the works (but I can not find an image with clear free license):
Campana, R., et al. "Minimal spanning tree algorithm for γ-ray source detection in sparse photon images: cluster parameters and selection strategies." Astrophysics and Space Science 347.1 (2013): 169-182.
link to axiv paper https://arxiv.org/abs/1305.2025
Campana, Riccardo, et al. "A Minimal Spanning Tree algorithm for source detection in γ-ray images." Monthly Notices of the Royal Astronomical Society 383.3 (2008): 1166-1174. link to journal

library(emstreeR)
## 2D artifical data
set.seed(1)
n <- 20
n2 <- 400-n*3
## c1 to c3 are artificial clusters
## c4 is background noise
c1 <- data.frame(y = rnorm(n, 45, sd = 1),
x = rnorm(n, 130, sd = 1))
c2 <- data.frame(y = rnorm(n, 50, sd = 1),
x = rnorm(n, 125, sd = 1))
c3 <- data.frame(y = rnorm(n, 55, sd = 1),
x = rnorm(n, 135, sd = 1))
c4 <- data.frame(y = runif(n2, 40,60),
x = runif(n2, 120,150))
d <- rbind(c1, c2, c3, c4)
## MST:
out <- ComputeMST(d)
## 2D plot of points:
plot(-100,-100,xlim = c(120,150), ylim = c(40,60), xlab="latitude", ylab="longitude")
points(out$x,out$y,
pch = 21, col = 1, bg = 1, cex=0.4)
title("approximate spatial distribution \n of detected signals", cex.main=1)
plot(-100,-100,xlim = c(120,150), ylim = c(40,60), xlab="latitude", ylab="longitude")
points(out$x,out$y,
pch = 21, col = 1, bg = 1, cex=0.4)
title("red lines: small edges \n green dots: connected with n >= 10", cex.main = 1)
# draw clusters seperately with large size
library(igraph)
edgevector <- as.numeric(matrix(cbind(out$from[edgeselect],out$to[edgeselect]),2,byrow=TRUE))
graph <- make_graph(edgevector, directed = FALSE)
groepen <- groups(components(graph))
sizes <- which(components(graph)$csize>=10)
for (s in sizes) {
coordinates <- unlist(groepen[s])
points(out$x[coordinates],
out$y[coordinates],col=3)
}
# draw the tree and use mean distance as boundaries between clusters
boundary = mean(out$distance)
edgeselect = out$distance<boundary
colors = rgb(0.75+edgeselect*0.25,
0.75-edgeselect*0.75,
0.75-edgeselect*0.75)
for (i in 1:400) {
lines(c(out$x[out$from[i]],out$x[out$to[i]]),
c(out$y[out$from[i]],out$y[out$to[i]]),
col = colors[i])
}