‹ Reports
The Dispatch

OSS Report: processing/p5.js


WebGL Performance Issues Highlight Development Challenges for p5.js

p5.js, a JavaScript library for creative coding, continues to engage its community with ongoing enhancements and bug fixes, though recent performance issues in WebGL mode have raised concerns.

The project, designed to make coding accessible to artists and beginners, has seen significant activity addressing both functionality and accessibility. Recent discussions have focused on improving the library's documentation and performance, particularly in WebGL rendering. This reflects a commitment to enhancing user experience and maintaining the library's relevance in modern web development.

Recent Activity

Recent issues and pull requests indicate a focus on performance optimization and documentation improvements. Notable issues include #7237, which highlights performance bottlenecks in _edgesToVertices, and several documentation-related bugs such as broken links (#7227, #7222). These issues suggest a need for both technical refinement and resource maintenance.

Team Members and Activities

  1. Kenneth Lim (limzykenneth)

    • 20 commits focusing on refactoring for version updates and CI enhancements.
  2. Dave Pagurek (davepagurek)

    • 15 commits addressing WebGL issues and merging PRs.
  3. Qianqian Ye (Qianqianye)

    • 11 commits fixing documentation links and updating contributor docs.
  4. Garima (Garima3110)

    • 2 commits related to window size checks.
  5. Jeanette Andrews (jeanetteandrews)

    • 1 commit fixing an ellipse clipping bug.

The team is actively engaged in both collaborative efforts and individual contributions, with a strong emphasis on documentation maintenance and testing improvements.

Of Note

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 22 13 39 0 1
30 Days 31 20 65 0 1
90 Days 58 37 162 0 1
1 Year 312 196 1662 1 4
All Time 3872 3586 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Kenneth Lim 3 3/2/0 20 50 7914
Dave Pagurek 1 2/2/0 15 42 1386
allcontributors[bot] 1 19/19/0 38 2 199
Qianqian Ye 1 0/0/0 11 16 134
RandomGamingDev 1 0/1/0 4 1 76
FORCHA PEARL 1 6/2/0 6 2 37
Garima 1 1/1/0 2 1 36
Vishesh Rawal 1 1/1/0 2 4 24
Orr Kislev 1 1/1/0 1 2 16
Rishi 1 1/1/0 1 1 12
Antoinette Bumatay-Chan 1 3/2/0 2 2 10
Diya Solanki 1 2/1/0 1 1 6
Shoury Singh 1 2/2/0 2 2 6
Psychpsyo 1 1/1/0 1 1 4
Ashwani Dey 1 2/2/0 2 2 4
Luke Plowden (lukeplowden) 1 2/1/1 1 1 4
PimTournaye 1 1/1/0 1 1 3
Tibor Udvari 1 2/1/0 1 1 3
Ben Palevsky 1 1/1/0 1 1 2
willallstet 1 1/1/0 1 1 2
jeanette 1 1/1/0 1 1 1
kit (ksen0) 0 1/0/0 0 0 0
Monica Powell (M0nica) 0 1/0/0 0 0 0
Nima Niazi (nimanns) 0 1/0/0 0 0 0
Miaoye Que (sproutleaf) 0 4/4/0 0 0 0
Sarah Ciston (sarahciston) 0 0/1/0 0 0 0
Abhinav kumar (Abhinavcode13) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The p5.js GitHub repository currently has 286 open issues, with recent activity indicating a diverse range of topics being discussed, including bug reports, feature requests, and enhancements. Notably, several issues have emerged around performance concerns, particularly in WebGL mode, and the need for improved documentation and accessibility features. A recurring theme is the enhancement of user experience through better error handling and more intuitive API design.

Several issues reflect a strong focus on improving the library's accessibility and usability for beginners, such as proposals for clearer documentation and additional features that simplify common tasks. There are also discussions about updating existing functionalities to align with modern JavaScript practices.

