Geometry Types

See also: the step-by-step Geometry Tutorial.

WarpConvNet defines a set of geometry containers that combine batched coordinates and features. They provide utility functions for neighbor search, conversions and indexing. The tests in tests/types showcase typical usage while the source code under warpconvnet/geometry/types contains the full definitions.

Ragged batches, concatenation, and offsets

Real-world point clouds and sparse voxel sets are ragged: each batch item has a different number of elements. Instead of padding to B x N x C, WarpConvNet concatenates along the first dimension to produce (N1+...+NB) x C, and uses an integer offsets tensor of length B+1 to mark segment boundaries.

flowchart LR
  subgraph PerBatch [per-batch feature tensors]
    B1["N1 x C"]
    B2["N2 x C<br/>"]
    B3["N3 x C<br/><br/>"]
  end
  CONCAT[concatenation]
  subgraph Right [outputs]
    direction TB
    CAT["concatenated tensor\nN1+N2+N3 x C"]
    OFFSETS[["offsets\n(0, N1, N1+N2, ...)"]]
  end
  B1 --> CONCAT
  B2 --> CONCAT
  B3 --> CONCAT
  CONCAT --> CAT
  CONCAT --> OFFSETS
  OFFSETS --> CAT

You may construct geometry either from a list of per-batch tensors or from concatenated tensors plus offsets.

Type catalog

Below is a concise catalog of the core geometry containers. See the API pages under docs/api for complete reference and the tests in tests/types for runnable examples.

Points

  • Purpose: unordered positions with per-point features
  • Build: per-batch lists or concatenated tensors + offsets
  • Key utils: voxel downsampling, neighbor search
  • Examples: tests/types/test_points.py

Voxels

  • Purpose: integer grid coordinates with features
  • Build: per-batch lists or concatenated tensors + offsets
  • Key utils: to/from dense, hashing/indexing
  • Examples: tests/types/test_voxels.py

Grid

  • Purpose: dense voxel grid with fixed shape and memory format
  • Build: Grid.from_shape and conversion helpers (e.g., points_to_grid)
  • Key utils: memory formats, layout conversions
  • Examples: tests/types/test_grid.py, tests/types/test_to_grid.py

FactorGrid

  • Purpose: group multiple Grid objects with factorized memory formats
  • Build: FactorGrid.create_from_grid_shape
  • Key utils: factor-specific memory layouts and conversions
  • Examples: tests/types/test_factor_grid.py

For complete API documentation consult the modules under warpconvnet/geometry/types/ and the generated pages in docs/api/.