Skip to content

2.1 Milestone Update: Graphics, Accessibility, Sound, and Coding Experience #7937

Open
@ksen0

Description

@ksen0

Topic

Dear community,

Many thanks for actively testing and improving p5.js 2.0 🌱🌲! Because there are some new features being added to p5.js 2.0, we’ll aim to release 2.1 when these are completed and ready to share. Read on to find out what’s planned, and how you can get involved.

If you've worked on 2.1 or related issues - or if you get involved now! - you're invited to share your profile, work, and thoughts to be featured in our social media posts when 2.1 launches. As always, all contributors are credited in the GitHub release notes, but this is a chance for extra visibility: learn more and 🌸 add your info here 🌸.

Below is an overview, and you can see the 2.1 status board for a more complete plan, progress, and issues you can still contribute to! Check the “Ready for Work” column or the “Help Wanted” tag in the 2.1 status board. Some of the completed work has already been released in patches. 2.1 will bring fuller docs and final tech updates; and include news on related repositories: p5.js-website, p5.js-compatibility, and p5.sound.js.

Graphics: beginner-friendly shaders with p5.strands

p5.strands is an experimental feature to help beginners write shaders directly in JavaScript using familiar p5.js patterns. It was introduced in 2.0, and is actively looking for contributors: check out the open the 2.1 work within p5.strands, or join the #🧵p5strands channel on the p5.js Discord. Some good places to get started with p5.strands contribution:

  1. Expand the documentation #7898
  2. Improve stability by fixing bugs (e.g., #7900)
  3. Join the community discussion on further API improvements #7849

Accessibility: core tools & reference website

#6971 color contrast checker will be the first of several future tools to help sketch authors check the web accessibility of their work; after its release, we’ll invite more exploration and discussion for the API design of additional functionality (such as disabling animation and flashing lights check features for future 2.x releases)!

We are also looking for contributors interested in making the documentation of describe() more present in both library documentation and on the website: #6387

💡Interested in improving the web accessibility of the reference website? Keep an eye out for “Good First Issue” labels used along with accessibility problem reports in the p5.js-website repository created by Coseeing, a community dedicated to championing digital accessibility.

  • Duplicate heading text used for callout blocks #871
  • <ul> and <ol> must only directly contain <li>, <script> or <template> elements #869
  • See all the most important issues affecting the accessibility of the website: anything not yet claimed and marked as “Good First Issue” is looking for contributors!

Website improvements are not directly connected to the milestone goals, but any improvements added leading up to an upcoming release will be included in announcements.

Sound: review and comment on the revised add-on

Do you use p5.sound.js to make sketches, or wish to in the future? Whether you are a beginner, a seasoned p5.sound.js user, or someone who is curious about p5.sound.js, all members of the p5.js community are welcome to contribute feedback!

After many months of collaborative work, the new p5.sound.js is ready for community discussion and iteration. Here are some examples of how to use the new p5.sound.js to get started, as well as the new p5.sound.js reference. Read more about this update on Medium.

Most of the changes to the library make the source code more readable, and easier to contribute to. The add-on library is intended to act more like a wrapper for Tone.js: a well maintained, and extensive library for web audio. p5.sound.js will provide a more focused toolset and iterative method for working with sound in the browser. Please review and comment on the changes to classes and methods in the upcoming p5.sound.js 2.0.

Coding Experience

There are also ongoing improvements to that you can help discuss, review, use, & test:

  • Friendly Error System (FES): discuss & review in #7752
  • Reporting visual testing results: discuss & review in #7618
  • TypeScript support: review & discuss in #7862
  • TypeScript & ESM: use, test, & report issues to help keep improving it!

Additionally to these features, a number of improvements are also forthcoming in related repositories:

[p5.js-compatibility]: This repository contains both a guide for transitioning from p5.js 1.x to 2.0, and compatibility add-on libraries that enable users to access 2.0 features in a backwards-compatible way! We’re welcoming contribution in this library, too, such as improving touch and keyboard events compatibility addon #26

🆕p5.js-addon-template: Interested in authoring add-on libraries with p5.js 2.0? Here are some new resources to help you get started: starter template you can fork when creating a new add-on library and expanded contributor guide for creating add-on libraries. Additional in-progress features to improve add-on development include an events API and custom lifecycle hooks - stay tuned!

Previous Discussions

The p5.js 2.0 project has been in planning and development since 2023 (read more about the history of 2.0). This pinned issue is the most current update of the current milestone, and your input is welcome! Here are the previous pinned updates:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions