
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

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 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.

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 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, 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, 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

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.