Skip to content
Mike Wright edited this page Sep 2, 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.

Programs can be explored in the CLI REPL, run as scripts, embedded in Rust, or—within the supported compiler subset—lowered to standalone native binaries that do not ship the parser or interpreter. See the native compilation overview and detailed compiler guide.

MLPL also offers several presentation choices: terminal output, SVG/HTML/image artifacts, an inline browser/WASM interface, a browser connected to native compute, and extension-driven native graphics and application loops. User Interfaces and Visualization compares these options.

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, recurrent, and Engram 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
Compare CLI, browser, SVG, and native graphics User Interfaces and Visualization
Compile a supported program to a native binary Native CPU — Compilation path
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

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.

What's new and what surrounds the core

The Recent Changes page summarizes user-visible additions from 2026-08-04 through 2026-09-02, including the expanded compiler subset, native extensions and ports, file/stream tooling, compact syntax, and structural dataflow visualization.

The Companion Repositories page maps the adjacent executable curricula, utilities, native extensions, reusable MLPL libraries, and the emufpga Serial Parameter Machine research project.

Clone this wiki locally