Home

Awesome

ml5.js Code of Conduct banner

The Code of Conduct establishes and communicates the commitment of the ml5.js community to uphold a key set of standards and obligations that aim to make ml5.js a friendly and welcoming environment. Read more about the team's process and approach on our Medium post.

This is version 1.0 of the Code of Conduct. It was last updated on May 10, 2021.

🌈 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:

In times of conflict:

🌍 Overview

This Code of Conduct is designed to apply to behavior within the ml5 community and to the uses of the ml5.js library. Members of the ml5 community are expected to follow the Code of Conduct when participating in the community spaces described below. Software that uses the ml5.js library is required to follow the Code of Conduct by the library’s copyright license.

The ml5.js community expects everyone to work towards creating a harassment-free experience for everyone. We pledge to act in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. We recognize that harassment-free is not the same as disagreement-free or even conflict-free.

Scope

This Code of Conduct applies within all ml5.js community spaces online and offline and when using the ml5.js JavaScript library and accompanying materials. It describes the behavior we expect from community members and how behavior that may violate the Code of Conduct will be handled.

Software that violates the Code of Conduct does not meet the requirements of the ml5.js copyright license. Software that uses the ml5.js library must continue to comply with the evolving Code of Conduct.

Members of the ml5.js community who violate the Code of Conduct may be asked to leave the community. Personal behavior that violates the Code of Conduct does not automatically mean that software created by that person violates the Code of Conduct. Additionally, community members who follow the Code of Conduct in community spaces may still create software that violates the Code of Conduct.

Maintainers and leaders of the ml5.js project are expected to follow the Code of Conduct when representing the community both inside and outside of community spaces. Representing ml5.js includes using an official ml5js.org e-mail address, posting via an official social media account, interacting on ml5.js GitHub Issues or Pull Requests, in chat rooms such as on Slack or Discord, writing code for the library or creating any ml5.js related materials, or acting as an appointed representative at an online or offline event. Members of the community are also expected to follow the Code of Conduct when participating in ml5.js community spaces. At present this applies to:

In addition to the official ml5.js community spaces, members of the community are expected to follow the Code of Conduct when interacting with official ml5.js accounts on social media. At present, the only official account is @ml5js on Twitter.

To be part of the ml5.js community is to accept, support, and engage with the Code of Conduct.

🗂 Our Standards

The Code of Conduct represents the ml5.js community’s attempt to develop an evolving collective understanding of what it means to use machine learning creatively, appropriately, ethically, and critically. We recognize that behavior within the ml5.js community and projects using the ml5.js library must be interpreted on the basis of their context. While the intentions of the artist--the developer--may be “good,” we agree that good intentions do not always lead to positive impacts.

We expect these standards to evolve over time and invite contributions from the community to expand, clarify, or reword them.

Behavior within the community

Do

Do Not

Use of the ml5.js software library

Do

Do Not

Upholding the ml5.js Code of Conduct...

The Code of Conduct Steering Committee is responsible for clarifying and enforcing the standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.

The Code of Conduct Steering Committee will strive to publicize Code of Conduct enforcement decisions when doing so will benefit the community. It will also maintain an archive of all complaints and enforcement decisions.

...within the community

The Code of Conduct Steering Committee has the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. It also has the right and responsibility to request that individuals leave the community, either temporarily or permanently.

If you believe that someone is violating the Code of Conduct, we ask that you report it by emailing info@ml5js.org. This email is accessible to the full Code of Conduct Steering Committee. If, for any reason, you are not comfortable reporting the violation to the full Code of Conduct Steering Committee, we invite you to report the violation to any individual member of the Code of Conduct Steering Committee. Please include a description of the incident in your report. The Code of Conduct Steering Committee works to respond to all reports in a reasonable time.

Violations of the Code of Conduct do not have to be a single severe instance. We recognize that ongoing low levels of toxic behavior can be just as harmful to the community as a single severe act.

An example of such an email would look like this:


Subject:

[Code of Conduct] Reporting a violation

Body:

Dear ml5.js leadership,

My name is ______ and I’m writing to report a violation of ml5.js community Code of Conduct. Specifically, I’d like to report ______.


Sometimes, participants violating the Code of Conduct are unaware that their behavior is harmful, and an open conversation clears things up to move forward. However, if a participant continues with the behavior, the Code of Conduct Steering Committee may take any action they deem appropriate, up to and including expulsion from all ml5.js spaces and identification of the participant as a harasser to other ml5.js members or the general public.

...within uses of the ml5.js library

