# MinkowskiEngine on this Apple Silicon workspace

The active `.venv` contains MinkowskiEngine 0.5.4 as a CPU-only native extension. It was built against the installed PyTorch CPU/MPS package; CUDA is not available on this Mac.

Upstream 0.5.4 required four compatibility adjustments for macOS 26, Apple Clang, ARM64, and Python 3.12:

1. Compile OpenMP with `-Xpreprocessor -fopenmp` and the Homebrew `libomp` headers.
2. Use `std::chrono::steady_clock` consistently and cast four `std::min` operands to `size_t`.
3. Link Apple Accelerate BLAS (`--blas=blas`) to avoid loading Homebrew OpenBLAS's second OpenMP runtime.
4. Import `Sequence` from `collections.abc`, and point the extension's `libomp` dependency at PyTorch's bundled `torch/lib/libomp.dylib`.

Runtime verification is recorded in `results/models/report.json`. The `Sparse_UNet` row confirms a real 403-voxel forward/backward pass, output-coordinate equality, finite outputs, and finite parameter gradients.

The prepared sparse input is `data_processed/voxels/cad_surface_sparse_32.npz`. The weak-label CAD mapping result is under `results/models/cad_predictions/`, and local response diagnostics are under `results/models/attributions/`.
