Retiming .vdb cache


I’m wondering how I can retime a vdb to slow down,stop it(frame hold) or speed it up.

The idea is to keep the match move camera movements for the e_render while changing the speed of the cached channel sets of the sim.

I tried to use e_merge (multiply) with input field 1 connected to the e_channel(velocity) and input field 2 to an e_constant (scalar) but this didn’t seem to influence the density.
Do I need to combine them in some way before they go into the e_shader (right now I just connected them to the respective density and velocity inputs)?

Now, frame hold seems to do the trick to pause the anim and I may be able to keyframe the frames of the frame hold to fake a retime but I was hoping for a more direct and elegant approach.
Also, I didn’t have time yet to test this frame hold workaround, so there might be unforeseen effects, especially due to lack of interpolation.

thanks in advance.

Hi Enrico,

we currently do not support arbitrary retiming of voxel based fluid caches.
While this might be something seemingly simple for particle based fluids, the problem of retiming voxel based fluid caches is actually quite tricky.
While you can interpolate and approximate subframe samples by using the velocity field, it usually encounters issues in areas of high turbulence or velocity. When slowing things down too much (10x) shuttering or ghosting artefacts often appear when not careful. There are techniques that help, but they all have some drawbacks/limitations. Some of them can be prohibitively memory intensive or require a custom simulation/retiming pipeline by adding additional data into the cache format.
Retiming a generic vdb sequence is thus quite tricky and its hard to guarantee a 100% success rate from an algorithmic point of view.

I’ll add it to the wishlist as its something that keeps coming up and it would be nice to provide some capabilities in this area.

Hi Cristoph,

thank you for your quick response.
That’s a pitty, thanks for the explanation.

Yes, please add it to the wishlist, it would be really helpful and time saving (excuse the unintended pun) to have it implemented.

Sorry, you create a cool and powerful plugin and we just keep asking for more (;


It might work in my case, too. To create “heavy feeling” for Tornado. Current situation for vdb retime, just do it in Houdini and pipe it back to Eddy for rendering. I can prepare hip example for you if you want.


Hey Jacys,

that would be cool to see how that workaround for the time being could ehm … work (;


Enjoy it.

Brilliant, thanks a lot !