Installation

Requirements

e3nn-mlx requires Python 3.11 or newer. Apple silicon Macs use MLX’s Metal backend. Linux installations use the MLX CPU package and are primarily useful for testing and portability; generated Metal kernels are unavailable there.

Install from PyPI

python -m pip install e3nn-mlx

Verify the installation:

python -c "import e3nn_mlx; print(e3nn_mlx.__version__)"

Install for development

git clone https://github.com/lamalab-org/e3nn_mlx.git
cd e3nn_mlx
python -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[test,docs]'
python -m pytest

MLX tests that require a working runtime can otherwise skip. CI prevents an accidental pass by setting E3NN_MLX_REQUIRE_RUNTIME=1.

Select an execution path

Generated kernels are enabled by default on compatible Apple-silicon inputs. Every public operation retains a general MLX path. For spherical harmonics and scatter, pass use_custom_kernel=False; for tensor products, construct the module with use_custom_kernel=False or call differentiable_arrays when a forward-mode transform is needed.