Leave a comment

Processing Foundation Fellows 2016 & Open Call for 2017!

The Processing Foundation seek to support artists, coders, and collectives in visionary projects that conceive a new direction for what Processing as a software and a community can do. With this idea the first open call for Processing Foundation Fellowships was launched last year. A Processing Fellow is granted a stipend and mentor for a period of five months in order to research and develop a new project of their choosing. The aim is to support individuals and collectives in developing tools of empowerment and access at the convergence of art and technology.

As leader of the p5.js project and Foundation board member since 2015, I was thrilled to see so many fantastic applications this year. Instead of the initial plan for two fellows, we decided to accept five teams! Here is an overview of their work.

Tega Brain and Luisa Pereira, Learning P5.js

Tega and Luisa’s project focused on continuing work begun at the p5.js Contributors Conference last year, to create and edit a collection of online educational resources on specific programming topics in p5.js.

↑ Luisa and Tega at the p5.js Contributors Conference (Image credit: Taeyoon Choi)

Working with a number of collaborators, they ported many original tutorials from Processing and created some new ones, too. They also revamped the p5.js tutorials page, adding new resources and organizing the information to be more easily navigable.

One of the most exciting additions was the creation of a video tutorial that provides a beginner-level introduction to developing the p5.js library. It is a goal with p5.js that anyone who is interested is able to help build the platform. However, all of the files and conventions of the p5.js development environment can be confusing for someone new to the project. Luisa’s illustrated video makes no assumptions about what someone might already know, explaining the file structure and development tools and processes clearly and concisely. There’s also a version in Spanish!

Their work concluded with a Learning to Teach panel led by Tega at the International Center of Photography. The panel, with educators De Angela Duff (New York University), Aankit Patel (Department of Education), and David Sheinkopf (Pioneer Works), focused on pedagogy and the creation of environments and tools for learning interdisciplinary computational arts practices in universities, high schools, and creative communities.

↑ Learning to Teach panel. (Image credit: International Center of Photography)

Jess Klein and Atul Varma, Friendly Errors

Jess Klein and Atul Varma had the goal of “making p5.js the most helpful JavaScript library in the world” by improving its friendly error system through the lens of human-centered design. They began by observing the most common errors beginners encounter through learning and teaching p5 themselves, and observing others doing so.

Jess, new to p5.js, began by reading the documentation materials and trying to follow the tutorials to create her own sketches. As she worked, she identified the confusing parts and pain points of the platform and learning materials. Jess’s work shows that you need not be an expert programmer to contribute to development, and that actually a beginner can offer insights that someone more familiar with the system doesn’t have.

↑ Notes while learning p5.js. (Image credit: Jess Klein)

The next step of the project was to use their insights to devise new ways of making the p5.js library even more helpful. Atul and Jess made a number of improvements to p5.js error reporting, trying to catch common errors and provide more information about how to resolve them.

For example, with JavaScript, it is easy to overwrite existing variable or function names without knowing it. This would cause a previously defined variable or function to fail or work incorrectly, causing much confusion. To remedy this, they added functionality that would notice if the user attempts to overwrite a p5.js variable or function, and warn them of what was happening.

↑ Documentation of new p5.js friendly errors. (Image credit: Atul Varma and Jess Klein)

In observing teaching sessions, Atul noticed that demonstrating and sharing simple examples in class was often unwieldy — they were hard to format, and often required students copying and pasting code from a website into their own editors to see the example in action. In response, he created p5.js widget, a reusable tool that makes it easy to embed editable p5.js sketches in blog posts, interactive curricula, and other places.

↑ p5.js widget (Image credit: Atul Varma)

You can read more about Jess and Atul’s process, insights, and innovations on their project blog.

Claire Kearney-Volpe, The Processing Accessibility Project

The goal of Claire Kearney-Volpe’s work was to make the forthcoming p5.js editor, learning modules, and web content usable by people who are blind or visually impaired. Working with an advisory panel of users and experts in the field, Claire researched, designed, developed, and tested prototypes of interfaces for the p5.js editor and learning resources. The aim was to make them accessible across a variety of browsers, operating systems and assistive technologies.

