How would I model this?

See also this previous discussion:

-Gully