 
  
   
  
  $arg_h:$arg_w:$arg_display:$arg_blur?w=10&h=20&display=low&blur=true → "20:10:low:true"
?h=20&display=low → "20::low:"
?w=10 → ":10::"
<code>
Так что должно быть так:
<code lang="nginx">
map $arg_h:$arg_w:$arg_display:$arg_blur $image_path_file {
    ...
    ~^:(?<width>\d+):(?<display>low|thumb):true$      "/public/tmp/w$width/blurs";
    ~^(?<height>\d+)::(?<display>low|thumb):true$      "/public/tmp/h$height/blurs";
}
</code> 
  
  map $arg_w:$arg_h:$arg_blur $imgdir {
    default                "/image";
    ~^(?<width>\d+):(?<height>\d+):true$ "/tmp/w$width/h$height/blur";
    ~^(?<width>\d+):(?<height>\d+): "/tmp/w$width/h$height";
    ~^:(?<height>\d+):true$ "/tmp/h$height/blur";
    ~^:(?<height>\d+):      "/tmp/h$height";
} 
  
   
  
  
Т.е. вопрос, на самом деле сейчас не про html/css/js, а про алгоритм построения такой пирамиды. Нужно правильно выбрать сколько кубиков должно быть на каждом этаже.
И какие ограничения заданы? Например что мешает просто построить башню на все кубики и будет такая себе вырожденная пирамида…