Yes, baked vertex animation / VAT is probably the right direction for this use case.
Instead of evaluating the skeleton for every algae, you bake the skinned deformation into a texture, then render many copies as instances or thin instances. That should avoid the “shared skeleton” problem, and each algae can be moved/scattered independently.
The trade-off is that it is still a pipeline/code solution: the animation has to be baked first, then the scene needs to load/use the baked data with BakedVertexAnimationManager. So it’s not something the glTF/Maya export alone will automatically solve unless you have a custom export/baking step.
Some useful references:
- Docs: Babylon.js docs
- API:
VertexAnimationBakerandBakedVertexAnimationManager - VAT with instances / thin instances: Vertex Animation Textures
- Recent thin instance + VAT discussion: Merged Mesh/Thin Instances + VAT
- Animation-group / GLB pipeline discussion: Baked Texture Animations with Animation Groups?
So the options are roughly:
- Clone the full rig per algae with code, using
AssetContainer.instantiateModelsToScene(). - Bake the deformation to VAT, then instance/thin-instance the animated mesh.
- Duplicate everything in Maya before export, which needs less runtime code but costs more file size/memory.
For a large number of animated algae, I’d investigate option 2.