Skip to content
AI360Xpert
Beta

Voxels for 3D Shape Grids

Voxels put 3D shapes on a fixed grid so 3D convolutions can run, at the cost of memory that grows cubically.

Why Does This Exist?

3D representations need one shape that convolutions accept. Points are unordered and meshes are irregular, but a voxel grid is a plain 3D array. The price is cubic growth: halving voxel size multiplies cells by eight. This page teaches sizing and sparsity so voxels stay affordable.

Think of It Like This

Ice cube trays for marbles

Pouring marbles into an ice cube tray sorts them into slots you can count row by row. Tiny slots keep marbles separate but you need a freezer full of trays. Big slots save trays but jam two marbles together.

Voxel size is slot size and memory is freezer space. The analogy stops at emptiness: most trays stay empty in 3D streets.

How It Actually Works

Voxelization maps point (x,y,z)(x, y, z) to index (⌊x/v⌋,⌊y/v⌋,⌊z/v⌋)(\lfloor x/v \rfloor, \lfloor y/v \rfloor, \lfloor z/v \rfloor) with size vv. Features in one cell pool by mean or max. Memory is M=(L/v)3×bM = (L/v)^3 \times b bytes for side LL and bb bytes per cell. Compute for dense 3D convolution scales with the same cube.

Worked example

Take L=3.2L = 3.2 m and v=0.05v = 0.05 m. Cells per side are 3.2/0.05=643.2/0.05 = 64, total 643=262,14464^3 = 262{,}144. At 4 bytes each that is about 1.01.0 MB dense. A street scan fills about 5,0005{,}000 cells, so sparsity is 5,000/262,144≈1.95{,}000/262{,}144 \approx 1.9 percent. Sparse storage keeps the 5,0005{,}000 and skips the rest, which is exactly what SECOND exploits.

Watch Out For

Voxel size erasing thin structures

A 0.100.10 m voxel merges a 0.030.03 m pole with air and the pole vanishes from every later layer. The symptom is systematic misses on poles and limbs. Size vv from the thinnest must-keep structure, not from memory comfort.

The Quick Version

  • Voxels make 3D regular for convolutions at cubic memory cost.
  • A 64364^3 grid holds 262,144262{,}144 cells; street scans fill under 22 percent.
  • Use sparse storage and convolution whenever occupancy is low.
  • Do not use dense voxels past 1283128^3 on one GPU; switch to points or fields.
  • Size voxels from the thinnest structure, then fit memory around that.