There is nothing in the current implementation of fftvis that would prevent us from simulating arrays with different beams, so we should probably make a PR to allow users to supply per-antenna beams. This doesn't scale very well the number of unique beams. We'd need to do a total of N_beams * (N_beams + 1) / 2 NUFFTs, which definitely does not scale as well as matvis, but still may be faster than matvis if the number of independent beams is small.