Effect Samples - AlbertGBarber/PixelSpork GitHub Wiki

Jump to the Effect Sample Gifs.

Overview

This page shows an example of each effect in action and some quick reference info for each.

All the effects will be run on the same 2D segment set, consisting of 60 LEDs split into two equal segments (rows), formed into a 2x30 matrix. While the LEDs are physically connected in serpentine order, matching the images below, the segments will be oriented in the same direction, so that they mirror one another.

Segment Set Layout (LEDs are in white)

Segment Set Layout with Numbers

Segment Set Layout Segment Set Layout with Numbers

In Code:

//The first half of the strip, setup using a continuous section that starts at 0, and is NUM_LEDS/2 long
const PROGMEM segmentSecCont halfSec0[] = { {0, NUM_LEDS / 2} };
SegmentPS halfSeg0 = { halfSec0, SIZE(halfSec0), true };

//The second half of the strip, setup using a continuous section that starts at NUM_LEDS/2 and is NUM_LEDS/2 long
const PROGMEM segmentSecCont halfSec1[] = { {NUM_LEDS / 2, NUM_LEDS / 2} };
//Note that we specify the direction of the segment to be false, this mirrors the segment from halfSeg0 above
SegmentPS halfSeg1 = { halfSec1, SIZE(halfSec1), false };

//Create the segment set using both segments (named halfSegSet)
SegmentPS *halfSegs_arr[] = { &halfSeg0, &halfSec1};
SegmentSetPS halfSegsSet( leds, NUM_LEDS, halfSegs_arr, SIZE(halfSegs_arr) );

Notes:

  • The effect samples were captured using live pixel data with the aid of Screen To Gif and my fork of NeoPill (originally by Randy Elwin). While the software does a good job of representing the effects, it cannot replicate the "glow" of the pixels, loosing a lot of color "depth", so effects will look substantially better in real life, particularly those that have fading or transitioning colors. Likewise, your own display settings also effect the samples' appreances.

  • Unless otherwise noted, any 2D capable effects will use the segment set above as is. Any 1D effects, or samples treating the segment set as 1D will be called out.

  • Unless otherwise noted, if possible, effects will use the built-in cybPnkPal_PS palette (magenta-yellow-teal).

  • Some effects come in pairs, with one version configured to draw along segment lines and one on whole segments, such as Fire2012 (Seg) and Fire2012 (Seg Line). For such effects, I'll show the segment line version only.

  • Some effects have "fast" and "non-fast" versions. As their outputs are equivalent, I'll only show the non-fast variant.

  • Many effects are highly customizable. In some cases I may include multiple samples of an effect to help better demonstrate its capabilities.

Effect Samples: (WARNING: Contains Flashing Lights)

Effect Sample Effect Name Notes Supports Color Modes?
Breath Multiple modes for cycling colors, including a rainbow mode. No
Breath Eye Options for setting or randomizing the "eye" location, size, etc. Multiple modes for cycling colors, including a rainbow mode. No
Color Melt Based on the Pixel Blaze pattern of the same name. Shown in rainbow mode, but supports palettes as well. Looks much more fluid IRL. No
1
Color Mode Fill 1
2
Color Mode Fill 2
3
Color Mode Fill 3
4
Color Mode Fill 4
Shown using color modes 1 to 4. Ignore the slight glitches in the gifs, all segment lines/segments transition as solid colors. Config notes. Yes
Color Wipe Seg Color wipes segments pixel by pixel. Many options for looping in different ways. Loop Settings. Yes
Color Wipe Seg Line or Seg Color wipes whole segment lines or segments. Many options for looping in different ways. Loop Settings. Yes
Cross-fade Cycle Fades whole segment set through colors. Looks much better IRL. Options for choosing colors at random. No
Dissolve (Seg Line) Lots of options for how the next colors are chosen. Yes
Draw Pattern (Seg Line or Seg) Draws a static pattern. Can be drawn across whole segments, segment lines, or individual pixels.

Color length and spacing are customizable. May work well with a blending palette.

