shaking my head

Working with L5 this summer!

Collaborating with Lee Tusman and the Processing Foundation to build out L5.

May 28, 2026

What is L5?

L5: A Processing Library in Lua
L5 is a fun, fast, cross-platform, and lightweight implementation of the Processing API in Lua. It is a free and open source coding library to make interactive artwork on the computer, aimed at artists, designers, and anyone that wants a flexible way to prototype art, games, toys, and other software experiments in code.
https://l5lua.org/

L5 is a creative coding library built in Lua, but ported from Processing and p5.js. Lua1 is an exceptionally lightweight and fast scripting language with the ability to work cross-platform.

In an email written by Mike Pall in 2007

Subject: Re: Lua on cell phones

- Lua is small: the Lua interpreter easily fits in under 100 kilobytes including the base libraries.
- Lua is simple, but not simplistic: Lua has a simple, yet powerful syntax which fits on a single page. The semantics are consistent and intuitive.

This is particularly desirable in an age where versioning feels out of control2 and Lua has only had minor updates since 2003.

timeline of Lua versions released from 1993. Major versions in 1993, 1995, 1997, 2000, and 2003.
From https://www.lua.org/images/timeline.png

So it can run super-crazy fast on a modern machine, but it also works with low-power and older machines. Not only that, but think about what you could do with a microcontroller!

L5 built with Permacomputing Philosophies

Permacomputing is both a concept and approach to handling resilience in technology. It is a philosophy centered around limiting e-waste through sustainable development and usage of these tools.

My mentor and core contributor of the L5 project, Lee Tusman, wrote about it here:

L5
L5 is a fun, fast, cross-platform, and lightweight implementation of the Processing API in Lua. It is a free and open source coding library to make interactive artwork on the computer, aimed at artists, designers, and anyone that wants a flexible way to prototype art, games, toys, and other software experiments in code.
https://permacomputing.net/L5/

These regenerative practices stem from permaculture3, a resource-sensitive agricultural design. For computers, this centers the material contexts in which technology is derived. As we become increasingly "modern", the physicality of a device (or person) becomes increasingly abstracted. So, it becomes ever more important of highlighting and building software that is mindful of material.

Lee also organizes the NYC permacomputing meetups. Although we are on hiatus for the summer, this past meetup discussed energy and material led by speaker Alex Nathanson, who built Solar Protocol.

Solar Protocol
A naturally intelligent network programmed by the sun.
https://solarprotocol.net/

What's my deal?

Yeah, who am I? As a creative coding educator, I spend a lot of my time teaching and exploring JavaScript and p5. This summer I will be working on L5 with Lee and the Processing Foundation, funded through Google Summer of Code.

Although typically targeted towards students, the program through Google is designed to introduce new contributors to projects in open source communities. By submitting a proposal to a specific project (L5) that is affiliated with an organization (Processing Foundation), you (I) can get paid for your (my) open source contributions. They do this every summer with the intention of increasing interest and development of open source projects.

Official GSoC Proposal (+ Updates)

Google Summer of Code
Google Summer of Code is a global program focused on bringing more developers into open source software development.
https://summerofcode.withgoogle.com/programs/2026/projects/H2LUlwc4

There are three central arcs to the summer:

  1. 1.

    Building out L5 tooling, experimenting with a VSCode extension4, packaging and build tools

  2. 2.

    Building out community infrastructure to share and develop L5 projects

  3. 3.

    Expand the L5 website with emphasis on first-time setup and usability.

From my original proposal, I refined the timeline with Lee and Kit to solidify more of the weekly objectives.

Weekly Schedule
Week 1:
Week 2:

Weekly Schedule

Week 1:

  • Make GitHub issues to handle feedback from usability testing surveys

  • Identify and track existing issues in website documentation

  • Send out surveys among current p5.js students

Week 2:

  • Build out community guidelines based off of: p5.js community, ml5.js community, and permacomputing (including the L5 page on it).

  • Look at other open-source references, such as Arduino, Hydra Live Coding.

  • Co-lead L5 workshop and surveying at ITP camp.

