About

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.

Community Statement

ml5.js is a community interested in exploring and empowering the creative and ethical application of machine learning. This Code of Conduct is intended to foster a community that is open to anyone interested in joining that exploration.

We are a community of, and in solidarity with, people from every gender identity and expression, sexual orientation, race, ethnicity, size, ability, class, religion, culture, 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 accept the claim that technology is a reflection of society, its histories, and its politics. We reject the claim that any technology is neutral and acknowledge that every technology has the potential to do as much harm as good. We acknowledge that when technologies cause harm, the harm disproportionately affects Black/Indigenous, People of Color (BIPOC) queer, trans, disabled, femme, low-income, survivors, and all other marginalized bodies and communities. With this understanding, we work to intentionally engage these groups when hosting, participating in, or developing events (e.g. workshops or meetings), materials (e.g. courses, syllabi, resources), and software (e.g. the ml5.js library, examples, and related and supporting code).

As part of the ml5.js Code of Conduct, we pledge to design, build, and use ml5.js in a way that centers the aforementioned marginalized bodies and communities first, striving to always confront our biases, privileges, and ignorances for our own good and society at large.

In practice:
  • We welcome newcomers and prioritize the education of others. We do not assume knowledge or imply there are things that somebody should know. 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 work to offer help and guidance when we are able to do so.
In times of conflict:
  • We listen.
  • We clearly communicate while acknowledging others’ feelings.
  • We admit when we're wrong, apologize, and accept responsibility for our actions.
  • We are continuously seeking to improve ourselves and the community.
  • We keep the community respectful and open.
  • We make everyone feel heard.
  • We are mindful and kind in our interactions.

Acknowledgments

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.

Sponsors

(Do we need them?)