Icicle sequencing on pixels

angus40

Supporting Member
Have any of you come up with a crafty way of sequencing a slow drip on pixel icicles ?
I'm considering designing some gutter icicles that replicate real world ones .
It occurred to me that a sequence timing may be required that is outside a sequencers capabilities .

Would it be best to use regular leds and use pixel data to trigger them rather than pixels ?

Any thoughts or suggestions ?
 
I did like any Engineer would do. I ask ChatGTP. 😂

Let say I have a string of Seed pixels staring with a short string of 10 pixels going to to the right, 10 going down and 10 going back up (in line with the previous pixels, another 10 pixels going to the right. This would repeat for however X length a particular house eve is. How would you sequence them in xLights, so that the horizontal parts stayed lit but the vertical parts would drop one pixel at a time, like water dripping? Each vertical drop should look somewhat random to the others.

Yes — that’s very doable in xLights.

What you want is basically:
  • the top horizontal run acts like a steady “header”
  • each 10-pixel vertical leg behaves like an independent mini icicle
  • the “drip” moves down one pixel at a time
  • each drop starts at different times so they look random
The main trick is how you model the pixels. If you wire it as one continuous serpentine string, xLights can still work with it, but life gets much easier if you build the model so the vertical sections are treated as separate drops/submodels.

Best way to model it​

Your wiring pattern is:
  • 10 right
  • 10 down
  • 10 up
  • 10 right
  • 10 down
  • 10 up
  • repeat
So physically each “module” is:
  • one horizontal top segment
  • one down leg
  • one up leg
  • then move over and do it again
For xLights, I would not think of that as one long zigzag string. I would think of it as a matrix-like custom model where:
  • the top row contains the horizontal pixels
  • each vertical strand is mapped under its correct top position

Even though the string physically doubles back, the model should visually represent the final layout, not the wire order.

What the model should look like​

Imagine the top line is the eve.

Each time you have a hanging section, model it as a column of 10 pixels downward.

Then the next hanging section is another column.

So in xLights, your prop should look something like:
  • top row across the house
  • hanging drops below at regular spacing
The continuous wire path is only for controller setup. The visual model should be arranged like icicles.

The simplest sequencing method​

Build:
  1. Main model = the whole icicle run
  2. Submodel for the top horizontal pixels
  3. Submodels for each individual vertical drop
Then sequence like this:

1. Keep the top lit​

Put a normal On, Color Wash, Twinkle, or low-motion shimmer effect on the top horizontal submodel.

That gives you the always-lit roofline/header.

2. Make the drips on the vertical submodels​

For each vertical drop submodel, use an effect that behaves like a falling pixel:
  • Single Strand
  • Bars
  • Meteor
  • or Marquee if tuned carefully
The one I’d try first is Single Strand because it gives you directional pixel motion pretty easily.

Set it so:
  • direction is top to bottom
  • only 1 lit node, or maybe 2 if you want a brighter droplet
  • speed is slow enough to step visibly downward
  • fade/trail very short or none
That makes one drop look like water moving down.

3. Randomize the drops​

To make each vertical strand start at different times:
  • copy the same effect to all vertical submodels
  • then use timing offsets
  • or slightly vary start times
  • or use different speeds and repeats
That gives the random dripping look.

Even better: use layers​

A really good look would be:

On the horizontal header​

  • steady cool white or blue-white
  • maybe tiny shimmer

On each vertical drop​

  • base dim glow on all verticals
  • then a brighter moving droplet on top
So each drop is faintly visible all the time, but an occasional bright bead travels downward.

Practical xLights setup​

Option 1 — one custom model with submodels​

This is probably the best approach.
  • create a Custom Model
  • map each node to its visual position
  • define submodels:
    • Top
    • Drop1
    • Drop2
    • Drop3
    • etc.
Then sequence independently.

Option 2 — separate models for each drop​

This is easier to think about, but more wor
  • one model for the horizontal top
  • one model per vertical drop
That makes sequencing extremely easy, because each drop is its own prop. But it can get cluttered if you have a lot of them.

How I would actually do it​

If this were my layout, I’d do:
  • Top header as one submodel
  • each 10-pixel drop as its own submodel
  • put a dim steady effect on the whole prop
  • put a moving single-pixel effect on each drop
  • stagger the effects manually across time
Example:
  • Drop 1 starts at 0.0 sec
  • Drop 2 starts at 0.6 sec
  • Drop 3 starts at 0.2 sec
  • Drop 4 starts at 1.1 sec
  • Drop 5 starts at 0.4 sec
Then repeat them with slightly different cycle lengths so they don’t sync back up too obviously.

Important modeling note​

Because your actual wire path goes:
  • top right
  • down
  • back up
  • top right
  • down
  • back up
you will probably want the custom model node map to place the pixels visually where they belong, rather than relying on default strand ordering.

That way xLights sees:
  • top row pixels where the roofline is
  • down-strand pixels in the hanging positions
not just a weird snake.

That’s the key to making the effects behave right.

Best effect candidates​

In order, I’d test these first:
  1. Single Strand — best first choice for a clean droplet
  2. Meteor — good if you want a tiny trail
  3. Bars — can work if narrowed way down
  4. Marquee — sometimes useful for stepping motion
For realistic drips, Single Strand is probably your friend.

My honest recommendation​

Do not try to do this as just one undivided string effect and hope xLights magically understands “horizontal stays on, verticals drip randomly.”
It will be much easier if you create:
  • a top submodel
  • one submodel per hanging drop
Then sequence those separately.

That gives you total control and will look the way you’re imagining.
 
Would you do it any different in Vixen 3?

Short answer: same concept, slightly different tools.
Vixen 3 actually makes the random drip part a bit easier in some ways.

The big idea (same as xLights)​

No matter what software:
  • Treat the top horizontal run as one controllable element
  • Treat each vertical 10-pixel drop as its own element (or group)
  • Animate each drop independently
If you try to do it as one long zig-zag string, both Vixen and xLights will fight you.

How I’d build it in Vixen 3​

Step 1 — Element structure (this matters a LOT)​

In Vixen, I would build the element tree like this:

Icicles
├── Top Run (all horizontal pixels)
├── Drop 1 (10 pixels)
├── Drop 2 (10 pixels)
├── Drop 3 (10 pixels)
├── Drop 4 (10 pixels)
└── ...

Each “Drop” is a group of 10 pixels in order from top → bottom.

This is where Vixen shines — grouping is very flexible.

Step 2 — Patch normally (don’t overthink wiring)​

Even though your wire goes:
  • right → down → up → right → down → up
…you just patch the pixels in their real order.

Then assign them into the correct Drop groups.

Vixen doesn’t care how ugly the wiring is as long as the grouping is right.

Step 3 — Keep the top lit​

On Top Run:
  • Use:
    • Set Level (steady)
    • Pulse (very subtle)
    • Twinkle (low intensity)
That gives you your “ice line glow.”

Step 4 — Create the drip effect​

Here’s where Vixen differs from xLights.

Option A (BEST):​

Apply a Chase to each Drop group:
  • Direction: forward (top → bottom)
  • Pulse size: 1 pixel (or 2 max)
  • Speed: slow enough to see stepping
  • Background level: 0 (or very dim)
This gives you a clean “one pixel falling” look.

Option B:​

Also works well:
  • Direction: top → bottom
  • Very short duration
  • Then off
More like a “drip streak” than a bead.

Option C:​

If you want full control, you can literally:
  • keyframe a pixel turning on
  • step it downward frame-by-frame
But honestly, Chase already does this cleanly.

Step 5 — Make it random (this is where Vixen is NICE)​

Instead of manually staggering everything like in xLights…

Just offset each effect​

For each Drop:
  • Drop 1 starts at 0.0 sec
  • Drop 2 at 0.37 sec
  • Drop 3 at 0.12 sec
  • Drop 4 at 0.91 sec
  • etc.
Then:
  • copy/paste the same effect
  • just drag them slightly
That alone gives you natural randomness.

Even better: vary parameters slightly​

Make each drop slightly different:
  • Speed: 90%, 100%, 110%
  • Pulse size: 1 vs 2 pixels
  • Gap between repeats
Now they’ll never sync up.

Step 6 — Add realism layer (optional but looks great)​

Put a very dim constant glow on all vertical drops:
  • like 5–10% brightness
Then layer the chase on top.

Now it looks like:
  • icy strand always visible
  • brighter “water bead” traveling down
That’s a huge realism upgrade.

Where Vixen is actually better here​

Compared to xLights:
  • Grouping is simpler and more intuitive
  • Effects like Chase behave very predictably
  • Timing offsets are easier to “eyeball randomize”
  • Layering effects feels more natural
xLights is more powerful overall, but for this specific effect,
Vixen is honestly a little more “plug and play.”

One thing to watch out for​

Because your wiring doubles back (down then up):

Make sure each Drop group is ordered:
  • top pixel = first
  • bottom pixel = last
If one drop is reversed, your drip will go upward on that one and ruin the illusion.

My honest take for your setup​

Given how you build things (and how picky you are about visual realism 😄):

I’d:
  • Build the element groups cleanly
  • Use Chase on each drop
  • Offset them randomly
  • Add a faint base glow
  • Maybe tint slightly blue-white
That’ll look way more like real icicles than most store-bought pixel strings.
 
AI is so verbose lol.

I guess first I'd want to know what effect you're looking for.

What I picture is a horizontal line, with random "drips" coming off. Most of the time, those drips just fall off and nothing happens. But, like real icicles, eventually a portion starts forming at the top, and grows over time.

Kind of like the "snowflake" effect in XL, where snow falls and starts accumulating. Except the accumulation would happen slower, and from the top.
 
The way I'm thinking of it, and I would probably use Seeds, every drop would be long, even though they all wouldn't be used all the time. This would easily handle different random lengths. I'd include random speeds too. Maybe 3-5 different patterns.
 
Ernie , Thank you for the quick and detailed replies . This gives me a ton to consider .
I'm unable to get into anything for a week or 2 as I'm back focused on work . I was however surprised they gave me the weekend off .

I'd like to use xlights as a converter but have yet to figure it out . I used HLS in past years and would like to try FPP.
So converting the files is a deal I've yet to understand .

Fortunately my pixels are not directional data wise like most are , so I would just have simple line drops from the eves .
 
I'm also wondering if I could put the separate sections and patterns in WLED and just call them through xLights. :unsure:

Well according to the overly optimistic side of ChatGPT, this is totally doable through WLED. It would be a continuously running task in the background and immediately taken over by xLights during a sequence. I'd have to figure out how to take control and drop it from inside xLights. I believe there are timing values that can be changed in WLED for control and release.

This way I could have dripping icicles running in the background but still be used during certain parts of sequences. But I'd still make it so I could turn it off and it would be strictly under xLights control if I didn't Like it.
 
Well according to the overly optimistic side of ChatGPT, this is totally doable through WLED. It would be a continuously running task in the background and immediately taken over by xLights during a sequence. I'd have to figure out how to take control and drop it from inside xLights. I believe there are timing values that can be changed in WLED for control and release.

This way I could have dripping icicles running in the background but still be used during certain parts of sequences. But I'd still make it so I could turn it off and it would be strictly under xLights control if I didn't Like it.
I have WELD controllers all over my place running year round . I use segments and presets galore .
I havent used WLED for events like xmas though .
 
I used HLS in past years and would like to try FPP.
I have several Pi's that I thought I'd need but so far, I've been able to to everything with just xLights.

A big advantage of using a Pi is that it's not Windows or connected to anything that could crash or decide right now was the perfect time to update software or install new security updates. Even though I'm completely Wi-Fi, I haven't seen interference or potential overloading communications anywhere.

I've thought of experimenting with an ESP32 running ESPixelStick. It has a mode where it can run kinda like a Pi but without the standalone capability. As far as I know, I could be the only one doing this too, over Wi-Fi.

Now's the time to experiment.
 
I have WELD controllers all over my place running year round . I use segments and presets galore .
I havent used WLED for events like xmas though .
I'm looking to do the opposite here. 😂 My GF is into summer wall and lawn stuff. I have a few wind spinners out there now too. Some of that stuff has solar battery charging so it can light LED's. That's what I want to get into. There are ornament that either don't exist or wildly expensive. I have several idea's that just don't seem to exists.

I also have some idea's on how to animate during long periods of cloud cover too. Calculations say over a week or two with just 2-3 AA batteries.
 
Well according to the overly optimistic side of ChatGPT, this is totally doable through WLED. It would be a continuously running task in the background and immediately taken over by xLights during a sequence. I'd have to figure out how to take control and drop it from inside xLights. I believe there are timing values that can be changed in WLED for control and release.

This way I could have dripping icicles running in the background but still be used during certain parts of sequences. But I'd still make it so I could turn it off and it would be strictly under xLights control if I didn't Like it.
The trick would be to cut off the E1.31/DDP feed. I'm not sure about XL but LOR sends out E1.31 data 100% of the time when the show controller is up (even during the day). if the lights aren't on, it's just getting "keep them off" data. But WLED sees this and shuts its own programs down.

So you'd need something that would stop the data stream from going to that controller altogether.
 
So you'd need something that would stop the data stream from going to that controller altogether.
Yeah, that's the part I need to figure out. I used to write windows programs to control windows programs and make them do things they weren't originally intended to do. My early days of software hacking taught me that just because it's not there, doesn't mean it couldn't be.

Besides, I know the programmers. :sneaky:
 
Yeah, that's the part I need to figure out. I used to write windows programs to control windows programs and make them do things they weren't originally intended to do. My early days of software hacking taught me that just because it's not there, doesn't mean it couldn't be.

Besides, I know the programmers. :sneaky:
I always wanted to learn to program but every time I get into it my mind swims in the ocean of all the info .
So I learn a little here and there and put it down for months or a year .
 
Oh it's definitely doable... worst case, use a relay to cut the ethernet signal physically lol
Well , if ChatGTP is right, you can't turn off DDP on the xLights side but you can tell WLED to ignore it.

So, I need to set something up and see.

I always wanted to learn to program but every time I get into it my mind swims in the ocean of all the info .
Well, it turns out, you don't necessarily need to know how to program, you just need to find someone that shared what you need to do.

Years ago I programmed in Visual Basic. Microsoft had a version in Office, it was similar but not the same. I wrote some pretty elaborate programs to control Excel at full speed. All I did was Google search for the functionality that I needed, paste it in and modify the variable names. People really thought I knew what I was doing. But all they really saw was three hours of work, now took the same for a keyboard key to click. 😂
 
Back
Top