Week 3:

  • Analyze survey responses and set up meetings to see what other changes could be made.

  • Start with quick wins on documentation updates from week 1 issues. This will likely focus most on “getting started” changes.

  • Get early community feedback on changes so far. 

Week 4:

  • Start listing out tutorials that need to be added. 

  • Begin work on VS Code Extension with the following objectives:

    1. 1.

      Compile and run L5 for local development

    2. 2.

      Bundle L5 and Love2D into a single executable for sharing.

Week 5:

  • Continue work on VS Code Extension. 

  • Tooling experiment #1: Test LoveJS to run L5 in the browser. Test with VSCode integration and whether or not LoveJS is a viable tool for sharing in the browser or to continue with sharing executable.

  • Begin planning on a week-long jam to be run by the end of the summer. Set up itch.io page to host L5 as a tool and start building assets for the jam promotion

Week 6:

  • Get feedback on VS Code extension and iterate on feedback. 

  • Write tutorials using VS Code extension.

  • Tooling experiment #2: Create a repository for apt or homebrew package install for L5.

Week 7:

  • Facilitate Github issues and delegate contributors. Update new issues based on technical tests in week 6.

  • Tooling experiment #3: Fork Love2D to build a single executable with a program loader screen.

Week 8:

  • Make changes based on feedback from VS Code extension

  • Tooling experiment #4: Based on viability from week 5 research, fork LoveJS to build an executable for the web.

Week 9:

  • Document existing experiments.

  • Research into community project sharing:

    • Mastodon bot (potential server: genart.social)

    • Sharing via a form and an approval

    • Online computational magazines (https://randomwalk.club/)

    • Translating to p5 for browser integration

    • Uploading to itch.io

Week 10:

  • Begin community jam (7-10 days long hosted on itch.io) and assist with needs from the community. Sam will be facilitating the jam, assisting with any L5 issues.

  • Tooling experiment #5: Test using Codeberg as the code repository and if Codeberg pages is a better platform to host. 

  • Make updates for the L5 website and research into other Static-Site Generators that will have better long-term support.

Week 11:

  • Adjust tutorials as needed based on feedback from the jam. Any documentation updates, tutorial changes, or other quick fixes will be implemented and create Github / Codeberg issues for larger projects to encourage community development.

Week 12:

  • Write up a blog on documentation updates, make guidelines for documentation contributions, and create handoff guide for future contributions.

A Call for Contributors

If you got to the end here and you are interested or want to get involved in this process there are a couple ways.

Follow the website documentation updates. You are welcome to contribute to the code base based on any issues you have found (or issues that I have made!)

GitHub - L5lua/L5-website: Source code for the L5 website with downloads, documentation, tutorials, and learning resources.
Source code for the L5 website with downloads, documentation, tutorials, and learning resources. - L5lua/L5-website
https://github.com/L5lua/L5-website

Follow the tooling updates. These will probably not be in the L5 code base itself, but will be a new repository under the L5 organization.

L5
Processing-like creative coding in Lua. L5 has 2 repositories available. Follow their code on GitHub.
https://github.com/L5lua

If you want to be contacted about new features or want to beta-test some upcoming changes, please fill out this form:

L5 Interest Form
One of Google Summer of Code (GSOC) projects is updating documentation and usability for https://l5lua.org/ a Lua creative coding language based on Processing and p5.js This form is to solicit interest if you would like to participate with contributing and testing the new experiments outlined in the GSoC proposal "Expanding L5 Tooling, Starter Flow, and Community Ecosystem" by sam heckle, mentored by Lee Tusman.
https://forms.gle/jhmrAPk4Jzufe5X17

Anyway

That's all for now! I will be making some longer posts on this Leaflet about this project that will be tagged

But am also trying be better about a public writing practice.

xx smh


1.
means "moon" in Portuguese
2.
why did Apple change all their major versions based off years like a car?
3.
American high schoolers might be familiar with The Three Sisters
4.
although I recently tweeted about switching to neovim and I'm historically a VSCodium user

l5lua
gsoc
lua

shaking my head

longer, essay-like posts to articulate what's going on in there