👽 Lee Tusman

← Nosebook 👃📓

L5 creative coding library - Spring 2026 updates

30 Apr 2026

7-minute read

L5 blobbies in a grid

L5 is a creative coding library in the family of Processing/p5, aimed at artists and learners, and responding to principles of permacomputing. L5 is in alpha, and was initially released in December 2025. It is implemented in Lua and uses the LÖVE framework under the hood. It is free and open source and is developed by a growing community of contributors.

This is a roundup blog post on recent work in spring 2026 relating to L5, its contributors, community, and maintenance.

We recognize all contributors to our open-source project, including code, documentation, issues and any other way that contributes to the library and its community.

15 people have pushed code to L5 or its documentation site. An additional several dozen people have emailed, discussed or otherwise sent in suggestions, feedback and improvement ideas for the library and its community. Thank you to everyone that has contributed to or uses L5.

Usability Studies

L5 usability studies report cover

Thanks to two teams of graduate students from University of Washington’s department of Human Centered Design and Engineering. Julie Lee, Ruiyi Gao, Keye Yu, Sabrina Kang conducted usability studies for beginners to L5 and creative coding. Kathryn Rambo, Swathi Sridhar, Manish Varrier, Auli Badoni conducted usability studies on those with previous creative coding experience in p5.js or similar. Their findings were published as two different reports, which are posted in this L5 discourse thread. We’ve already begun to address their findings, and will be spending the summer implementing as many of their suggestions as we can. A huge thank you to these teams of students for their helpful research into L5. This has been a seriously helpful experience working with them.

Workshops, Presentations and Discussions

L5 slide at the Libregraphics meetup

L5 was included in the State of LibreGraphics conference in Nuremberg, Germany in April.

There were introductory and creative computation workshops in L5 at the Algorithmic Art Assembly festival at Gray Area in San Francisco, at the Electronic Faire at Temple University’s Charles Library makerspace in Philadelphia, and online as part of CCFest.

I gave talks on L5 at Algorithmic Art Assembly, WordHack in Brooklyn, the Permacomputing NYC meetup, and at the Berlin Permacomputing Meet-Up.

Thanks to everyone that attended these workshops and talks, and for your feedback and discussion. These have led to ideas and improvements implemented and under consideration for L5 and its ecosystem.

Library Upates

L5 is in alpha and not at feature parity with Processing and p5.js completely. While we won’t be matching every one of their features - for example, it does not make sense to add p5’s DOM/browser functions - there is room for improvement to the library. Currently, L5 has about 200 functions implemented.

What is permacomputing slide - made in L5
L5 slideshow slide What is permacomputing? - made in L5

Some of the things we consider when deciding what to implement and add to the library include: is it part of Processing/p5? can it be implemented in native Lua or LÖVE? does it align with permacomputing principles broadly?

mask() function added

mask example image
mask() example from the reference

Most recently, L5 gained the function mask(), implemented to match p5.js’s implementation, which differs from the implementation in Processing. Specifically, L5 and p5.js both use another image’s alpha channel as the alpha channel for the current image, creating the mask effect. Processing differs by using the blue color channel. Thanks to Tomasz Stecko for the suggestion.

Custom shape parameters

Full implementation of parameters for building custom shapes in L5 using beginShape and endShape was implemented by George Ibrahim, with some assistance from Nitish Choudhary and myself. Thanks George and Nitish.

Code efficiency improvements and code reviews

and (Capital-EX on GitHub) contributed a number of efficiency improvements and code reviews to the library to help it run faster and smarter. These include improvements to the printOnScreen() buffer, reducing the cost of the text-wrapping function, fixes to make screen resizing more efficient, and suggestions for improvement with a default texture mesh, among other areas. Its insight into efficient algorithms and clean code and from reviewing published projects created with L5 have been a boon to the library.

Library organization

Nitish Choudhary made both code and organizational contributions, including reorganizing a docs folder, adding to contributing info, and engaging in conversations that helped clarify the L5 library’s principles.

Documentation site improvements

Quan Hoang contributed a new custom 404 page. Willy Aguirre corrected links for the Download page and George Ibrahim fixed links and improved the flow of pages in Getting Started and Tutorial pages. farvardin fixed a typo in example code, and Kartik Agaram fixed a typo on the Examples page. Thank you!

New Examples

Several community members have contributed code examples to the Examples page on the documentation site.

Walking Lines example

Walking lines example code showing roving lines intersecting with circles at their intersection points
Walking Lines example, by Orllewin

Orllewin contributed the Walking Lines example, which visualizes randomly drawn lines bouncing around within a defined box, focusing on the intersection points that emerge from their interactions.

Lots of p5.js examples ported over

constrain example in L5
constrain example in L5, contributed by Quan Hoang

A special thank you to Quan Hoang who contributed 12 (!) examples in the categories Input and Interaction and Animations and Variables sections, porting them from the Processing referencing into native L5 code.

Metaballs example

organic shapes moving around the canvas
Metaballs example in L5, by Tomasz Stecko

Thanks to Tomasz Stecko for the Metaballs example. Metaballs are blobby objects that meld together when they come into close proximity, appearing organically shaped. It is also reminiscent of cellular mitosis.

Thank you to these contributors!

L5 on the Processing Discourse forum

Processing Foundation has added a L5 category to the Discourse forum. It’s a little baby now. This could be a place for L5 conversation and sharing. I did not want to start a Discord server because I don’t find Discord joyful and I don’t think that’s the best place for a healthy permacomputing-inspired project and community.

Do you have thoughts on L5 or questions on how to use it, or need help debugging? The discourse forum is a great place to ask for help. Do you have suggestions for how/where L5 community can gather online or IRL? Please let us know your thoughts.

Contributors Wanted

L5 is very much still in alpha, and could use community contributions. Thanks to Jessica Garson for creating our wonderful Contributing to L5 documentation. Examples of contributions include but are not limited to writing code, creating or updating documentation and tutorials, bug reports, testing on older computers, and submitting example projects.

Want to be involved and not sure how? Feel free to send an email through contact info on my info page. I’d be happy to brainstorm with you, and your contribution would be meaningful and helpful!

And this summer we’ll also have a compensated contributor to work on L5 and its ecosystem thanks to support from Google Summer of Code. Look for more updates on this coming in summer.

Thank you

The L5 library has benefited immensely from all of the above contributors who have tested, improved and provided feedback on L5. Thanks to everyone above, as well as everyone who has tested out L5, made their own artwork and software projects with it, or participated in a L5 workshop or discussion recently.

Thank you to Processing Foundation and its contributors, who have not only created and maintained such useful tools, but have helped share best practices, given feedback, and created open source documentation that we’ve adapted for L5. Thank you to Raphael, Stef, and Moon for their enthusiasm and support. A special thank you to p5.js lead Kit Kuksenok who has shared their own insights in p5 development, feedback and enthusiasm for the project.

That’s it for our spring updates. Thanks to all contributors and anyone with an interest in L5. Cheers.