[hackerspaces] [sfx: Discuss] 3D printing of cool geometrical objects

Mark Adam dreamingforward at gmail.com
Fri Dec 7 00:59:38 CET 2012

On Thu, Dec 6, 2012 at 5:30 PM, Bruce Sherwood <bruce.sherwood at gmail.com> wrote:
> Glad you like Anton's stuff, Owen. Anton tells me that he can't think of
> anything to add.
> As for the tools he uses, he writes Python programs to do the calculations,
> with VPython to visualize the 3D objects. His program also writes out a data
> files to be sent to a 3D printer.

That's pretty cool, I think the general hackerspace community will be
interested in those tools.  Thanks for the info!


cc:  discuss at lists.hackerspaces.org

****Background context:  Bruce Sherwood (maintainer of the uber-cool
VPython 3-d programming environment -- well worth downloading and
checking out):*****

In response to a question, Anton comments that his 2D inventions,
including coffee mugs and tablet and phone pads decorated with them,
can be found at zazzle.com/tamfang/gifts.

Here's what Anton says about the 3D objects. Note that I've included
him in the cc's to this note.

The "Klein bagel", I am assured, is topologically equivalent to the
familiar bottle shape, though I haven't seen a continuous deformation

But it's fairly easy to see that both are equivalent to a rectangle
with opposite sides identified, one pair being reversed.

My bagel form starts with the lemniscate of Bernoulli.  Rotate it a
half-turn in a plane that's sweeping a full turn, and you're there.

Of course there are subtleties.  How much detail do you want?


http://kleinbottle.com/ -- the text is hilarious

For the ribbons on hyperspheres:

Consider two great circles on the surface of the unit hypersphere:
    ( cos(alpha), sin(alpha), 0, 0 )
    ( 0, 0, cos(beta), sin(beta) )

A ribbon can be stretched between them, always keeping unit radius:
    ( cos(gamma)*cos(alpha), cos(gamma)*sin(alpha),
        sin(gamma)*cos(alpha), sin(gamma)*sin(alpha) )

More interestingly, the ribbon can wrap around the circles at different speeds:
    ( cos(gamma)*cos(p*alpha), cos(gamma)*sin(p*alpha),
        sin(gamma)*cos(q*alpha), sin(gamma)*cos(q*alpha) )

And then I rotate coordinates so that the ribbon does not pass near
(1,0,0,0) -- because I like it that way -- and do a stereographic
    (X,Y,Z) = (x,y,z)/(1+w)
discarding those parts of the ribbon where w<0, to keep the resulting
figure compact.  The scale of the projection at the surface is twice
the scale at the center.
Part of the above is a fib: it's the easiest way to describe the
ribbon, but not quite how I generate it in fact; I don't remember
exactly why not.  But I've practically persuaded myself that the
following procedure is equivalent.

A point on the ribbon is indeed interpolated between the two circles:
    ( cos(gamma)*cos(alpha), cos(gamma)*sin(alpha),
        sin(gamma)*cos(beta), sin(gamma)*cos(beta) )
gamma itself is ((p*alpha+q*beta) mod (2*pi))/4.  The ribs in the
model represent constant alpha and constant beta.

On Wed, Dec 5, 2012 at 8:29 PM, Owen Densmore <owen at backspaces.net> wrote:
Could we get an explanation of the mathematical models behind the
figures?  I'm thinking of getting some for christmas presents and
would like to know what the shapes represent in n-space.

You received this message because you are subscribed to the Santa Fe
Complex "discuss" group.
To post to this group, send email to discuss at sfcomplex.org
To unsubscribe from this group, send email to
discuss+unsubscribe at sfcomplex.org
For more options, visit this group at

More information about the Discuss mailing list