esolearn · project details

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.

01

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.

02

scry - ML & AI inference

seven crates

scry-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.

03

esoc - graphics & visualization

five crates

esoc-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.

04

Workspace & stack

how it's wired

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.

05

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.