Projects that make use of the ml5.ljs library are required to comply with the Code of Conduct by the ml5.js copyright license. The Code of Conduct Steering Committee is ultimately responsible for deciding if projects that incorporate the ml5.js library violate the Code of Conduct. It can make those decisions in response to a specific request, or through an investigation it initiates directly.

If you believe that a project that incorporates ml5.js violates the Code of Conduct, or are concerned that your own project may violate the Code of Conduct, we ask that you email info@ml5js.org.

  1. Reach out to the accused project maintainers in order to discuss the violation and ways to resolve the violation. That may include realigning the project with this Code of Conduct or removing ml5.js from the project entirely. Accused violators will be given at least 30 days to resolve a violation before it is determined to be final. The Code of Conduct Committee may extend this timeline in order to accommodate an investigation into the accusation.
  2. Publicly identify the project as being in violation of the Code of Conduct.

If these steps do not result in a resolution, the Code of Conduct Committee may formally determine that the project is in violation of the Code of Conduct. That finding will cause the project to fall out of compliance with the terms of the ml5.js software license.

Once an investigation is completed, the Code of Conduct Committee will strive to make the decision and reasoning resulting from the investigation available to the wider community. This will help the community understand how the Code of Conduct is applied in practice.

ml5.js Code of Conduct Committee

The Code of Conduct Committee is responsible for maintaining the Code of Conduct, managing discussions about additions and subtractions, interpreting the Code of Conduct, and enforcing its rules.

The Code of Conduct Committee is currently made up of a selection of ml5.js community members responsible for originally drafting this Code of Conduct. It is responsible for upholding the Code of Conduct, maintaining the Code of Conduct, and developing governance structures for the Code of Conduct Committee itself. The Code of Conduct Committee will strive to make its enforcement decisions public in order to help the community better understand how the Code of Conduct can be applied in any given situation.

The Code of Conduct Committee’s members are:

🌱 Developing and Growing the Code of Conduct

The ml5.js Code of Conduct is an ever-evolving document that establishes and communicates the commitment of the ml5.js community to uphold a key set of standards and obligations that aim to make ml5.js a friendly and welcoming environment.

This Code of Conduct is collaboratively developed by the ml5.js community. It was originally adopted in 2021 after a community consultation and discussion that began in January of 2020. That process also created the Code of Conduct Committee.

We expect the Code of Conduct to be a living document. Its evolution will take at least two forms.

First, the elements may change. Some rules may be added, while others may be removed. The Code of Conduct Steering Committee will strive to make sure that the text of the Code of Conduct continues to reflect the community understanding of the spirit of the Code of Conduct.

Second, the elements will be clarified through interpretation. ml5.js is used in a wide range of projects. The Code of Conduct is made up of high level principles that may apply differently to each of those projects. The Code of Conduct Steering Committee intends to publicize interpretations to the Code of Conduct as it makes them. We hope that this will add context to the principles over time.

📊 A word about data and data sets

Machine learning heavily relies on data and datasets. Therefore, we have incorporated a non-exhaustive list of best practices to consider when working with data into this Code of Conduct, as well as resources that we recommend the community use. Although these best practices are not formally part of the Code of Conduct’s standards, understanding and following them will make it easier to comply with those standards.

If you are new to working with algorithms and data, we especially recommend A People’s Guide to AI for learning about the relationship between machine learning algorithms and data. “Embodying Social Algorithms” (p.36) is a great activity to start with for thinking in particular about how the data you use relate to the output and if those data are the right way to measure the information you’re interested in.

Best data practices include at a minimum, but are not limited to the following:

The field of machine learning currently lacks a standard method for documenting datasets. We encourage the community to use the Datasheets for Datasets questions that were developed to address this gap. This approach is particularly helpful because it outlines best practices and important questions to ask yourself at each of the below stages in the process of working with data while doing machine learning:

Citations/Sources of Inspiration/Fellow Travelers

Projects that we have drawn language from:

Other projects that we have drawn inspiration from:

Copyright License on the CoC

This Code of Conduct is dedicated to the public domain using the Creative Commons Zero Public Domain Dedication tool. You are free to use this Code of Conduct in any manner you choose without additional permission or credit.

We considered other licensing options such as the CC BY or CC BY-SA license. However, we recognize that attribution can be challenging when integrating parts of one document into another document. CC0 eliminated that barrier to use.

Even though we are using CC0, we would still love to know if you use parts of this Code of Conduct! Please reach out to info@ml5js.org if you find it helpful.