Yes
Edge Burst (Seg Line) Based on the Pixel Blaze pattern of the same name. Shown in rainbow mode, but supports palettes as well. Options for setting or randomizing the wave start point. No
Twinkle Mode 0
Fairy Lights (Seg Line or Seg) Mode 0
Twinkle Mode 1
Fairy Lights (Seg Line or Seg) Mode 1
Twinkle Mode 2
Fairy Lights (Seg Line or Seg) Mode 2
Shown in 1D, but supports 2D along whole segments or segment lines. Multiple twinkling modes (all displayed). Yes
Fire (Seg) Segment version show, line version draws fires along each segment line. Supports custom palettes, shown using the firePal_PS built-in palette. No
Fireflies (Seg Line) Randomly moving particles that fade in and out. Shown in 1D, but supports 2D. Supports palettes, but shown using a single color, CRGB(222, 144, 9). Yes
Fireworks (Seg Line) 1D only. Lots of options for controlling size, speed, etc of the "fireworks". Yes
Glimmer (Seg Line) Random groups of pixels that fade in and out. Looks better IRL. Yes
Gradient Cycle (Seg Line) Cycles gradients across the segment set. Looks MUCH better IRL. Fast version is less CPU intensive, but has restrictions. No
Scan Mode 0
Larson Scanner Mode 0
Scan Mode 2
Larson Scanner Mode 2
Replicates various classic "scanners", like Cylon, Kitt, etc. Modes 0 and 1 shown in CRGB::Red. Supports only a single color. Fading trails are MUCH nicer IRL. Yes*
Lava 1D only (but still looks 2D). Looks great IRL! Shown using default lava palette, but supports general palettes and has a rainbow mode. Quite customizable. No
Noise16 General noise playground based on the noise effects by Andrew Tuline. 1D only. Very customizable, but can be tricky to get a specific look. No
Noise (Seg Line) A 2D noise playground, producing spots of color that shift and morph across the segment set. Lots of options, including a rainbow mode. Looks MUCH better in IRL, and works well in 1D. For BG
Noise Gradient (Seg Line) Draws palette color gradients using noise. Lots of options. Looks MUCH better in IRL. For BG
Noise Waves (Seg Line) Waves of palette colors and brightness that grow and shrink using noise. Looks MUCH better in IRL. For BG
Pacifica Port of FastLED's Pacifica effect. 1D only. Has a much nicer teal-blue mix IRL. No
Pacifica Hue (Seg Line) 2D and multi-hue version of the Pacifica effect. Shown cycling through hues, but can be locked to a specific color. No
Using Rear Trails
Particles 0
No Trails
Particles 1
Both Infinite and No Trails
Particles 2
General particle drawing effect. Shown in 1D. Multiple trail options. Particles can be individually configured or randomized. Trail fading looks MUCH better IRL. Yes
Pattern Shifter (Seg Line) Moves custom patterns either along segments or segment lines (segment line version shown). Patterns are 2D and fully user defined. See here for the shift pattern used. Yes
Plasma (Seg Line) Blended palette color waves that shift over time. Based on the code by Andrew Tuline No
Police Strobe A strobe to mimic police lights. Multiple strobe modes avalible. Options for using dual colors (shown) or a palette. Yes
Pride With Pal (Seg Line) Ported versions of Pride2015 adapted for 2D and palettes (shown in rainbow mode).

In Pride With Pal 2 the colors move orthogonal to the original effect. This cannot be well represented on the two segment sample, but looks like this effect (credit to Jason Coon for the inspiration!)

