I'm looking for a function that maps n variables to points on the surface of an n+1-dimensional cross polytope. For example, given one variable, the function would return a point on the perimeter of a square. Given two variables, it would return a point on the surface of an octahedron. Given three variables, it would return a point on one of the facets of a 16-cell. And so on.
Failing that, does anyone know a formula or algorithm for random point picking on the surface of a unit n-ball in the L1-norm? (These are also cross polytopes.) There are formulas for picking uniformly distributed random points within a ball, but I haven't been able to find one for picking points on its facets.
This is for an agent-based simulation in which the points on these objects represent a player's legal moves. A continuous function that does one of the above things would make it fairly easy to search for optimal moves.