Trees? 🌳

There is an example here (select “Grass” in the dropdown) of loading a (non-animated) GLB model for a blade of grass and then instancing and animating it using NodeMaterial:

https://three-shadenodeloader.donmccurdy.com/

The particular NodeMaterial created in that scene is complex, and probably not the best example, but a similar approach would work with custom shaders or your own NodeMaterial. For a simpler example see:

https://threejs.org/examples/?q=instanc#webgl_instancing_scatter

^This example loads a GLB model of a singleflower. It then creates one InstancedMesh containing many copies of the stem from that flower, and another InstancedMesh with many blossoms. The stem and blossom are split so that we can put different colors on each blossom while keeping all the stems green. And then a simple scaling animation is applied.

You will likely need to script your animation in three.js, but you can bring the material and geometry assets from Blender or 3DS Max with glTF.