machine learning

web development

creative coding


Cristobal Valenzuela andDan Shiffman

Concept & Project Leads

Cristobal Valenzuela,Dan Shiffman,Yining Shi andJoey Lee

Development & Notable Contributions

Hannah Davis,Ashley Jane Lewis,Ellen Nickles,Linda Paiste andthe ml5.js community

Funding & Support

NYU ITP,Google,Clinic for Open Source Arts (COSA) University of Denver,CMU Studio for Creative Inquiry,Processing Foundation andthe ml5.js community

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.

The library is supported by code examples, tutorials, and sample data sets with an emphasis on ethical computing. Bias in data, stereotypical harms, and responsible crowdsourcing are part of the documentation around data collection and usage.

ml5.js is heavily inspired by Processing and p5.js.

From 2019 to 2022 I was the lead developer of ml5.js. I worked together with the ml5.js community and Dan Shiffman to add new features to the library, create new examples, maintain the code base, do code reviews, address issues, communicate with contributors, create new releases, and create software and UX design best practices.

A shortlist of contributions are linked here:

  • Designed and developed the ml5.neuralNetwork().
  • Integrated Tensorflow.js’s BodyPix for real-time body segmentation.
  • Integrated Face-Api.js for real-time face detection and analysis.
  • Co-lead development and re-design of the ml5.js website.
  • Lead ml5.js through more than 3 releases (so far)

The development of ml5.js is happening here on Github at ml5js