Issue Details

Here are some of the most recently created and updated issues:

  1. Issue #7237: Long time spent in _edgesToVertices when assembling shapes into composite models

    • Priority: Bug
    • Status: Open
    • Created: 4 days ago
    • Updated: N/A
  2. Issue #7236: Enhance reference of blend() and Image.blend() and make it consistent with blendMode()

    • Priority: Enhancement
    • Status: Open
    • Created: 4 days ago
    • Updated: N/A
  3. Issue #7230: 1.x Compatibility Addon

    • Priority: Feature Request
    • Status: Open
    • Created: 3 days ago
    • Updated: 3 days ago
  4. Issue #7228: Reference examples for blendMode() need distinct colors to highlight differences

    • Priority: Bug
    • Status: Open
    • Created: 4 days ago
    • Updated: N/A
  5. Issue #7227: Fix broken links in contributor_docs/fes_contribution_guide.md

    • Priority: Bug
    • Status: Open
    • Created: 4 days ago
    • Updated: N/A
  6. Issue #7222: Fix broken link in contributor_docs/how-to-add-friendly-error-messages.md

    • Priority: Bug
    • Status: Open
    • Created: 4 days ago
    • Updated: N/A
  7. Issue #7218: Fix broken links in contributor_docs/access.md

    • Priority: Bug
    • Status: Open
    • Created: 5 days ago
    • Updated: N/A
  8. Issue #7217: Typo on blendMode(SUBTRACT) example

    • Priority: Enhancement
    • Status: Open
    • Created: 5 days ago
    • Updated: 4 days ago
  9. Issue #7204: Fix broken and missing links in En, Jp, zh-Hans contributior_docs web_accessibility.md

    • Priority: Bug
    • Status: Open
    • Created: 6 days ago
    • Updated: 5 days ago
  10. Issue #7202: webGL Curves show weird behaviour

    • Priority: Bug
    • Status: Open
    • Created: 7 days ago
    • Updated: 4 days ago

