About ml5.js

Friendly machine learning for the web!

Welcome to the ml5 project! Developing ml5 is not just about developing machine learning software, it is about making 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.

The library is supported by code examples, tutorials, and sample datasets with an emphasis on ethical computing. Bias in data, stereotypical harms, and responsible crowdsourcing are part of the documentation around data collection and usage. We're building friendly machine learning for the web - we're glad you're here!

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

Learn more about the history and origins of the ml5.js project published on Medium.com/@ml5js.

ml5.js Community Statement

Adapted from the p5.js community statement.

ml5.js is a community interested in exploring the creation of art and design with technology.

We are a community of, and in solidarity with, people from every gender identity and expression, sexual orientation, race, ethnicity, language, neuro-type, size, ability, class, religion, culture, subculture, political opinion, age, skill level, occupation, and background. We acknowledge that not everyone has the time, financial means, or capacity to actively participate, but we recognize and encourage involvement of all kinds. We facilitate and foster access and empowerment. We are all learners.

We like these hashtags: #noCodeSnobs (because we value community over efficiency), #newKidLove (because we all started somewhere), #unassumeCore (because we don't assume knowledge), and #BlackLivesMatter (because of course).

In practice:

  • · We are not code snobs. We do not assume knowledge or imply there are things that somebody should know.
  • · We insist on actively engaging with requests for feedback regardless of their complexity.
  • · We welcome newcomers and prioritize the education of others. We strive to approach all tasks with the enthusiasm of a newcomer. Because we believe that newcomers are just as valuable in this effort as experts.
  • · We consistently make the effort to actively recognize and validate multiple types of contributions.
  • · We are always willing to offer help or guidance.

In times of conflict:

  • · We listen.
  • · We clearly communicate while acknowledging other's feelings.
  • · We admit when we're wrong, apologize, and accept responsibility for our actions.
  • · We are continuously seeking to improve ourselves and our community.
  • · We keep our community respectful and open.
  • · We make everyone feel heard.
  • · We are mindful and kind in our interactions.

In the future:

  • · The future is now.


Our community is always looking for enthusiasts to help in all different ways.
  • · Develop. GitHub is the main place where code is collected, issues are documented, and discussions about code are had. Check out the contributing documentation to get started with developing the library.
  • · Document. Everyone loves documentation. Help is needed porting examples, and adding documentation, and creating tutorials.
  • · Teach. Teach a workshop, a class, a friend, a collaborator! Tag @ml5js on Twitter and we will do our best to share what you're doing.
  • · Create. ml5.js is looking for designers, artists, coders, programmers to bring your creative and amazing work to show and inspire other people. Submit your work to info@ml5js.org.
  • · Donate. ml5.js is a free and open source and made by artists. While ml5.js is not currently accepting donations, you can help support the development of ml5.js through a donation to other adjacent open source projects and endeavors such as the Processing Foundation.


ml5.js is supported by the time and dedication of open source developers from all over the world. We are artists, designers, technologists, researchers, educators, students, scientists, developers, parents, children, and everything in-between.

Funding and support is generously provided by a Google Education grant at NYU's ITP/IMA program. Many thanks to BrowserStack for providing testing support.

Website designed with ❤ by Milan Gary, Nicole Lloyd, and Arnab Chakravarty.

Developed using React/Gatsby.js and Netlify by Wenqi Li, Joey Lee, and Dan Shiffman.

Shout out to the OpenMoji Project for glyphs.