SMILE is a Java/JVM machine learning framework with modules for core ML algorithms, deep learning, NLP, visualization, and Spark integration. It provides Maven/SBT/Gradle build options and examples, plus a SMILE Studio IDE.
Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).
What it is
SMILE (Statistical Machine Intelligence & Learning Engine) is a comprehensive, high-performance machine learning framework for the JVM. It offers modules for core ML algorithms, deep learning, NLP, visualization, and Spark integration. SMILE Studio is an agentic IDE for data science using Python or SMILE on the JVM.
How it works
The project provides modular organization with distinct components (base for data structures and math, core for algorithms, deep for neural networks and LLMs, nlp, plot, spark, studio, etc.). It exposes APIs for training and inference, and includes visualization layers (smile.plot.swing and smile.plot.vega). The repository includes installation guidance for Maven, SBT, and Gradle, and a Quick Start code sample showing a RandomForest.fit usage over a dataset and a predict call.
Getting started
Maven (examples):
<!-- Core ML algorithms -->
<dependency>
<groupId>com.github.haifengl</groupId>
<artifactId>smile-core</artifactId>
<version>6.2.4</version>
</dependency>
SBT (Scala):
libraryDependencies += "com.github.haifengl" %% "smile-scala" % "6.2.4"
Gradle (Kotlin):
dependencies {
implementation("com.github.haifengl:smile-kotlin:6.2.4")
}
Quick Start example:
import smile.classification.RandomForest;
import smile.data.formula.Formula;
import smile.io.Read;
// Load data
var data = Read.csv("src/test/resources/iris.csv");
// Train a random forest
var forest = RandomForest.fit(Formula.lhs("species"), data);
// Predict
int label = forest.predict(data.get(0));
System.out.println("Predicted class: " + label);
Recent releases
Latest releases (examples):
- v6.2.5 (2026-08-02): Fix Smile Studio notebook cells accumulate a trailing blank line on save by @TsybulkaM; Fix macro and weighted F-score to average per
- v6.2.4 (2026-07-13): New Java Coding Skills, Java Migration, Architecture Review
- v6.2.3 (2026-06-23): Dark Theme, Neighborhood Functions, Spark Module
- v6.2.2 (2026-06-19): AWS Bedrock Support, Public API Enhancements
- v6.2.1 (2026-06-17): AWS Bedrock Bearer Token Support, Clojure Association M
Traction
Stars: 6409, Forks: 1147, Open issues: 0
Behind the repo
The project focuses on Java and JVM-based ML with multiple language bindings (Scala, Kotlin). It provides a SMILE Studio IDE and a REST inference server (serve/). It includes a module map and extensive installation instructions for native BLAS/LAPACK dependencies.
Caveats
License: none listed. Created 2014-11-20. Last push 2026-08-04. Language: Java. The README lists multiple modules and dependencies; Native libraries may be required for some algorithms (BLAS/LAPACK) and LibTorch for deep learning.






