You could take a look at the Textures constants page. If you scroll down to the Types section, you’ll see that there are plenty of data types to choose from, including THREE.UnsignedByteType. Not sure how this would affect the flocking/birds example, since I haven’t looked at its code, but it’s worth a shot!
Here’s a snippet from a project from 2017 where I needed to perform some GPGPU computation, and I ran into iOS Safari issues as well, so maybe it can be of some help.
if(/(iPad|iPhone|iPod)/g.test(navigator.userAgent)){
// iOS devices only support HalfFloatType
return THREE.HalfFloatType;
}else if(renderer.extensions.get("OES_texture_float")){
// Most devices support FloatType
return THREE.FloatType;
}else{
// Otherwise use UnsignedByte type
return THREE.UnsignedByteType;
}