Lee Tusman newsletter

Archives
Subscribe
Jan. 5, 2026, 9:17 a.m.

L5, a new creative coding library, out now

Lee Tusman newsletter

I meant to send this email last month but then “the holidays” came up so I’m finally ready.

I’m back in the US after about 6 months in Germany. I had an incredible and productive time as an artist-in-resident at ZK/U in Berlin, and can’t wait to go back again.

L5 logo
L5 logo

This month’s newsletter is all about L5 , the creative coding library I’ve initiated, now out in its first alpha iteration. I’ve been working on it since July, and have put a couple hundred hours into it so far. Through my own word of mouth there is already a small community of people creating new projects, languages, and artworks with it. There have been a couple contributions from other people, and I’ve been reading blog posts from people that are already using it to make their artwork! That’s so awesome, particularly since I’m not active on social media beyond mastodon and instagram.

black and white collaged images of graffiti
Screengrab from a generative collage animation made in L5, part of an installation presented in November at ZK/U.

I’m ready to share L5 further, get feedback, find contributors, and continue to build resources and community.

animated gif drawing out Hi L5 in multiple colors
Simple drawing program created in L5. Code below.
require("L5")
function setup()
    size(400, 400)
    windowTitle('Hello L5')
    background('white')
    noStroke()
    describe('A basic drawing program in L5. A random fill color each mouse press.')
end

function mouseDragged()
    -- Draw a circle that follows the mouse when held down
    circle(mouseX, mouseY, 20)
end

function mousePressed()
  -- Pick a random color on mouse press
  fill(random(255),random(255),random(255))
end

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. --from Welcome to L5.

If you know Processing or p5.js, you can dive right in. If you don’t have experience with these, there is A Complete Introduction To Programming with L5.

L5 is created to run on desktop (and tablet/phone) platforms. It’s a couple megabytes, and runs well on old, underpowered, ancient machines - and it’s lightning-fast on new computers as well. Its syntax is similar to p5.js, but without the browser functions.

At this point, it has lots of functionality (about 210 functions) but it does not have 100% feature parity with Processing-p5 yet. I also have written about 200+ reference pages and tutorials and examples, adapted from p5.js and Processing, though more tutorials and examples are needed.

command line web browser Offpunk showing the L5 website
The documentation website runs offline, in low or no-graphics text-only mode, and runs well even on dial-up connections. Here is a screengrab from the offline command line web browser Offpunk.

Install

More info on L5

Download and install L5

For the past 3 months I've been building dozens of my own projects in L5. Some of these are documented online on my work log.

an exquisite corpse collage
This was a fun little (screenshot from the) exquisite corpse generator created in L5 after I visited the Surrealism exhibition at the Philadelphia Art Museum.
code on the left and 10print maze on the right
The famous “10print program” from BASIC re-implemented in L5.

layered and rotated animations of galloping horse on pink background
Animated gif excerpt from a recent “Genuary” code sketch using Muybridge’s images and responding to the prompt “Twelve principles of animation.”
code on left and colored squares with random shapes overlaid, in a grid
One of my rapid code sketch tests. On the left is code in L5. On the right, the result. Here I was testing out an early version of push and pop.

Survey

I've created a survey to get feedback on L5 to help guide its next stages. Ideally, you fill out the survey after trying it out!

Winter roadmap goals:

  • add a L5 mode to the Processing IDE (highest priority!), to make it easier for Mac/Windows users to get started

  • video tutorials on installing and getting started

  • refactoring and bug fixing

  • comprehensively clean up and improve compiler error reporting

  • build out easier entry points for contributions

  • add documentation and gather feedback on permacomputing and running L5 on old phones and computers (it's currently being tested on 2009 Windows, 2012 Windows, 2014 Macbook, 2019 iPad, and 2015 phone with postmarketOS).

I’m looking for contributors to help with these!

If you need help getting started with L5 or installing it, or you have any feedback, feel free to write back to this email and I'll respond. Thanks to everyone who has filled out the form or sent feedback. It’s really helpful.

Thanks! Best wishes to you in the year ahead. Get in touch anytime.

Lee

a room with easy chair, a person sitting, and an art installation with multiple screens, plants
Stepan visiting my altar installation, shortly after I added multi-screen support to L5 (here running on a 2012 Windows machine).

You just read issue #22 of Lee Tusman newsletter. You can also browse the full archives of this newsletter.

Powered by Buttondown, the easiest way to start and grow your newsletter.