I want to use pre-simulated smoke simulation assets from a library to avoid having to re-bake each time. For example, a large open scene with several smoke stacks rising off of a ground plane, I would simulate one smoke stack, bake the cache to an external file and then in my new scene file link same-sized cubes to the pre-baked caches and move and rotate them around to duplicate that particular smoke simulation. Is it possible to offset these by time so they're not exactly the same, or is it only possible with separate caches for each?
If you look at the point cache files, the default filename follows the format:
[identifier]_[frame]_[index].bphys. Unfortunately, the
[frame] in the filename doesn't actually correspond to the cache's actual frame number.
That means, the only way to offset a cache's frames is by parsing the contents of each file (e.g. writing a python script). Apparently, modifying the contents is not that straightforward. This page explains a little (towards the bottom). Glancing at the blender source code, it looks like you'll need to edit the points time, dietime, and lifetime; some cache files may also store the previous cache point's time data too.
If you know C, It may be easier to just write a patch for Blender to add the feature. That way, you can make use of the read/write methods from Blender's source. You could also request the feature; perhaps there is a developer who is familiar with the code who can easily add it.