| --- |
| license: apache-2.0 |
| base_model: lerobot/diffusion_pusht |
| pipeline_tag: robotics |
| library_name: coreai |
| tags: |
| - coreai |
| - core-ai |
| - coreai-fabric |
| - aimodel |
| - coreml |
| - apple |
| - apple-silicon |
| - on-device |
| - robotics |
| - vla |
| - vision-language-action |
| - action |
| --- |
| |
| > **Canonical:** [`kevinqz/Diffusion-PushT-CoreAI`](https://huggingface.co/kevinqz/Diffusion-PushT-CoreAI) β source of truth. |
|
|
| # Diffusion Policy PushT (fabric) |
|
|
| > β οΈ **Robot policy β needs a matching robot to actuate.** This is |
| > [lerobot/diffusion_pusht](https://huggingface.co/lerobot/diffusion_pusht) converted to an |
| > Apple Core AI `.aimodel`. Its output is a **normalized action chunk** for |
| > **pusht_planar_2dof_sim**. Run it on any other robot, or with mismatched calibration / |
| > normalization stats, and it emits floats that *look* valid but **actuate |
| > garbage** β the most dangerous silent-failure mode. It is a **base checkpoint**: |
| > fine-tune on your robot's data before expecting useful behavior. |
| |
| An Apple Core AI conversion of |
| [lerobot/diffusion_pusht](https://huggingface.co/lerobot/diffusion_pusht) β a **robot policy** |
| that maps images + proprioceptive state (+ a language instruction, when the model |
| uses one) to a continuous action chunk (diffusion sampler). Produced by |
| [coreai-fabric](https://github.com/kevinqz/coreai-fabric/blob/main/recipes/diffusion-pusht.yaml) and indexed by |
| [coreai-catalog](https://github.com/kevinqz/coreai-catalog). |
| |
| ## Model facts |
| |
| | Field | Value | |
| |---|---| |
| | Parameters | 262.9M | |
| | Architecture | diffusion | |
| | Capabilities | robotics | |
| | Embodiment | pusht_planar_2dof_sim | |
| | Sampling | diffusion (100-step) | |
| | Quantization / precision | none / float16 | |
| | On-disk size | 1002 MB | |
| | Asset kind | split-export policy (encode, denoise_step) + norm_stats | |
| | assetVersion | 2.0 | |
| |
| |
| ## Use it β this needs host code you supply |
| |
| A policy is **not** a chat model: there is no stock high-level Swift runtime for |
| it. The bundle is the split-export shape β an `encode` graph (run once per |
| observation) + a `denoise_step` graph (the host drives it `num_steps` times) + |
| `norm_stats.json` (un-normalization). **You supply the host loop** (the N-step |
| sampler + un-normalization) in Swift. Recommended integration: keep LeRobot's |
| Python `RobotClient` for the servos/cameras/calibration, and run inference |
| on-device β see the `io_contract` in the catalog for the exact tensors. |
|
|
| ```bash |
| pip install coreai-catalog && coreai-catalog install diffusion-pusht |
| ``` |
|
|
| ## Requirements |
|
|
| - **Deployment: macOS 27.0+ / iOS 27.0+, Xcode 27+.** The asset serializes with `minimum_os v27`, |
| so the on-device Swift runtime requires macOS/iOS 27+. A Mac on macOS 26 can |
| convert and inspect it but not run it on-device. |
| - Apple Silicon. A matching robot to actuate (see the banner). |
|
|
| ## Verification (action parity) |
|
|
| - **Gate A (structure): passed** β the bundle's layout + metadata were |
| validated on real hardware; the graphs load. |
| - **Gate B β action_parity: 100.0% min chunk-cosine** vs the fp16 reference over 6 frames of `recorded episodes`, 100-step, fixed-noise (measured on Apple Silicon). |
| - This certifies the export is **numerically faithful to the source policy** β it |
| does **NOT** certify real-world task success, embodiment transfer, or |
| closed-loop stability. Closed-loop success-rate eval (LIBERO/ManiSkill): |
| **not_run** (a separate future gate). Reproduce with `coreai-fabric verify`. |
|
|
| ## Provenance |
|
|
| | Field | Value | |
| |---|---| |
| | Base model | [lerobot/diffusion_pusht](https://huggingface.co/lerobot/diffusion_pusht) @ `84a7c23178445c6bbf7e1a884ff497017910f653` | |
| | Converted by | `models/diffusion/export.py` coreai_torch 0.4.1 + coremltools 9.0 | |
| | Recipe | [diffusion-pusht](https://github.com/kevinqz/coreai-fabric/blob/main/recipes/diffusion-pusht.yaml) (recipe_source: fabric) | |
| | Precision / quantization | float16 / none | |
| | Conversion date | 2026-07-04 | |
|
|
| Machine-readable, in this repo: |
| [`parity-report.json`](./parity-report.json) (gate results) Β· |
| [`reproduce-manifest.json`](./reproduce-manifest.json) Β· [`LICENSE`](./LICENSE) |
| (upstream terms). |
|
|
| ## License and attribution |
|
|
| Weights licensed **apache-2.0** β see the bundled `LICENSE`. This artifact is a **converted derivative** of the base policy: its |
| weights were converted to Apple Core AI format. The conversion itself is |
| community work. |
|
|
| ## Links |
|
|
| - **Base model:** [lerobot/diffusion_pusht](https://huggingface.co/lerobot/diffusion_pusht) |
| - **Reproduce:** [recipe `diffusion-pusht`](https://github.com/kevinqz/coreai-fabric/blob/main/recipes/diffusion-pusht.yaml) |
| - **Index:** [coreai-catalog](https://github.com/kevinqz/coreai-catalog) β the |
| neutral registry tying upstream β this asset β mirror together |
| - [HF Collection](https://huggingface.co/collections/kevinqz/coreai-apple-on-device-6a4879f21c7e1a87c99bcf5a) |
|
|
|
|
| ## The on-device Core AI ecosystem |
|
|
| - [coreai-fabric](https://github.com/kevinqz/coreai-fabric) β the reproducible |
| recipe β `.aimodel` pipeline that produced this asset. |
| - [coreai-catalog](https://github.com/kevinqz/coreai-catalog) β the index of Core |
| AI models across the community, with provenance and integration snippets. |
| - [apple/coreai-models](https://github.com/apple/coreai-models) β Apple's official |
| exporters and runtimes. |
| - [LeRobot](https://huggingface.co/lerobot) β the upstream robotics ecosystem. |
|
|
| ## Not affiliated with Apple |
|
|
| Community conversion. Not produced, hosted, or endorsed by Apple. Apple and Core |
| AI are trademarks of Apple Inc., used here only to describe the target |
| runtime/format. This is an independent community conversion. |
|
|