Skip to content

Topics in ITP: Contributing to ml5.js (Research)

Daniel Shiffman edited this page Oct 22, 2023 · 19 revisions

Welcome! This page contains a list of ideas and how you can help contribute to the ml5.js project as part of ITP's spring 2024 seminar (2 credits).

Description

This course is a studio-oriented seminar where students will actively participate in the evolution of the ml5.js open source project. Registration for this course will be conducted via an application process and is limited to 8 students. The structure of this course is inspired by initiatives such as the Processing Foundation Fellowship and Google Summer of Code. Students interested in enrolling are required to submit a detailed project proposal for the semester (instructions and application process to come). We invite proposals that encompass all facets of the ml5.js project, including but not limited to community management, documentation enhancement, website development, pedagogical research, development operations (DevOps), and expansion of machine learning models.

Application

The ml5.js project actively seeks help with the features and initiatives listed, but we also look to applicants to propose ideas we haven't thought of ourselves. For all of our projects, it's incredibly important that things are kept as simple and friendly as possible. ml5.js is not meant to be a comprehensive and technically deep machine learning library for developers. It's for people who are less familiar with code and are new to machine learning. We're far less interested in features to make ml5.js more powerful for advanced users than we are in features that make it easier to handle tasks that are common for a wide range of our audience.

In addition to this list, we track specific bugs and enhancements via github issues:

If you have questions about an idea or need guidance on forming your proposal, please post to the ml5.js Discord (?). This is the best way to get feedback and develop your idea. This makes it possible for everyone to learn from your questions and contribute their thoughts.

Processing Fellowships and GSoC

This studio is modeled after the Processing Foundation fellowship program and Google Summer of Code. To get a sense of the kinds of projects from these initiatives, you can read these wrap-up posts.

ml5.js Project Ideas

Website

Community and Education

  • Develop and Teach Workshops: Propose and develop materials for audiences and communities that are new to machine learning and ml5.js.
  • Educational Resources: Propose new accessible and inclusive learning materials that cater to different learning styles and levels.

Machine Learning Models Implementation

The following models/functions are currently available in 0.12.2 but are not yet ported to this new "next generation" library. Looking for proposals for re-implementing and reviving them!

  • ml5.imageClassifier()
  • ml5.featureExtractor()
  • ml5.objectDetection()
  • ml5.soundClassifier()

While the goal of ml5.js "next generation" is to be smaller, more lightweight and focused on beginners, we are also interested in new models that demonstrate core ML capabilities and are well suited for applications in creative arts and media.

Research and Development

  • Language Models and Embeddings: Investigate the integration of language models into ml5.js.
  • Explore onnx.js as possible alternative backend for ml5.js.

DevOps/Library Maintenance

  • Unit Tests: Develop unit tests for new and existing features.
  • Developer Documentation Materials: Create comprehensive and user-friendly documentation for new contributors.
Clone this wiki locally