View Metaballs.INO
/* | |
Metaballs proof of concept by Stefan Petrick | |
...very rough 8bit math here... | |
read more about the concept of isosurfaces and metaballs: | |
https://www.gamedev.net/articles/programming/graphics/exploring-metaballs-and-isosurfaces-in-2d-r2556 | |
*/ | |
#include "FastLED.h" |
View Fire2018-2.ino
#include "FastLED.h" | |
// matrix size | |
uint8_t Width = 16; | |
uint8_t Height = 16; | |
uint8_t CentreX = (Width / 2) - 1; | |
uint8_t CentreY = (Height / 2) - 1; | |
// NUM_LEDS = Width * Height | |
#define NUM_LEDS 256 |
View Fire2018.ino
/* | |
FastLED Fire 2018 by Stefan Petrick | |
The visual effect highly depends on the framerate. | |
In the Youtube video it runs at arround 70 fps. | |
https://www.youtube.com/watch?v=SWMu-a9pbyk | |
The heatmap movement is independend from the framerate. | |
The actual scaling operation is not. |
View sinusoid3
float speed = 0.3; // speed of the movement along the Lissajous curves | |
float size = 3; // amplitude of the curves | |
for (uint8_t y = 0; y < Height; y++) { | |
for (uint8_t x = 0; x < Width; x++) { | |
float cx = y + float(size * (sinf (float(speed * 0.003 * float(millis() ))) ) ) - 8; // the 8 centers the middle on a 16x16 | |
float cy = x + float(size * (cosf (float(speed * 0.0022 * float(millis()))) ) ) - 8; | |
float v = 127 * (1 + sinf ( sqrtf ( ((cx * cx) + (cy * cy)) ) )); | |
uint8_t data = v; |
View Noise_smoooooth.ino
/* | |
A FastLED matrix example: | |
A simplex noise field fully modulated and controlled by itself | |
written by | |
Stefan Petrick 2017 | |
Do with it whatever you like and show your results to the FastLED community | |
https://plus.google.com/communities/109127054924227823508 | |
*/ | |
#include "FastLED.h" |
View noise_noise.ino
/* | |
A FastLED matrix example: | |
A simplex noise field fully modulated and controlled by itself | |
written by | |
Stefan Petrick 2017 | |
Do with it whatever you like and show your results to the FastLED community | |
https://plus.google.com/communities/109127054924227823508 | |
*/ | |
#include "FastLED.h" |
View noise_noise.ino
void noise_noise1() { | |
CRGBPalette16 Pal( pit ); | |
/* here is how the palette looks like: | |
DEFINE_GRADIENT_PALETTE( pit ) { | |
0, 3, 3, 3, | |
64, 13, 13, 255, // blue | |
128, 3, 3, 3, | |
192, 255, 130, 3, // orange |
View gist:c8adc84c92be703a52367090dba56b2b
// as showed on youtube | |
void noise_audio2() { | |
read_audio(); | |
CRGBPalette16 Pal( pit3 ); // the red one | |
y[0] += (bands[4] - 10) * 4; | |
scale_x[0] = 10000 - (bands[0] * 40); | |
scale_y[0] = scale_x[0]; | |
byte layer = 0; | |
for (uint8_t i = 0; i < Width; i++) { | |
uint32_t ioffset = scale_x[layer] * (i - CentreX); |
View circular_matrix.ino
/* | |
* A FastLED example showing how to | |
* map a virtual 2d matrix onto a circular led setup | |
* | |
* limitations: works so far only up to 255 leds | |
* | |
* written by Stefan Petrick 2016 | |
*/ | |
#include "FastLED.h" |
View 2animations.ino
#include "FastLED.h" | |
#define NUM_LEDS 144 | |
// have 3 independent CRGBs - 2 for the sources and one for the output | |
CRGB leds[NUM_LEDS]; | |
CRGB leds2[NUM_LEDS]; | |
CRGB leds3[NUM_LEDS]; | |
void setup() { |
NewerOlder