mlx-lattice

mlx-lattice is a sparse point-cloud and sparse-voxel library built on top of MLX. It provides sparse tensor containers, coordinate management, sparse convolution and pooling operators, point/voxel conversion utilities, quantized inference helpers, and mlx.nn-style modules for Apple Silicon workflows.

The project is organized around sparse semantics rather than around individual kernels. A user creates a mlx_lattice.SparseTensor, applies operators such as mlx_lattice.ops.conv3d() or mlx_lattice.ops.pool3d(), and lets the implementation choose the appropriate CPU or Metal route. Backend details such as CSR traversal, sorted implicit-GEMM views, TensorOps availability, and quantized weight packing remain implementation details unless you are maintaining the native backend itself.

The most important contract is small:

  • coordinates are integer rows ordered as (batch, x, y, z);

  • features are MLX arrays whose rows are aligned with those coordinates;

  • sparse relations describe how input coordinate rows contribute to output coordinate rows;

  • public semantics are shared by the CPU and Metal backends even when their kernels use different implementation strategies.

Use the getting-started pages when learning the end-to-end workflow. Use the concept references when you need to reason about coordinate identity, relations, sparse algebra, or point/voxel conversion. Use the backend reference when diagnosing why a public operation selected a particular execution path.