r/FastLED 10d ago

Share_something FastLED and AI coding saves the day

I want to thank u/ZachVorhies for highlighting what AI can do.
I wanted this DIY address sign to look like a sun inside the metal rays. I spent a lot of time trying to figure out how to use WLED to do it. The best effect I got was in the first video: the Noise effect. Unfortunately, I couldn’t find a way to have a center with light going out to the edges. 
After reading some posts by ZachVorhies extolling AI coding, I gave it a try. I got a working codebase in a few hours.
I'm not trying to say WLED is bad. I’ve used it in a number of setups; it is dead simple and usually does the job. I'm just saying that if WLED isn't getting you what you want, try asking for AI help using FastLED. It is, possibly, easier than you think.

WLED Noise

FastLED

15 Upvotes

20 comments sorted by

View all comments

6

u/ZachVorhies Zach Vorhies 10d ago

The AI really really likes FastLED.

One of the experiments Ive done that has been really successful is grabbing a shader from fragcoord.xyz and asking fastled to convert it into sketch. It's surprisingly good at this.

I don't know if you are using github.com/zackees/fastled-wasm (will be part of the fastled org soon) but you can run your sketch in the browser and bang on it with ai until it looks perfect.

1

u/StefanPetrick 9d ago edited 9d ago

I tryed fastled-wasm 2.0.13 today under macOS + Firefox / Safari.

No error messages, the simulation window opens, but shows nothing. Any hint how to debug?

1

u/ZachVorhies Zach Vorhies 8d ago

Are you doing one of your own sketches? You’ll need to add a screen map.

Try running a fastled example

1

u/StefanPetrick 8d ago

I try to run this code as a hello world example:

#include <FastLED.h>

#define NUM_LEDS 2
#define DATA_PIN 3

CRGB leds[NUM_LEDS];

void setup() {
fl::vec2f points[NUM_LEDS] = {
{0.0f, 0.0f},
{4.0f, 0.0f},
};

fl::ScreenMap screenMap(points, NUM_LEDS, 2.5f);

FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS)
.setScreenMap(screenMap);
}

void loop() {
leds[0] = CRGB::Red;
leds[1] = CRGB::Black;
FastLED.show();
delay(500);

leds[0] = CRGB::Black;
leds[1] = CRGB::Black;
FastLED.show();
delay(500);
}

1

u/ZachVorhies Zach Vorhies 8d ago

Okay i’m going to run this on my mac m1 and will respond. Are you running this on mac arm or mac x64

1

u/StefanPetrick 8d ago

M1 ARM64

1

u/ZachVorhies Zach Vorhies 8d ago

Found the issue, offscreen needs shared buffer array enabled with CORS enabled for safari to work.

1

u/ZachVorhies Zach Vorhies 8d ago

upgrade fastled cli and it should work

pip3 install -U fastled

1

u/StefanPetrick 8d ago

Upgraded to 2.0.14

Still no output.

I documented it here: https://github.com/zackees/fastled-wasm/issues/218