No
Rainbow Cycle A very simple, but classic effect. A good place to start. Configurable rainbow length. No
Rainbow Cycle (Seg Line or Seg) 2D version of the Rainbow Cycle effect. Can be configured to draw along segments or segment lines. No
Rainbow Fonts (Seg Line) Based on the Pixel Blaze pattern of the same name. Rainbow waves that grow and shrink. Mostly the same as the original effect, but adapted for 2D. More smooth IRL. No
Rain (Seg) Falling rain drops that either fall along segment lines or segments (segments version shown). Multiple trail options. Fading trails look much better IRL. Yes
Rolling Waves (Seg Line) Cycles waves across the strip. Leading, trailing, and double wave options. Looks MUCH better IRL, with clearer fades. Fast version is less CPU intensive, but has restrictions. Yes
Scanner (Seg Line) Creates a set of "scanner" waves. Lots of options for trails, configuring wave start positions, color swapping, bouncing, etc. Yes
Segment Waves Lengths of color that smoothly move across whole segments, like Streamer but for segments. Yes*
Shift Mode 0
Shifting Sea (Seg Line) Mode 0
Shift Mode 1
Shifting Sea (Seg Line) Mode 1
Creates a sea of changing colors by blending each segment line through the palette colors.

The lines can be given a random offset (mode 0), or a limit range (mode 1). Also has a rainbow mode.

Looks MUCH better IRL.

No
Shimmer (Seg Line) Randomly dims each pixel or segment line (configurable). Shown in CRGB::Red for clarity, but is palette compatible. Yes
Soft Twinkle (Seg Line) A very simple effect that mimics classic white incandescent Christmas lights that gently twinkle on/off. Color is fixed. Shown in 1D. No
Streamer (Seg Line) Lengths of color that smoothly move across segment lines. Yes
A Simple Strobe
Strobe (Seg Line or Seg)
More Complex
Strobe (Seg Line or Seg) 2
A 2D strobing effect with a lot of options, and multiple modes. See here for second sample config. Yes
Theater Chase (Seg Line) A simpler version of Streamer. Customizable color lengths and spacing, but only supports one color at a time. Yes
Twinkle
Twinkle (Seg Line)
Twinkle 2 in 2D
Twinkle2 (Seg Line or Seg)

and

Twinkle 2.

Shown in 1D. Randomly fades pixels in and out using a configurable number of steps. Twinkle 2 is a more advanced version of the effect, with more customization, and can use single pixels, segment lines, or whole segments. Yes*
Xmas Lights (Seg Line or Seg) Mimics classic colored twinkling Christmas Lights by drawing a pattern of colors and toggling random pixels on/off. Can be drawn on segment lines, whole segments, or in 1D. Configurable pattern, twinkle color, density, etc. Yes

Effect Sample Notes:

Color Mode Fill Notes:

The segment set was configured to shift the color mode gradient using the following setup:

mainSegments.runOffset = true;
mainSegments.gradSegVal = 5;
mainSegments.offsetRateOrig = 80;

Color Wipe (Seg):

colorWipeSeg.setUpLoop(true, false, true, false, false, false, false); was used to create the loop.

Color Wipe (Seg Line or Seg):

colorWipeSL.setUpLoop(true, 2, false, 1, true, false, false, false, false); was used to create the loop.

Larson Scanner Color Mode Support:

The Larson Scanner effect uses an instance of the Particles effect. Particles supports color modes, but they are not set directly in the Larson Scanner effect.

Pattern Shifter Pattern:

The following shift pattern was used for the Pattern Shifter sample:

uint16_t wavePattern_arr[(2 + 2) * 6] = { //<--(<<how long each "row"is>>) * <<number of rows>>
    0, 2,    0, 255,
    2, 4,    1, 255,
    4, 6,    2, 255,
    6, 8,   255, 2,
    8, 10,  255, 1,
    10, 12, 255, 0,
};

shiftPatternPS wavePattern(mainSegments, mainSegments.numSegs, wavePattern_arr, SIZE(wavePattern_arr));

Segement Waves Color Mode Restrictions:

The effect is only compatible with Color Modes 2, 4, 5, 7, 9, and 10.

Strobe Sample Config:

The following settings were applied to the strobe effect to produce the second sample:

strobe.sMode3Freq = 3;
strobe.randMode = 2;
strobe.alternate = true; 
strobe.fillBg = false;
strobe.fillBGOnPause = false; 

Twinkle 2 Color Mode Restrictions:

When twinkling whole segments, the Twinkle 2 effect is not compatible with Color Modes 1, 6, 2, 7, 3, 8. (No restrictions if twinkling segment lines or individual pixels.

⚠️ **GitHub.com Fallback** ⚠️