Laya-CoreML: 4.98 ms decisions on the Neural Engine, 2.78x better energy than MLX
Validated Core ML ports of all Laya checkpoints. One short multilingual decision in 4.98 ms P50 on M3 Max with ANE FP16, at 2.78x better energy per decision than MLX FP16.
# Laya-CoreML **Open-weight typed decisions on Apple Silicon. Core ML, Neural Engine, zero generated tokens.** [PyPI](https://pypi.org/project/laya-coreml/) · [Hugging Face weights](https://huggingface.co/aac6fef/laya-multilingual-coreml-ane) · [中文](https://github.com/mizorewww/laya-coreml/blob/main/README.zh-CN.md) A real Laya model plays Snake locally, with visible probabilities, score, length, latency and safety interventions. The GIF replays a recorded Core ML run at **1× speed**. The game uses explicit planner features and a visible cycle safety layer. The complete active Snake loop sustained **49.1–50.0 decisions/s** across three uncapped 600-step episodes, with zero deaths and two safety interventions. [Game-loop timings and paced-rate limits](https://github.com/mizorewww/laya-coreml/blob/main/docs/SNAKE_BENCHMARKS.md) include rendering serialization; terminal painting is excluded. **One short multilingual decision: 4.98 ms P50 / 5.31 ms P95 on M3 Max with ANE FP16.** The same experiment measured **2.78× better whole-system energy per decision** than compiled MLX FP16. A separately validated W8 palette variant reached 4.88 ms and 3.19× energy improvement. These are single-question results, not full Snake frame times; the requested 10× improvement was not achieved. ## Run the demo Apple Silicon · macOS 15+ · Python 3.11–3.13. ```bash pip install 'laya-coreml[demo]' hf download aac6fef/laya-multilingual-coreml-ane --local-dir models/snake laya-coreml-snake --model ./models/snake ``` Download once, then play offline. No PyTorch, Transformers or MLX is needed for inference. The terminal needs 104 columns × 35 rows. Space pauses; ↑/↓ changes speed; R resets; Q quits. First-time Core ML initialization can take tens of seconds. [Controls, recording and video e