Analysis of Notable Issues

  • The issue regarding long processing times in _edgesToVertices (#7237) suggests potential performance bottlenecks that could affect user experience, especially for applications requiring real-time rendering.

  • Several issues related to broken links in documentation (#7227, #7222, #7218) indicate a need for regular maintenance of documentation resources to ensure users can easily find relevant information.

  • The enhancement requests (#7236, #7202) reflect ongoing efforts to improve the library's usability and consistency across functions, which is crucial for attracting new users and retaining existing ones.

  • The focus on accessibility improvements through clearer documentation and features like blend() consistency highlights the community's commitment to inclusivity.

In summary, the recent activity within the p5.js GitHub repository showcases a vibrant community actively engaged in enhancing both the functionality and accessibility of the library while addressing critical performance issues that could impact user experience.

Report On: Fetch pull requests



Report on Pull Requests

Overview

The analysis of the pull requests (PRs) for the p5.js project reveals a total of 50 open PRs, with a variety of changes aimed at enhancing functionality, fixing bugs, and improving documentation. The recent activity indicates a strong focus on modularization, accessibility improvements, and addressing community feedback.

Summary of Pull Requests

  1. PR #7257: Module syntax conversion

    • State: Open
    • Created by: Kenneth Lim
    • Significance: This draft PR aims to convert existing modules to a new syntax to enhance modularity in the library. It provides guidance for implementers on how to adopt the new structure.
  2. PR #7256: Make shaders define what they get used for.

    • State: Open
    • Created by: Garima
    • Significance: This work-in-progress PR addresses shader usage documentation, ensuring clarity on their applications within the library.
  3. PR #7246: Add logValue Method for Range Inputs to p5.Element

    • State: Open
    • Created by: Nima Niazi
    • Significance: Introduces a new method for logarithmic mapping of slider values, enhancing user control over range inputs.
  4. PR #7243: Fix broken links in contributor_docs/access.md

    • State: Open
    • Created by: Antoinette Bumatay-Chan
    • Significance: Resolves broken links in documentation, contributing to improved accessibility of resources.
  5. PR #7241: fix: broken links in lerpColor()

    • State: Open
    • Created by: Monica Powell
    • Significance: Fixes broken links related to the lerpColor function, ensuring that users have access to correct references.
  6. PR #7229: fix: added WEBGL mode for correct blendMode(SUBTRACT) behavior

    • State: Open
    • Created by: Abhinav kumar
    • Significance: Addresses blend mode behavior in WebGL, improving rendering consistency.
  7. PR #7207: Fixed uniform shader reset

    • State: Open
    • Created by: FORCHA PEARL
    • Significance: Fixes issues related to shader resets, enhancing stability in rendering.
  8. PR #7206: Line.vert fix for small units

    • State: Open
    • Created by: Tibor Udvari
    • Significance: Addresses issues with line rendering at small sizes, improving visual fidelity.
  9. PR #7205: Refactor arc and rect to use canvas methods rather than curves

    • State: Open
    • Created by: kit (ksen0)
    • Significance: Refactors shape drawing methods for better performance and consistency with canvas APIs.
  10. PR #7199: Added example and Unit tests for ClampToZero method on p5.Vector

    • State: Open
    • Created by: FORCHA PEARL
    • Significance: Introduces unit tests and examples for a new vector method, enhancing documentation and reliability.
  11. PR #7187: Added textAscent and textDescent functions on Webgl

    • State: Open
    • Created by: FORCHA PEARL
    • Significance: Adds new text measurement functions for WebGL context, improving text rendering capabilities.
  12. Additional PRs focus on fixing broken links, adding translations, improving accessibility features, and enhancing overall library functionality.

Analysis of Pull Requests

The current set of open pull requests showcases several key themes and areas of focus within the p5.js development community:

1. Modularization Efforts

A significant number of recent PRs are dedicated to converting existing code into a more modular format (e.g., PR #7257). This shift is aimed at improving maintainability and usability across different contexts where p5.js might be employed. The emphasis on modular syntax indicates an ongoing effort to modernize the library's architecture in preparation for future enhancements.

2. Accessibility and Documentation Improvements

Several PRs are focused on fixing broken links and enhancing documentation (e.g., PRs #7243, #7241). This reflects a commitment to ensuring that users can easily navigate resources and find relevant information without encountering dead ends. The inclusion of accessibility features is also evident in PRs that address user interface elements like sliders (e.g., PR #7246).

3. Bug Fixes and Feature Enhancements

Numerous contributions aim to resolve specific bugs or enhance existing features (e.g., PRs #7205, #7207). These fixes not only improve the user experience but also contribute to the overall stability of the library. For instance, addressing blend mode behaviors in WebGL (PR #7229) is crucial for maintaining visual consistency across different rendering contexts.

4. Community Engagement

The active involvement of contributors from diverse backgrounds highlights the collaborative nature of p5.js development. Many PRs are initiated by community members responding directly to issues raised within the repository or through discussions in forums (e.g., PRs addressing specific feature requests or bugs). The use of "all-contributors" specifications further emphasizes recognition for various types of contributions beyond code alone.

5. Long-standing Issues

Some older PRs remain open without resolution or significant progress (e.g., PRs that have been pending review or require further discussion). This may indicate resource constraints or prioritization challenges within the development team as they balance ongoing enhancements with maintaining existing functionality.

Conclusion

Overall, the current landscape of pull requests for p5.js reflects a vibrant community actively working towards enhancing the library's capabilities while ensuring it remains accessible and user-friendly. The focus on modularization, bug fixes, and comprehensive documentation will likely contribute positively to the project's longevity and usability as it continues to evolve in response to user needs and technological advancements.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Activities

  1. Qianqian Ye (Qianqianye)

    • Recent Activity: 11 commits with 134 changes across 16 files.
    • Focused on fixing broken links in documentation and updating contributor docs.
    • Collaborated with multiple team members on various pull requests.
  2. Shoury Singh (shourysingh07)

    • Recent Activity: 2 commits with 6 changes across 2 files.
    • Worked on fixing broken links in the p5.js website.
    • Collaborated with Qianqian Ye.
  3. Vishesh Rawal (visheshrwl)

    • Recent Activity: 2 commits with 24 changes across 4 files.
    • Fixed broken links for p5.js references and updated README.md.
    • Collaborated with Qianqian Ye.
  4. Dave Pagurek (davepagurek)

    • Recent Activity: 15 commits with 1386 changes across 42 files.
    • Focused on merging pull requests, fixing visual tests, and addressing WebGL issues.
    • Collaborated extensively with Kenneth Lim and other team members.
  5. Jeanette Andrews (jeanetteandrews)

    • Recent Activity: 1 commit with 1 change across 1 file.
    • Fixed a clipping bug in ellipses.
  6. Antoinette Bumatay-Chan (aleannab)

    • Recent Activity: 2 commits with 10 changes across 2 files.
    • Worked on fixing broken links in contributor documentation.
  7. Ashwani Dey (ashwanidey)

    • Recent Activity: 2 commits with 4 changes across 2 files.
    • Fixed broken links in documentation.
  8. Ben Palevsky (benpalevsky)

    • Recent Activity: 1 commit with 2 changes across 1 file.
    • Fixed a broken README link.
  9. Tibor Udvari (TiborUdvari)

    • Recent Activity: 1 commit with 3 changes across 1 file.
    • Added properties to camera settings.
  10. Kenneth Lim (limzykenneth)

    • Recent Activity: 20 commits with 7914 changes across 50 files.
    • Focused on refactoring for p5.js version updates, fixing tests, and enhancing CI processes.
  11. Garima (Garima3110)

    • Recent Activity: 2 commits with 36 changes across 1 file.
    • Addressed issues related to the window size check upon instantiation.
  12. Forchapeatl (Forchapeatl)

    • Recent Activity: 6 commits with 37 changes across 2 files.
    • Worked on various fixes including pixel offsets and documentation updates.
  13. Psychpsyo

    • Recent Activity: 1 commit with 4 changes across 1 file.
    • Fixed comments related to camera functionality.
  14. Orr Kislev (orrkislev)

    • Recent Activity: 1 commit with 16 changes across 2 files.
    • Fixed JsDoc comments in the codebase.
  15. DenisovichDev (Rishi)

    • Recent Activity: 1 commit with 12 changes across 1 file.
    • Updated code blocks in vertex.js.
  16. Pim Tournaye

    • Recent Activity: 1 commit with 3 changes across 1 file.
    • Fixed an imageLight panorama shader bug.
  17. RandomGamingDev

    • Recent Activity: 4 commits with 76 changes across various files.
    • Focused on adding features and fixing bugs related to color palettes.

Patterns and Themes

  • The team is actively engaged in maintaining documentation, particularly focusing on fixing broken links, which is crucial for user accessibility and community engagement.
  • There is a strong emphasis on collaborative work, as seen by multiple contributors working together on similar issues or features, particularly around documentation and testing improvements.
  • A significant amount of activity is centered around preparing for the upcoming version of p5.js, indicating a shift towards modularization and enhanced testing frameworks led by Kenneth Lim and Dave Pagurek.
  • The contributions from the bot indicate ongoing automated updates to documentation, reflecting a well-integrated CI/CD process within the team’s workflow.

Conclusions

The development team is highly active, focusing on both feature enhancements and critical bug fixes while maintaining an inclusive approach to contributions from various community members. The recent activities indicate a strong commitment to improving the library's usability and accessibility, which aligns well with the project's overarching goals of inclusivity and community engagement.