Workspace · Rust ML & Visualization
esolearn
A Rust ecosystem for machine learning, AI inference, and data visualization. Thirteen crates in one workspace, split into a
scry-* family for ML and inference and an esoc-* family for graphics - sharing a single GPU
compute substrate.
Overview
what it is
esolearn is the umbrella name for a 13-crate Cargo workspace covering most of the modern AI / data-viz stack in pure Rust.
It's not a single library or app - it's a set of opinionated, sibling crates that share a GPU compute substrate
(scry-gpu) and a common workspace toolchain (Rust 1.85, mold linker, dual MIT / Apache-2.0).
The motivation is straightforward: most Rust ML / AI projects pull in Python, C++ math libraries, or both. esolearn is the experiment of seeing how far you can get without either. Classical ML, transformer inference, diffusion, vision, classical CV, STT, charting, vector graphics, and color science all live as first-party crates in the same tree, written from scratch.
Two top-level demo binaries live under examples/ - chart_audit and sklearn_intro
- that exercise the workspace end-to-end. The repo also ships sample datasets, benchmarks, and a structured
project / handoff doc set so you can find where things are.
scry - ML & AI inference
seven cratesscry-gpu
Vulkan / CUDA compute backend. The shared substrate every inference crate sits on. WMMA tensor-core fused-attention kernels are the current focus.
scry-learn
Classical ML - decision trees, random forests, gradient boosting, MLPs, k-means / DBSCAN / HDBSCAN clustering, SVM, Naive Bayes, exact TreeSHAP, permutation importance. scikit-learn-shaped API.
scry-llm & scry-diffusion
Transformer inference for Llama / GPT-2, and Stable Diffusion 1.5 image generation. Both ride on scry-gpu for
tensor ops.
scry-vision, scry-cv, scry-stt
Vision models (ResNet, CLIP, SCRFD, ArcFace, SAM with ONNX support), classical CV (ORB, BRISK, optical flow, stereo), and Whisper speech-to-text.
esoc - graphics & visualization
five cratesesoc-chart
High-level charting API for plots, dashboards, and reports. Sits on top of the lower layers.
esoc-gfx & esoc-scene
SVG-first 2D vector graphics primitives, plus an arena-based scene-graph IR for composing complex visuals without allocation churn.
esoc-color
OKLab / OKLCH color math with perceptual gradients and CVD (color-vision-deficiency) simulation. Built for accessible data viz, not just aesthetics.
esoc-geo
Map projections and GeoJSON support - the geo layer underneath any spatial charting.
Workspace & stack
how it's wired- Rust 1.85
- Cargo workspace
- Vulkan / CUDA
- mold linker
- rayon
- ONNX (via scry-vision)
The 13 crates share a workspace Cargo.toml, a pinned MSRV (1.85), and a mold linker config for fast incremental
builds. Each crate is independently versionable but shares the same lint config and CI matrix. scry-gpu is the
pivot point - scry-llm, scry-diffusion, and scry-vision all depend on it for
heavy linear algebra, which means kernel improvements in scry-gpu propagate up to every inference crate.
Languages in the tree: Rust (primary, ~5.5 MB), plus thin slices of Python, WGSL, TypeScript, and Vue for benchmark scripts, compute shaders, and example UIs.
Status
actively developed
Created March 2026, in active development with frequent merged PRs. Current focus is the M9 milestone - WMMA
tensor-core fused attention kernels in scry-gpu, with the gains rippling through to scry-llm and
scry-diffusion.
Of the workspace's published crates, scry-learn is the furthest along (on
crates.io); the inference crates are
iterating fast and not yet on crates.io. The workspace also keeps a structured PROJECT.md and a series of
HANDOFF_*.md docs so milestones are auditable.