Friendly Machine Learning for the Web

A neighborly approach to creating and exploring artificial intelligence in the browser.

Get started with ml5.js

Why ml5.js?

ml5.js aims to make machine learning approachable for a broad audience of artists, creative coders, and students. The library provides access to machine learning algorithms and models in the browser, building on top of TensorFlow.js with no other external dependencies.

ml5.js is an open source, friendly high level interface to TensorFlow.js, a library for handling GPU-accelerated mathematical operations and memory management for machine learning algorithms.

ml5.js provides immediate access in the browser to pre-trained models for detecting human poses, generating text, styling an image with another, composing music, pitch detection, and common English language word relationships, and much more.

ml5.js aims to support broader public understanding of machine learning and foster deeper engagement with ethical computing, responsible data collection, and accessibility and diversity of people and perspectives in technology and the arts.

ml5.js provides an approachable API and examples to help you get started


// Step 1: Create an image classifier with MobileNet
const classifier = ml5.imageClassifier("MobileNet", onModelReady);

// Step 2: select an image
const img = document.querySelector("#myImage");

// Step 3: Make a prediction
let prediction = classifier.predict(img, gotResults);

// Step 4: Do something with the results!
function gotResults(err, results) {
  // all the amazing things you'll add

Discover the creative possibilities of machine learning!

PoseNet is a machine learning model that allows for Real-time Human Pose Estimation.

YOLO (You only look once) is a state-of-the-art, real-time object detection and classification system.

pix2pix is image-to-image translation with conditional adversarial networks.

Classify the content of images with pre-trained models.

Generate new doodles with a neural network based on Google's Quick Draw.

Meet our team!

ml5.js is an open source project developed and maintained by NYU's Interactive Telecommunications/Interactive Media Arts program and by artists, designers, students, technologists, and developers from all over the world.

ml5.js has received support and funding from these generous folks