Placing circles along a square spiral
JavaScript (ES7),  319  309 bytes
Expects (g)(k) and returns [x,y].
The formula for the spiral coordinates was inspired by this answer from Neil.

g=&gt;k=&gt;{a=[];p=[];r=[];H=Math.hypot;F=n=&gt;{while((j=p[n]=-~p[n],C=_=&gt;((i+2&gt;&gt;2)-i%2*j)*~-(i--&amp;2),x=C(i=(--j*4+1)**.5|0,j-=i*i&gt;&gt;2),y=C(),n)&amp;&amp;a.every(([N,X,Y])=&gt;~N+n|H(X,Y)&lt;2*H(x,y))&amp;&amp;!F(n-1,p[n]--)||a.some(([_,X,Y,R])=&gt;H(X-x,Y-y)&lt;R**.5+q**.5,q=-~r[n]));a.push([n,x,y,r[n]=q])};while(~~r[g-1]&lt;k)F(g-1);return[x,y]}

Try it online!
How?
One tricky point in the challenge is to figure out how many circles of generation \$n-1\$ must be processed before we can start generation \$n\$.
In this implementation, we don't attempt to put a new circle of generation \$n\$ at \$(x_0,y_0)\$ until there's at least one circle of generation \$n-1\$ at \$(x_1,y_1)\$ which is at least twice as far from the center of the spiral:
$$\sqrt{{x_1}^2+{y_1}^2}\ge2\times \sqrt{{x_0}^2+{y_0}^2}$$