pixal3d_mrp_mlx/pixal3d_mlx
John 6ac586b947 SparseStructureDecoder verified at correlation 1.00000000
74/74 params, max abs diff 4.6e-4 on values around -163 (~3e-6 relative), 60ms for a
16^3 latent -> 64^3 occupancy grid.

Fully dense, so no sparse ops involved - but MLX's Conv3d is channels-LAST where torch
is NCDHW, so tensors are carried channels-last throughout and transposed only at the
boundaries. The converter already emits [O,kz,ky,kx,I] to match. pixel_shuffle_3d had
to be rewritten for that layout: the (H,s)(W,s)(D,s) interleave order is what matters
and getting it wrong scrambles the grid while preserving its shape.

This completes the structure stage end to end: image -> ss_flow -> latent -> ss_dec.
2026-08-02 13:27:24 +10:00
..
__init__.py Pixal3D weight converter + corrected scope 2026-08-02 11:25:00 +10:00
convert.py Pixal3D weight converter + corrected scope 2026-08-02 11:25:00 +10:00
slat_flow.py All four flow models verified at correlation 1.00000000 2026-08-02 12:10:28 +10:00
ss_dec.py SparseStructureDecoder verified at correlation 1.00000000 2026-08-02 13:27:24 +10:00
ss_flow.py SparseStructureFlowModel verified against upstream at correlation 1.00000000 2026-08-02 12:03:12 +10:00