What is a Voxel Map or Approximation

Definitions:
  • A 'proper cube' has equal sides, but some authors generalize 'cube' to refer to arbitrary rectangular solids.

  • A voxel is a cube identified by a key prefix+pattern. If the length of the key prefix (in bits) is the length of the key (& pattern==0), then the voxel is a proper cube of side length 1. If shorter by L*D bits in a D-dimensional space, then the voxel is properly cubic with side length L.

  • A voxel map is a union of voxels, that is, a list of prefix+patterns, that is, a union of cubic regions.

  • A voxel approximation is just a voxel map, but it is understood that the union of voxels approximates some shape in the space to some level of precision. With smaller voxel it can be as precise as you like.

  • A pattern voxel is a proper cube voxel or one of its 18 (improper) cube subregions, referenced by a prefix+pattern.

    Selected ShapePatterns
    the proper cube ???
    the specified flat 1??, ?1?, ??1, 0??, ?0?, ??0
    specified stick 00?, 01?, 10?, 11?, 0?0, 0?1, 1?0, 1?1, ?00, ?01, ?10, ?11
    proper subcubes 000, 001, 010, 011, 100, 101, 110, 111

What's this pattern business? We might generalize the voxel concept to halves and quarters of a voxel proper cube using the pattern concept from the DST patent.

A key prefix specifies with each of its bits a half of the entire space, namely the half which has that particular bit set to that particular value. Picking out half then half then half in order from most to least significant bit, get from an entire space (a proper cube) a half of it (a plate) then that in half (a stick), then in half again yielding one level smaller proper cube, 1/8 of the previous-level proper cube.

Actually the ordering of the dimensions was arbitrary in the first place. (x, y, z) could without loss of generality or information have been enumerated in different orders such as (z, y, x). So why are we stuck cutting along z last when we could with equal sense cut along any axis in any order, or to stop at any point too.

The pattern concept is to pick out from a proper cube one of 18 sub-regions according to the bits specified and non-specified in the pattern. Let '?' represent BOTH 0 and 1 in a given direction. A pattern must contain at least one '?' since otherwise the prefix augmented by three specified values, 1 or 0 each, by definition IS a prefix 3 bits longer, and it picks out a smaller proper cube, so we stopped before there.

In this way a variety of 2D pattern voxel maps are displayed below, representing variously positioned 5x5 squares:

In the above views the various voxel maps require 6, 7, or 9 pattern voxels, the union of which is an exact approximation of a 5x5 square. Similarly any voxel approximation may represent arbitrary shapes to any desired level of precision more of them, and longer key prefixes (smaller cubes).

Generally a useful approximation might require vastly less data using voxels, and somewart less by using pattern voxels.

A question to answer elsewhere is, given two voxel maps on different frames of reference, how to reposition one onto the other: is there an economic intermediate representation?

Perhaps we just convert to a union of unit voxels, carry out the inverse transform to 3D coordinates, shift in 3D space, and convert back to keyspace, but I think that would be very clumsy, so I say, No.

What do you say?