The best part of live coding is that even mistakes can be wonderful. The rotate() function takes *radians* for its argument, but I passed in *degrees*, so the FFT measurements wrapped multiple times and made it look even more amazing than intended.

Wrap things into curvy circles with

for(let i = 0 ; i < num ; i++) {
let x = R[i] * sin(i * 2 * PI / num);
let y = R[i] * cos(i * 2 * PI / num);

Ramp the color with the average amplitude of the audio. Combines well with the phosphor-like persistence.

Some things that I find make for better live coding:

Decay the previous frames by drawing over them with a semi-transparent background:


Do you like live coding? Do you like editing with vi? Now you can do both with p5live vi mode! forked from

One of my goals for the rest of the year is to only travel via bike, train, boat or dirigible. Apparently I'm not the only one:

The F̶u̶s̶c̶i̶a̶ ̶F̶u̶c̶s̶i̶a̶ ̶F̶u̶c̶s̶h̶i̶a̶ ̶F̶u̶s̶c̶h̶i̶a̶ ̶F̶u̶s̶h̶i̶a̶ ̶F̶u̶c̶h̶i̶a̶ Fuchsia flower.

The first public post from ten years ago about my homebrew firmware for the Canon 5D Mark 2 DSLR marks the very humble beginning of the Magic Lantern project:

Ten years ago this week, I started a project to free my Canon DSLR camera's firmware and there are still improvements being made today thanks to and other developers who turned my reverse engineered hack into a useful tool for film makers:

Trying to make my first BGA board and the 0.2mm vias look huge! How are these traces supposed to be routed?

Show more

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!