A fast and comprehensive machine learning framework for Java, Scala, and Kotlin with state-of-the-art algorithms and data visualization.
SMILE is a fast and comprehensive machine learning framework for the JVM, supporting Java, Scala, and Kotlin. It provides a wide range of algorithms for classification, regression, clustering, deep learning, natural language processing, and data visualization, all optimized for performance. The framework solves the need for a unified, high-performance ML library within the JVM ecosystem.
Java, Scala, and Kotlin developers building machine learning applications, data scientists working within JVM environments, and researchers needing a performant library with extensive algorithm coverage.
Developers choose SMILE for its broad algorithm support, native JVM performance, multi-language APIs, and integrated visualization tools, making it a one-stop solution for machine learning on the JVM without relying on Python-based stacks.
Statistical Machine Intelligence & Learning Engine
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Covers everything from classic SVMs to modern LLMs like Llama 3.1, including deep learning with EfficientNet, making it a comprehensive ML toolkit for the JVM.
Provides idiomatic interfaces for Java, Scala, and Kotlin, allowing developers to leverage ML in their preferred JVM language without extra wrappers.
Offers both Swing-based plotting and Vega-Lite declarative charts, enabling advanced data visualization directly within ML workflows, as shown in the gallery.
Utilizes optimized structures like BK-Trees and Cover Trees for fast nearest neighbor search, and integrates OpenBLAS for efficient matrix computations.
Requires manual installation of OpenBLAS and ARPACK libraries, with platform-specific complexities—e.g., macOS SIP issues necessitate workarounds like copying DLLs.
Employs a commercial license for distributors, which may create barriers for startups or projects needing clear open-source licensing without vendor contact.
As a JVM-native framework, it lacks seamless interoperability with popular Python data science tools, potentially isolating it from broader ML communities.
Studio uses up to 4GB memory by default, and scaling for large data requires manual JVM tuning, which can be error-prone for less experienced users.