<p><a href="https://arxiv.org/pdf/0912.4540.pdf" rel="nofollow noreferrer">The Fibonacci sphere algorithm</a> is great for this. It is fast and gives results that at a glance will easily fool the human eye. <a href="http://www.openprocessing.org/sketch/41142" rel="nofollow noreferrer">You can see an example done with processing</a> which will show the result over time as points are added. <a href="https://www.vertexshaderart.com/art/79HqSrQH4meL63aAo/revision/9c9YN5LwBQKLDa4Aa" rel="nofollow noreferrer">Here's another great interactive example</a> made by @gman. And here's a simple implementation in python.</p>
<pre><code>import math


def fibonacci_sphere(samples=1000):

    points = []
    phi = math.pi * (3. - math.sqrt(5.))  # golden angle in radians

    for i in range(samples):
        y = 1 - (i / float(samples - 1)) * 2  # y goes from 1 to -1
        radius = math.sqrt(1 - y * y)  # radius at y

        theta = phi * i  # golden angle increment

        x = math.cos(theta) * radius
        z = math.sin(theta) * radius

        points.append((x, y, z))

    return points
</code></pre>
<p>1000 samples gives you this:</p>
<p><img src="https://i.stack.imgur.com/NsCif.png" alt="enter image description here" /></p>
Evenly distributing n points on a sphere
<p>I need an algorithm that can give me positions around a sphere for N points (less than 20, probably) that vaguely spreads them out. There's no need for "perfection", but I just need it so none of them are bunched together.</p>

<ul>
<li><a href="https://stackoverflow.com/questions/5408276/python-uniform-spherical-distribution">This question</a> provided good code, but I couldn't find a way to make this uniform, as this seemed 100% randomized.</li>
<li><a href="http://www.xsi-blog.com/archives/115" rel="noreferrer">This blog post</a> recommended had two ways allowing input of number of points on the sphere, but the <a href="http://sitemason.vanderbilt.edu/page/hmbADS" rel="noreferrer">Saff and Kuijlaars</a> algorithm is exactly in psuedocode I could transcribe, and the <a href="http://cgafaq.info/wiki/Evenly_distributed_points_on_sphere#Spirals" rel="noreferrer">code example</a> I found contained "node[k]", which I couldn't see explained and ruined that possibility. The second blog example was the Golden Section Spiral, which gave me strange, bunched up results, with no clear way to define a constant radius.</li>
<li><a href="http://mathworld.wolfram.com/SpherePointPicking.html" rel="noreferrer">This algorithm</a> from <a href="https://stackoverflow.com/questions/1841014/uniform-random-monte-carlo-distribution-on-unit-sphere">this question</a> seems like it could possibly work, but I can't piece together what's on that page into psuedocode or anything.</li>
</ul>

<p>A few other question threads I came across spoke of randomized uniform distribution, which adds a level of complexity I'm not concerned about. I apologize that this is such a silly question, but I wanted to show that I've truly looked hard and still come up short.</p>

<p>So, what I'm looking for is simple pseudocode to evenly distribute N points around a unit sphere, that either returns in spherical or Cartesian coordinates. Even better if it can even distribute with a bit of randomization (think planets around a star, decently spread out, but with room for leeway).</p>