L5 Summer Round Up

It seems Week 12 has finally arrived, which means it is the conclusion of my Google Summer of Code.

See my past posts: Part 1, Part 2, Part 3, Part 4

L5

In the spring, I submitted public proposal and workshopped the timeline and description with my mentor Lee and the p5.js lead Kit. We landed on this:

This project will focus on L5 improvements in three parts. First, experimenting with editor tooling by building a VS Code extension alongside research on packaging and web-sharing mechanisms. Second, developing and testing community infrastructure for sharing and developing L5 projects, alongside introducing community guidelines. And third, improving and expanding the L5 website, with emphasis on first-time setup and usability. The overarching goals of this project are to ease starting flows for those new to Lua (or new to coding!) and develop stronger community engagement with sharing and developing L5 projects.

What was Built

Updates to L5 Website Github Workflows

Added templates to website issues #23

Updates to website

research and prototyped other site designs (see Part 2 of this blog series)

cleaned up navigation hierarchy #27

updated MacOS install instructions with extension and updated tutorial video for MacOS #29, #30

added Windows install tutorial #31

Created VSCode / VSCodium extension https://github.com/L5lua/L5-vscode-extension

Added "Run L5" button to allow for quick running of projects

Created and verified publishers on both OpenVSX and VS Marketplace

Created Github Workflows to release and publish extensions https://github.com/L5lua/L5-vscode-extension/blob/main/.github/workflows/publish.yaml

Experiments for other L5 tooling

Research into the creation of shareable L5 projects

create L5 html pages using https://alexjgriffith.itch.io/lovejs-player. Initially there was an issue with compling MacOS .love files, but that was resolved!

creating an HTML export in the extension using https://github.com/Davidobot/love.js or https://2dengine.com/doc/lovejs.html. We decided against packaging bloat for now.

Research into installing L5 via packaging tools like homebrew. MacOS uses a tool called "Gatekeeper" that prevents you from installing "unsecure" applications (or applications that don't pay Apple's licensing fee), which makes homebrew difficult to use. There was a former workaround by adding a --no-quarantine flag, but was deprecated in September 2025

Worked with University of Washington HCDE summer program called "Design for Passion" as a sponsor for a project for students to work on.

Community pages for L5

Mastodon: https://tldr.nettime.org/@L5

Itch.io: https://notapipe.itch.io/l5/devlog

Email: hello@l5lua.org

What is Upcoming

Adding "New Project" and "Build Project" buttons into extension #2

Updating language in documentation and extension functionality based on usability studies with the University of Washington. This will also allow merging of #2

L5 Community Jam hosted on itch.io running from September 25-October 3rd and presenting projects at the Processing Community Day in NYC. You can see the in-progress gamejam page here. We will be presenting at PCD and hopefully get more people involved in sustainable creative coding!

Continued maintenance and work on the extension and documentation sites!

A GSoC Retrospective

Throughout the summer, telling people I was participating in GSoC came with a few responses:

"Oh, I think I did that in college."

"Isn't that for students?"

"How do you feel about being paid by Google?"

My project was sponsored by the Processing Foundation (the org that maintains Processing and p5.js), which received a grant from Google to participate in the Summer of Code. GSoC is Google philanthropy; a program is designed to fund open source projects. As someone who has never participated substantially in open source, I now find myself an active contributor. GSoC enables anyone (not just students) to overcome the barrier of contribution.

At the end of the day, developing open source is volunteering for coders. Until now, it was difficult for me to find an entry point, questioning my own capability. With the support of the Processing Foundation and GSoC, I could overcome my own insecurities and financial barriers in participating in open source. I might have mixed feelings about funding coming from Google, but the ability to work on the project has an overall net positive in an industry dominated by extractive technology.

Software engineering is a super specific skillset. Designing and developing systems are not for the faint of heart. At the core of software design is empathy -- imagining yourself as another person to try and see how they approach the thing you built. Throughout this summer, Lee and I had lengthy conversations about the intentions behind every implementation. Oftentimes, building tools can be exciting for the sake of solving your own problems. But, beyond yourself, why is a tool useful for others?

In June, Lee and Kit published Designing L5: A Permacomputing Approach to Creative Coding stating "The 'friction' of assembling a toolchain becomes an opportunity to understand what software requires." Oftentimes the friction is what makes learning, providing opportunity for experimentation, playfulness, re-contextualization and reinforcement1. This goes way past testing 41 different shades of blue2, instead focusing on the magic of making something. The toolchain needs balance between friction and ease.

Simplicity often masks labor. Most of my summer was spent simplifying the L5 tooling. Instead of repeatedly dragging-and-dropping files or running from the command line3, L5 projects can run with the (literal) push of a button. This is the balance in abstracting different parts of the pipeline4. Weighing the value of learning the toolchain versus learning the actual tool. To those already familiar with the seams of a computer, the toolchain is negligible. Knowing how a system works is a foundational part of computational literacy. To those with differing access to a computer, or differing levels of literacy, the toolchain can be the highest barrier of entry. Making it easier to start is the first step in making a project and community more accessible.

Even though I was daunted by my first contributions to open source, I found it really wasn't different from teaching my classes. GSoC and The Processing Foundation made it easier for me to start my own journey in developing open source, which allowed me to spend my summer building out accessible entry points to creative coding and L5.

tldr; try L5 https://l5lua.org/ !

Make something! Break it! Participate in the jam in the fall! Go to a Processing Community Day near you! And send us your art :)

Thanks to the Processing Foundation, who partnered with Google Summer of Code, to support and fund me this summer. And mega thanks to Kit for their check-ins and resources they lent to this project. And SUPER mega thanks to Lee for mentoring me all summer because it was awesome to collaborate and I'm excited to see how L5 will continue to evolve in the future.

Thanks to Trey, Lulu, Maggie, and @bront.rodeo for reading over this post :) I love my friends

xx

smh

I'm sure there is some published pedagogical study, but also anecdotal data from teaching experience.

See Google's Marissa Mayer (2009)

Both of which are still possible! And outlined in https://l5lua.org/download/running/

I recently learned how a refrigerator works...but do I really need to know the system to know my food stays cold?