Cross-flow turbines, also known as vertical-axis turbines, convert the kinetic energy in moving fluid to mechanical energy using blades that rotate about an axis perpendicular to the incoming flow. Arrays of cross-flow turbines with well-considered geometries and control strategies can out perform equivalent turbines in isolation by up to 30%. We use data-driven methods with a hardware-in-the-loop experimental approach to optimize, control, and model arrays.