Skip to content
Mike Wright edited this page Aug 1, 2026 · 5 revisions

sw-MLPL

sw-MLPL is Software Wrighter's Machine Learning Programming Language: a Rust-first, APL-inspired array and tensor language for learning, experimentation, visualization, and small-model training. It combines a language, a browser playground, native command-line tools, accelerator backends, worked demos, tutorials, and an inspectable runtime.

Try the browser playground with no installation, or begin with Getting Started.

flowchart LR
    Learn[Learn array and ML ideas] --> Language[MLPL language]
    Explore[Explore data and models] --> Language
    Train[Train and fine-tune models] --> Language
    Language --> Browser[Browser and WASM]
    Language --> CPU[Native CPU]
    Language --> MLX[Apple GPU via MLX]
    Language --> CUDA[NVIDIA GPU via CUDA]
    Browser --> Visualize[Interactive visualizations]
    CPU --> Visualize
    MLX --> Visualize
    CUDA --> Visualize
Loading

What you can do

  • Work with scalar, vector, matrix, and higher-rank arrays using concise array operations.
  • Preserve meaning with named axes and typed ML value tags.
  • Build models from linear, activation, normalization, embedding, attention, residual, LoRA, convolutional, recurrent, and Engram-related pieces.
  • Differentiate expressions, optimize parameters, and observe training with loss telemetry.
  • Train tiny language models, classifiers, board policies, and supported LoRA models.
  • Explore classical ML, dimensionality reduction, attention, image models, neural thickets, cellular automata, and other executable demos.
  • Render charts, heatmaps, decision boundaries, model diagrams, 3-D scenes, and animated visualizations.
  • Run locally in a terminal, entirely in a browser, or connect a browser or terminal client to a native compute server.
  • Use CPU everywhere, MLX on Apple Silicon, and CUDA on supported Linux/NVIDIA hosts.
  • Embed MLPL in Rust with the mlpl! macro or lower supported programs to native Rust binaries.

Choose a path

Goal Start here
Try it without installing anything Browser and WASM
Install and run scripts locally Getting Started
Understand the language Language Tour
See the full feature inventory Capability Matrix
Find a representative project Use Cases
Use native CPU execution Native CPU
Use an Apple Silicon GPU Apple Silicon and MLX
Use an NVIDIA GPU NVIDIA and CUDA
Connect a browser to native compute Server and Remote Execution
Understand the implementation Architecture and Flows
Browse demos and teaching material Demos and Learning Paths
Find source documents and code Resources and Reference
See known stale source documentation Documentation Errata

Status note

This wiki describes the repository as inspected on 2026-08-01. Some older project documents still call CUDA planned even though the current source contains a tested CUDA vertical slice and connected CUDA demos. Conversely, the presence of a backend does not mean every arbitrary model trains fully on that GPU. Backend pages distinguish shipped general operations, supported accelerated training shapes, CPU fallbacks, and future work.

Engram is an active, multi-saga research track. Its CPU primitives, Model DSL layer, differentiable path, and Tiny-LM integration have landed, but the overall Engram effort is not finished; persistent GPU tensors, MLX execution, larger-model retrofit, scaling, and CUDA parity remain ongoing or future phases. mHC, or Manifold-Constrained Hyper-Connections, is planned as a near-term paper-driven project rather than a shipped MLPL capability.

Link conventions

Links such as Use Cases navigate within this wiki. Links such as the repository README and the language reference open Markdown or text files in the sw-mlpl source repository. This distinction is used throughout the wiki.

Clone this wiki locally