Well per instance data is not required, as per the Unreal implementation it only calculates the data per instance type and not per instance. Per instance data is calculated on the GPU. And speedtree looks awesome and you can have very good looking grass at 12 vertices (practically 2 quads) and bigger patches at 100 verts. You can read my performance numbers a little higher. As for procedurally generating it, it's quite trivial, no need for individual instances... The problem with procedural grass is that it tends to look uniformly even if you seed a little each instance. Take nomansky for example... 1quintiliom or whatever planets and you get bored after 9-10 planets i heard.