function computeHeightmap(cubeCoords, N){
var Xh = d3.range(1,N+1).map(yy => d3.range(1,N+1).map(zz => d3.max(cubeCoords.filter(
cc => (cc.Y == yy)&(cc.Z == zz)).map(cc => cc.X))));
var Yh = d3.range(1,N+1).map(xx => d3.range(1,N+1).map(zz => d3.max(cubeCoords.filter(
cc => (cc.X == xx)&(cc.Z == zz)).map(cc => cc.Y))));
var Zh = d3.range(1,N+1).map(xx => d3.range(1,N+1).map(yy => d3.max(cubeCoords.filter(
cc => (cc.X == xx)&(cc.Y == yy)).map(cc => cc.Z))));
Xh = Xh.map(rr => rr.map(cc => (cc == undefined)?(0):(cc)));
Yh = Yh.map(rr => rr.map(cc => (cc == undefined)?(0):(cc)));
Zh = Zh.map(rr => rr.map(cc => (cc == undefined)?(0):(cc)));
return {X_height: Xh, Y_height: Yh, Z_height: Zh}
}