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.
L5 is designed to work cross-platform, including on desktop, phone, and tablet. Beyond running fast on modern machines, L5 is optimized for older and lower-powered devices, minimizing resource usage to keep creative coding accessible to everyone. This helps with our goal of building resilient, long-lasting software projects. L5 is built in Lua, a robust but lightweight, long-running, lightning-fast, extensible language.
Relevance to permacomputing
Spurred to action by the paper Permacomputing Aesthetics: Potential and Limits of Constraints in Computational Art, Design and Culture, L5 is one attempt to find a balance between constraint and creating a powerful tool for creative expression. Where its related predecessor Processing is about 500MB, and p5.js requires an entire web browser to operate, L5 along with its dependency framework Love2d together are 5 (Linux) to 20MB (macOS). Lua is a slowly-developed language, and Love2d is an open source, well-documented and responsive framework. We leverage and build upon this stack, and create a library using a familiar API and ecosystem. Along with the library, there is a documentation website built with accessibility in mind, including lazy loaded and compressed graphics, downloadable offline documentation of the entire site, the ability to use the site completely without JavaScript, hosted http and https versions of the site, and no Cloudflare.
Limits and challenges
L5 built on Love2d with Lua means it relies on Love2d's affordances and constraints. Adding additional functionality means altering the Love2d library, which introduces new bugs. As compared to Processing and p5.js, it is a nascent project with lots of room for refactoring, refinement and growth. Currently, the software repo and website is hosted through Microsoft's GitHub pages, which was selected in order to leverage the auto-build and hosting of the site, and to locate where its sibling libraries are located, though the choice of Big Tech is at odds with the design and philosophy of the language library. Finally, the idea that the library can be used to build software and creative code sketches that can last for over the years without breaking is untested going forward. However, it has been tested backwards, on hardware as far back as 2008.