-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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
- 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.
| 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 |
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.
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.