Here's a few screenshots of the (nearly final) computer model:

Its a mobius ring with a triangular crossection. Rachael had brought up the idea of having a mobius strip ring like this, but I wasn't a fan of how the curve isn't continuous. I figured a two sided strip with a continious curve wouln't result in a very wearable ring, but I figured one with three might be more so. I made a few models out of wax and clay years ago, and vaugely dreamed of having enough mathematical sophistication to construct it perfectly, and over the course of serveral months this winter and spring I finally worked it out. I experimented with a lot of stuff and eventually settled on some matrix transformation methods. Reading some stuff like this may have helped: Mobius ring

The great

The previous incarnation of the Ring, which finished its long journey to me back in May, is here:

As you can see, this one is totally metal. Its made of silver, and I basically drew it in Sketchup. This was before I figured out all the mathemagic that's required to make it have smooth sides and make it easily realizable. The segmented versions took about five hours each for me to draw, with only sixteen segments. I saw the futility of my Sketchy-ways, and decided to take the plunge and write a program to render it with whatever variations I wanted.

And here it is! Its written in Matlab; I may at some point re-write it in something cooler.

%make mobius ring

num_segments = 360;

side_length = pi()/10;

circumradius = 1/2 * side_length *csc(pi()/3) ;

%circumfrence = 4.7; %5.1 results in 5.3 effectively

circumfrence = 5.0; %5.3 results in 5.5

inradius = 1/2 * side_length *cot(pi()/3);

radius = (circumfrence / (2 * pi))+circumradius;

% stretch=1.61803399; %phi

stretch=2.71828183; %e

starting_plane = [circumradius*sin(0/(180/pi())), circumradius*cos(0/(180/pi())), 0

circumradius*sin(120/(180/pi())), circumradius*cos(120/(180/pi())), 0

circumradius*sin(240/(180/pi())), circumradius*cos(240/(180/pi())), 0];

translation = zeros(3);

translation(:,1)=radius;

twist = 120;

theta_z = (twist / num_segments)/(180/pi());

theta_y = (360/num_segments)/(180/pi());

theta_yi= theta_y;

row = 4;

vertices=starting_plane+translation;

for i = 1:(num_segments)

theta_zi= i * theta_z;

Rz=[cos(theta_zi), -sin(theta_zi), 0

sin(theta_zi), cos(theta_zi), 0

0, 0, 1];

new_plane=starting_plane*Rz;

new_plane = new_plane + translation;

theta_yi= theta_yi + theta_y;

Ry= [cos(theta_yi), 0, sin(theta_yi)

0, 1, 0

-sin(theta_yi), 0, cos(theta_yi)];

new_plane = new_plane*Ry;

vertices((row:(row+2)),:)=new_plane;

row = row+3;

end

S = [1 0 0

0 stretch 0

0 0 1];

vertices = vertices * S;

connections = zeros(num_segments*3,3);

connections(:,1)=(1:num_segments*3)';

con_2 = connections;

con_3 = connections;

for i =1:num_segments*3;

con_2(i,3) = con_2(i,1)-1;

con_2(i,2) = con_2(i,1)+2;

end

for i =1:num_segments*3;

con_3(i,3) = con_3(i,1)+2;

con_3(i,2) = con_3(i,1)+3;

end

connections = cat(1,con_2, con_3);

connections = mod(connections, ((num_segments*3)));

num_connections = size(connections);

num_connections = num_connections(1);

row = 1;

normals=zeros((triangles_count),3);

for i = 1:(triangles_count/3)

a = vertices((connections(row)+1), :);

b = vertices((connections(row + 1)+1), :);

c = vertices((connections(row + 2)+1), :);

AB = [(b(1)-a(1)), (b(2)-a(2)), (b(3)-a(3))];

AC = [(c(1)-a(1)), (c(2)-a(2)), (c(3)-a(3))];

%do crossproduct;

n = cross(AB,AC);

for j = row:(row+3)

normals(j,:) = n;

end

row = row + 3;

end

plot3(vertices(:,1),vertices(:,2),vertices(:,3));

axis([-4 4 -4 4 -4 4]);