Posts

Color cycling breaks idle

One interesting side effect of color cycling is that it conflicts with the application’s current behavior of idling during hold state. The color should continue to cycle during hold. Therefore, the application obviously cannot idle during the hold state; it must continue to draw as usual. This is easy to implement, as it’s already implemented for capture, but it does defeat the purpose of the idling, which was to give the CPU and GPU time to cool down. This may be critical on a mini PC, and if that turns out to be the case, the solution is to avoid color cycling on the mini PC. This color cycling / idle issue falls into the “let’s cross that bridge when we get there” category. Color cycling will definitely be overrideable per slogan. Specifying a color for a given slogan in the CSV will disable color cycling for the duration of that slogan. That gives us a fine granularity with which to manage any potential overheating problems. Color cycling is one of those effects that can be ann...

Orthogonality of transitions

It’s annoying that there’s no transition code for the random typewriter effect. Making it a randomly selected variation of typewriter was a misguided choice. All effects should be treated equally in the sense that they all should have codes, so that they all can be scripted from a CSV. The motivation was that random typewriter is too similar to typewriter, but that should be handled by letting the user customize the relative probability of each transition. And in any case, the thinking was inconsistent, as we already have whole groups of effects that are very similar to each other, such as the four scrolling effects, for example. It shall be done, but not this morning. I have reserved this morning for coding color cycling, which will commence shortly; it’s all planned out like the invasion of Normandy. But I had a thought about that too...

Hollow transition

[to GPT5] I got a decent night sleep and woke up full of ideas. It’s funny how that happens. It’s a human thing. Here’ the first of some ideas that came to me in no particular order. I’ll relay them to you one at a time, so you can respond without feeling pressed for time or space. The melt transition could be adapted into a hollow transition. Instead of drawing the virgin character and erasing its outline, use the virgin character as a mask and draw its outline in the drawing color. The character would start out as a thin outline, which would gradually get thicker until the character became solid. Or in the other direction, the character would start out solid, and hollow out from the middle until it disappeared. Since we already have a melt probe (which even runs in a worker thread at startup!) we already know for each slogan exactly what outline stroke will cause that slogan to completely disappear. And that’s the same data we need for the hollow effect, no? One thing that worrie...

Motion Versus Obscuring

Thinking about the bigger picture, arguably the most important way to categorize these effects is by whether the text moves or not. Only the slide and scaling effects move the text. All the other effects work by obscuring the text, which remains stationary. This distinction is important visually though it’s challenging to explain why. You could put it simply and say that motion is exciting. So the our palette of effects becomes too heavily weighted towards stationary/obscuring effects, we risk the overall visual impression becoming dull. One solution is to come up with more motion-based effects, but this is easier said than done. An easier solution is to allow the user to assign weights to the effects, changing their probabilities. I’ve done similar things in my automated undo systems. For each effect, you specify a number that scales the probability of that effect occurring. If it’s 1, it has its usual probability. If it’s 2, it’s twice as likely; if it’s 0.5 it’s half as likely.

Elevator Door

My curator, Anthony, is a big fan of this slogan project, in fact it was he who suggested it. He’s a professional graphic design designer, and an excellent one, hence I always take his graphic design suggestions seriously. And he did suggest something. He suggested a Pac-Man transition. The idea would be a type of reveal, using a radial “radar sweep” over each letter. It’s pretty cool, but what I don’t like is that it will work well for square-ish and round letters but poorly for narrow letters like “I”. Unless you potentially make the sweep elliptical. But that would probably lose the Pac-Man vibe, visually. The larger category here is per-character reveals. The simplest example is a “window blind” reveal, one blind for each character. However, this would not be acceptable for a single line of text, as it would be indistinguishable from the “whole line” vertical reveal that we already do, and would therefore constitute a duplicate. The horizontal equivalent would be a “sliding door”...

Meet transition

I thought some more about the radiate effect, and I think for the moment it’s a no go, and here’s why. Radiate type things want to be round. Unfortunately, our text is not round, and so unavoidably there will be collisions and overlaps between letters, which will look clumsy. One solution to that would be to bend the text into a circle before radiating it. This would be relatively straightforward to do for a single line of text. For example, you could bend it into a circle keeping the center of the circle in the middle of the screen and it would actually be fairly clean and then once it’s in a circle of course radiating it is no problem. For two lines of text, it’s considerably harder, but still possible. However, for three lines of text it’s really out of the question, you’d have to do something special with the middle line like make it disappear or whatever and so the idea starts to break down. But while worrying about all of that, it occurred to me that there’s a muc...

Radiate transition

I thought of another fun transition! We could call it Radiate. Or maybe there’s a better name. Anyway, the idea is that each letter would independently move away from the center and off the screen. Or the reverse, if transitioning in. The path each letter follows, those are a bit tricky to calculate. One end must be the center-most corner of the glyph. it should move in a straight line until the glyph is completely off screen. The letter with the longest distance to travel should go off screen at the end of the transition. The only thing I can’t quite figure out is what the angles should be. Intuitively I would think they want to be radial, but I’m not sure on what basis.