Source-linked AI summary

Processing/p5 Defined through Practice and Learning

Kit Kuksenok, Lee Tusman

arXiv:2608.26614v1cs.SEcs.HC

TL;DR

Processing/p5 sketches share important similarities across host languages, but the software decisions constituting that experience are not clearly articulated across implementations. Through case studies of p5.js and L5, the paper synthesizes five guiding aspects and shows how other creative tools operationalize them differently, highlighting opportunities for new Processing/p5 libraries.

  • Problem

    The paper addresses how Processing/p5’s consistent creative-coding priorities can be articulated across programming languages with different affordances and community norms.

  • Method

    The authors analyze implementations of Processing/p5 in JavaScript and Lua, then synthesize their reflections into five design aspects and compare alternative operationalizations.

  • Results

    The paper proposes five guiding aspects for designing Processing/p5 creative-coding experiences, illustrated through differing choices in tools including Hydra, Arduino, Twine, and Jupyter Notebook.

  • Takeaways & Limitations

    The framework highlights opportunities to create Processing/p5 libraries that support learning, research, and artistic practice in creative coding and algorithmic art.

  • Takeaways & Limitations

    The framework reflects a maintainer/contributor perspective and requires bottom-up empirical study with novices, educators, and practitioners.

Abstract

from arXiv · show

Processing/p5 libraries across different programming languages enact consistent priorities for creative coding as a designed experience. While different programming language ecosystems, like Java and JavaScript, are each associated with their own affordances, community norms, and patterns of use, Processing/p5 sketches across these languages share similarities. Based on case studies of building an implementation of Processing/p5 in two host languages, JavaScript and Lua, we propose a list of software decision-making guiding aspects that constitute Processing/p5, regardless of host language. We discuss this framework in the context of decisions in other exploratory and creative tools that demonstrate how each of the guiding aspects can be operationalized differently than in the case studies. The proposed list highlights opportunities for learning, research, and artistic practice through creation of new Processing/p5 libraries for creative coding and algorithmic art.

RELATED WORK

Prior work frames creative coding tools as mediators of algorithmic-art learning and practice, emphasizing accessibility, exploration, sequential coding, debugging, and community remixing. Studies of Processing/p5 and related systems inform the paper’s synthesis of design priorities across implementations.

  • Design priorities: Processing/p5 design prioritizes access through beginner-friendly content, localization, and intentional attention to other dimensions of inclusion.Documentation and error messages are identified as important sites for access and inclusion.
  • Design priorities: Processing/p5 supports iteration and exploration through intuitive defaults, minimal boilerplate, example-driven learning, open-ended sketches, and immediate visual feedback.Related work describes code sketching as rapidly generating, discarding, and adapting creative variations.
  • Design priorities: Processing/p5 encourages sequential instructions by making sketch code readable as linear progression with observable accumulation of graphical state and imperative commands.The approach favors operations on evolving state, such as pushing to and popping from a queue, over object-oriented organization.
  • Design priorities: Processing/p5 supports learning from debugging through Friendly Error System behavior, beginner-oriented naming, parameterization, and API choices that anticipate common mistakes.These choices orient error behavior toward learning where possible.
  • Community practices: 30% of 1.2 million OpenProcessing p5.js sketches were remixed, and 55.3% of those remixes edited pre-existing parameters.The ecosystem combines tutorials emphasizing sharing and remixing with a large collection of public learner-created sketches.
  • Research framing: Creative coding tools mediate algorithmic-art learning and practice through their affordances, accessibility, governance, and support for novice engagement and sustained artistic practice.This prior work informs the case-study synthesis of Processing/p5 implementations.

SYNTHESIS

The synthesis identifies five guiding aspects that shape a Processing/p5 creative-coding experience across implementations. These aspects prioritize contextual accessibility, exploratory practice, and code-oriented design choices rather than feature maximalism alone.

  • Synthesis: The synthesis organizes reflections on p5.js and L5 into five aspects guiding the design of a Processing/p5 creative-coding experience.The aspects are ordered from more contextual to more code-oriented and are not presented as unique to Processing/p5.
  • Technical priorities: L5 preserves Processing/p5 functionality while prioritizing minimal dependencies, low resource consumption, and long-term stability on older hardware.L5 omits 3D drawing capabilities and focuses development on debugging core functionality for fidelity across computers and older machines.
  • Contextual accessibility: Processing/p5 situates language and environment design in users’ material, social, and embodied contexts, including accessibility features such as screen-reader support.p5.js’s describe(…) method is identified as an essential language feature supporting broader entry points for users and contributors.
  • Documentation and learning: Processing/p5 documentation is treated as part of the codebase, making bugfixing include both code changes and revisions that clarify gaps between API intent and learner expectations.Issues and bug reports can reveal documentation gaps, while addressing technical errors includes designing bridges for users learning by doing.
  • Exploratory practice: The sketch structure and API support continuous exploration by separating setup from draw loops, enabling event-driven drawing, and minimizing syntax needed for meaningful visual iteration.This low-floor design is paired with a high ceiling through access to add-on libraries and broader host-language or browser capabilities.
  • Code organization: Processing/p5 privileges sequential composition, using stateful drawing commands and transformations to create a legible imperative sequence without requiring object manipulation.Commands such as fill(255, 0, 0) affect subsequent shapes until explicitly changed.

DISCUSSION

The five Processing/p5 guiding aspects can be operationalized differently across creative and exploratory programming tools, providing a framework for comparing accessibility in learning and creative practice. The framework also motivates new Processing/p5 variants while requiring bottom-up empirical validation.

  • Framework implications: The framework helps developers identify commonalities and differences in tools’ accessibility for learning and creative practice, even when those tools did not use it during development.The authors present it as a way to examine Processing/p5 and other creative or exploratory programming tools.
  • Alternative operationalizations: Hydra uses community-sketch startup and parameter randomization to operationalize situatedness and iteration and exploration.It supports beginner-friendly getting-started features, community-written programs, and visual parameter-space exploration in a browser-based coding environment.
  • Alternative operationalizations: Arduino operationalizes beginner-friendly documentation through a hierarchical tutorial catalogue that makes heterogeneous devices easier to navigate.Its development is situated within a physical device and a web-based alternative to downloadable software.
  • Alternative operationalizations: Twine and Jupyter Notebook support learning from debugging through different mechanisms: visible program-state inspection in Twine and in-environment package management in Jupyter Notebook.Twine avoids requiring web developer tooling, while Jupyter maintains package management within an iterative workflow.
  • Framework implications: New Processing/p5 variants can extend existing fluency to new host languages, technical ecosystems, priorities, or constraints, but the framework remains a maintainer/contributor synthesis requiring bottom-up empirical study.Future research is proposed with interviews or surveys of creative coding novices, educators, and practitioners.
Loading 2608.26614v1…