kubakub pieces beat falloff (old)
Make the stones of a building jump on the kick drum
- falloff
- report
You have a 3D model of a facade, you have a track, and you want the building to hit on the beat. Not a light flicker - the actual stones. That is what this node is for, and it is the one place in the kubakub pack where the motion isn't a wave or a timeline keyframe but the music itself.
kubakub pieces beat falloff produces a per-piece weight over time, driven by the beats, bars or markers of the kubakub director's timeline. It doesn't move anything on its own. It's a signal, and you plug it into kubakub pieces transform's falloff input, which is where the moving happens.
What comes out, and what it hooks into
The falloff output is a KUBA_FALLOFF: a weight per piece per frame. Feed it to kubakub pieces transform and the pushes, tilts and scales you set there only apply as strongly as the falloff says at that instant. Chain is always the same: kubakub scene pieces → one or more kubakub pieces transform nodes → kubakub pieces render. Without the falloff connected, transform applies at full strength the whole time, which is exactly as useful as it sounds.
The document input takes the director's document output. That's the whole trick - the director already knows the tempo, or the beats it detected in a sound you loaded, or the markers you dropped with M in the window. This node just reads that and hands you a pulse. The report output tells you what it actually found: which trigger fired, how many events landed in your duration. Check it once when nothing moves; nine times out of ten the director has no sound in it yet.
The inputs that matter
Four of them do almost all the work:
trigger-beats,barsormarkers. Bars are the sane default for a big architectural move; a stone push on every single beat at 128 BPM is a strobe, not a show.every_nth- thin it out.2on bars gives you a hit every other bar, which is usually the difference between "designed" and "twitchy".attackanddecay- seconds to the peak, then seconds to settle (it's an e-fold decay, sodecay0.3 is a quick snap and 2.0 is a slow swell). Defaults of 0.03 and 0.3 are a punch. If your building looks like it's vibrating, lengthen the decay before you touch anything else.spread- seconds from the first piece to the last. At0every piece kicks at once. Give it half a second and the kick runs across the facade like a ripple, which is the effect people actually screenshot.orderdecides which end gets it first.
amount multiplies the result, seed changes the random pattern when you've picked a random order. That's it - there is no frequency dial and no curve editor here.
Install
Same as every other node in the pack. ComfyUI Manager → search kubakub nodes → install → restart, or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/kubakubkub/ComfyUI_KubaNodes
python -m pip install -r ComfyUI_KubaNodes/requirements.txt
The only hard dependency is OpenCV (opencv-python-headless); everything else ships with ComfyUI. But this node lives in the 3d / pieces group, so you need Blender 4.x installed for the chain around it to actually render - the pack finds it in Program Files or on PATH, or you set blender = ... in kubakub.ini. You also need ComfyUI 0.37.0 or newer, since the pack uses the V3 node API.
If you don't have Blender and don't want it, switch the group off in kubakub.ini (3d = off) and the nodes stop loading entirely rather than cluttering your menu.
Where people get burned
No sound, no beats. The trigger type says the events come from the timeline's tempo or its sound. If the director window has neither, you get silence - a flat falloff and a building that doesn't move. Put the sound on the director's audio input or load it in the window first.
Markers need a human. markers only fires on the M marks you placed by hand in the director. It's the right pick when the track has a drop that no beat detector will find, and the wrong pick when you haven't marked anything.
Three-hour renders for a four-bar idea. Rendering is per frame in Cycles with no idea what matters to you. Work at resolution_scale 0.5 and samples 32 in kubakub pieces render while you're dialling the feel in, then go up once. The pack caches every rendered frame, so a change renders only the frames that changed - which is a good reason not to make changes that shift frame zero without expecting a full re-render.
Confusing this with pieces falloff. This is offline per-shot beat work. If you want a wave, a stagger or a pulse that isn't tied to audio, that's the other node.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| document | STRING | The 'document' output of kubakub director. | |
| trigger | COMBO | beats | beats and bars come from the tempo (or the sound) of the timeline; markers from M. |
| every_nth | INT | 11–64 | Only every nth beat / bar / marker. |
| attack | FLOAT | 0.030–10 | Seconds to the peak. |
| decay | FLOAT | 0.300.01–20 | Seconds to settle (e-fold). |
| spread | FLOAT | 0.000–20 | Seconds the kick takes from the first piece to the last. |
| order | COMBO | left to right | With spread: which piece the kick reaches first. |
| seed | INT | 10–100000 | Another number = another random pattern (the same number = the same result). |
| amount | FLOAT | 1.00-10–10 | Multiplies the kick (negative = the other way). |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| falloff | KUBA_FALLOFF | — |
| report | STRING | — |