The simple two-dimensional algorithm can be altered to account for elevation, or be made 3-dimensional without too much additional code [LOS], which I had planned to do eventually.
One way is to calculate position by pixel coordinates, which I've demonstrated, and which is way slow in a browser, which you've realized. Another way is to use existing methodology :-), which the competent have demonstrated on rec.games.roguelike.angband. The hint is, "write to the hard disk". Therefore, I have no need to publicly post my game, set, and match.
