Skip to content

Instantly share code, notes, and snippets.

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"
@StefanPetrick
StefanPetrick / Fire2018-2.ino
Last active Feb 28, 2020
Fire effect v2.0 for FastLED matrix
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;
@StefanPetrick
StefanPetrick / Noise_smoooooth.ino
Last active Jul 20, 2020
Proof of concept for smooth fading
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"
@StefanPetrick
StefanPetrick / noise_noise.ino
Last active May 27, 2020
The complete code for the noise controlled noise.
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"
@StefanPetrick
StefanPetrick / noise_noise.ino
Last active Jun 25, 2017
FastLED simplex noise and colormapping fully modulated by itself
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);
@StefanPetrick
StefanPetrick / circular_matrix.ino
Last active Dec 16, 2019
A 2d matrix mapped onto a circular led setup
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"
@StefanPetrick
StefanPetrick / 2animations.ino
Last active Jul 28, 2020
Simple example of a video cross fade
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() {
You can’t perform that action at this time.