I found your newest youtube video and it looks great! You managed to solder those up pretty fast. I'm going to post some updated code that greatly improves the fadeout smoothness, right now I think you see the occasional stutter on the trailing end of the pattern.
I can explain the original code a little better, too. That "CenterWidth" number controls how wide the full-on region is. If you set that to the same width as one of your bars, then it would completely fill the bar before the trailing edge came into view. Alternately, setting it to 1 would just make a dot scanning back and forth with leading and trailing fades, more of a Cylon effect. Now, the edges are controlled with the KittLeadingEdge[] and KittTrailingEdge[] arrays. Each number corresponds to an LED of that particular brightness tacked onto the edge of the CenterWidth bar. You can actually add or remove numbers to get the effect you need, the code will automatically account for the changing array size. You could have a 10-led fading edge or even have a full bright dot and then a blank space.
The NewKittFill function pulls everything together. Here are the parameters:
NewKittFill(int dir, int FillSpeed, int FadeSteps, int red, int green, int blue)
dir: 0 for one direction, 1 or greater for reverse
FillSpeed: raw input to delay() function in the code, usable range seems to be 0 to 20 ms, it controls the time between each fade step
FadeSteps: the number of divisions between each LED position, as it shifts the pattern; it will mix the current and next LED colors according to the ratio of the virtual array position. usable range seems to be 1 (no fading) to 15, and it has a big effect on speed.
red, green, blue: 0 to 1023, brightness of each color in the full-on bar. the leading and trailing edges scale all the colors.
This is definitely still some rough code, probably could be optimized a lot.