# Use Inverse Stereographic Projection for a logarithmic spiral onto a sphere - 3d printing

I have the idea to use ResourceFunction["InverseStereographicProjection"] to project various plane curves onto a sphere for the purpose of 3d printing.

This would require that the plane curve has some kind of thickness so that it can be "booleaned" onto the sphere (shell for 3d printing). I thought I could start with the example shown in Wolfram documentation...(https://resources.wolframcloud.com/FunctionRepository/resources/InverseStereographicProjection)

logspiral =
Entity["PlaneCurve", "LogarithmicSpiral"]["ParametricEquations"][a,
b][t]
ParametricPlot[
Evaluate[logspiral /. {a -> 1, b -> .1}], {t, 0, 10 \[Pi]}]
sphericalloxodrome =
ResourceFunction["InverseStereographicProjection"][logspiral] //
Simplify


I explored this approach in Stereographic Projection in which I attempted to export the orange object but the resulting stl file was not suitable for 3d printing.

What would be the best way to "solidify" the spiral, use it as a cutter and boolean it onto the shell before exporting it as an stl file? I am relatively new to Mathematica and so I hope I can understand any potential responses correctly. Thanks!

I am not sure if I understand "thickness" correctly. I assume that you mean 3D thickness. Then:

fun[a_, b_, t_] =
sphericalloxodrome =
ResourceFunction["InverseStereographicProjection"][logspiral] //
Simplify

curve=ParametricPlot3D[fun[1, 0.1, t], {t, 0, 10 Pi}] /.
Line[pts_, rest___] :> Tube[pts, 0.05, rest]


If you want to put this spiral on a sphere you could say:

Show[{curve, Graphics3D[Sphere[]]}]


• Yes you are correct. Then the idea is to project this 3d spiral onto the 3d shell and perform a boolean operation and export as an stl. Nov 13, 2021 at 13:16
• I hope I interpret correctly what you mean by "project". I added this to my answer. Nov 13, 2021 at 13:37
• Well I think the resource function takes care of the projection of the curve from the plane to the sphere? I attempted to cut out the sphere with the spiral cutter via "rr = RegionDifference[reg2, reg1]" where reg2=curve and reg1=fun. Nothing happened. Nov 13, 2021 at 14:11
• Note the Sphere is only the surface, a Ball is the body. Nov 13, 2021 at 16:21