I'm trying to write code to generate N points as far as possible from each other on a D dimensional hypersphere. The method I have so far is to take the number of points and hope it's less than D or 2*D, which it usually will be. Then I create N vectors that are 0 at every index except at index n where n is between 1 and N/2 and then duplicate that times it by -1 then append it, but I think that'll only generate points equally spaced apart on a portion of a sphere. Here's my code
import numpy as np
start = np.eye(D)[:N/2]
points = np.cat((start, -1*start), axis=1)