↑ Accessibility workshops. (Image credit: Claire Kearney-Volpe)

↑ Preferences panel including accessibility options for forthcoming p5.js web editor.

Some of the most interesting and experimental work involved the output of the editor, originally an HTML canvas that was impenetrable by screenreaders (a software application that converts text on a page into audio speech). Claire, along with Mathura Govindarajan and Cassie Tarakajian, worked on creating a “Shadow DOM” that dynamically interprets the visual and spatial outputs on screen and renders them into a text description.

The preferences panel of the editor allows the user to choose from various types of feedback based on what type of sketch they are creating. For example, if they are making a static drawing, they can choose to have the canvas described in plain text. If they are creating an animation, they can choose to be alerted when objects pass into particular areas of the canvas. Stay tuned for the release of the p5.js web editor in 2017, which will include all of these features!

The fellows ended up collaborating in ways that drew on each of their individual projects. In the Signing Coders workshop series led by p5.js collaborator Taeyoon Choi, Luisa Pereira, Atul Varma, and Claire Kearney-Volpe joined forces to teach p5.js to youth that are deaf or hard of hearing. They experimented with a variety of custom learning tools and activities, iteratively developed over the series.

↑ Signing Coders workshop (Image credit: Taeyoon Choi)

Allison Parrish, Processing.Py

Allison’s Fellowship proposal include a wide range of improvements for the project. Processing was initially released with a Java-based syntax, and with a language of graphical primitives that took inspiration from OpenGL, Postscript, Design by Numbers, and other sources. With the gradual addition of alternative programming interfaces — including JavaScript and Ruby — it has become increasingly clear that Processing is not a single language, but rather, an arts-oriented approach to learning, teaching, and making things with code. Jonathan Feinberg started to extend the ideas behind Processing into Python. Other contributors, including Allison, have been instrumental to its current iteration as a Mode for Processing 3.

Allison’s fellowship work was highly technical, but also focused on education. In addtion to fixing a number of issues with, she created two new tutorials, “ on the Command Line” which shows how to break free from the Processing IDE to develop sketches on the command line and “Python, Jython and Java” which covers how brings together Python, Jython and Java.

Digital Citizens Lab, Coding Comic

The Digital Citizens Lab, consisting of Evan Wu, Sharon Lee De La Cruz, Leslie Martinez, sought to use p5.js as a tool for outreach and education, specifically designed for children of immigrants and people of color. They describe the goals of their Coding Comic project:

“The ed-tech industry does not consider the education inequity that urban children of color face. The industry assumes that there is a standard of education that all Americans are receiving and then build products based on this assumption. Coding Comic is a tool that emphasizes the logic behind coding instead of actual coding languages. Our goal is to create digital tools and resources for educators that can meet the needs of historically underserved children of color.”

They developed a platform where children can re-write and re-visualize a narrative by changing the logic of events, thus learning about coding in an implicit and intuitive way. When they understood the logic of the story and placed the correct elements or “variables” in the frame, they were rewarded with animations that reinforced their understanding.

↑ A scene from the Coding Comic web application. (Image credit: Digital Citizens Lab)

The Digital Citizens Lab recently presented their Coding Comic project and held a panel to discuss the challenges and working strategies for STEM teaching in schools with invited educators at the International Center of Photography.

↑ Digital Citizens Lab and STEM education panelists at the ICP. (Image credit: Digital Citizens Lab)

You can learn more about the ongoing work on their project website.

Open Call For 2017 Processing Fellows

We are so inspired and grateful for the work the fellows have done. Our call for 2017 Processing Foundation Fellows is currently open and the deadline is December 19th. It is more urgent than ever that we find new ways to empower people of all interests and backgrounds to learn express themselves creatively, and to reach those who might not otherwise have access to these tools and resources. We value enthusiasm, innovation, and a desire to learn, and encourage proposals that involve investigations into what a fellow may not already know how to do.

Apply here!


Leave a Reply

Your email address will not be published. Required fields are marked *