<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-34118891</id><updated>2011-04-21T12:19:29.244-07:00</updated><title type='text'>The Lorentz Frame</title><subtitle type='html'>Continuation of older blog at http://weblogs.asp.net/brianbec

Everything to do with physics, mathematics, computing, simulation, programming languages, and so on.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lorentzframe.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lorentzframe.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>LorentzFrame</name><uri>http://www.blogger.com/profile/11965375397303876893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-34118891.post-115915657706810019</id><published>2006-09-24T20:51:00.000-07:00</published><updated>2007-10-22T16:02:43.408-07:00</updated><title type='text'>Tumbling Video (experiment)</title><content type='html'>My friend Van of &lt;a href="http://www.wdv.com/"&gt;Warren Design Visions&lt;/a&gt; told me to post my tumbling video on &lt;a href="http://www.youtube.com/"&gt;youtube&lt;/a&gt;. Let's hope this works. If the embedded video doesn't show up, try&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=Zne5cVXzPtA"&gt;http://www.youtube.com/watch?v=Zne5cVXzPtA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="350" width="400"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Zne5cVXzPtA"&gt;&lt;embed src="http://www.youtube.com/v/Zne5cVXzPtA" type="application/x-shockwave-flash" width="400" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34118891-115915657706810019?l=lorentzframe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorentzframe.blogspot.com/feeds/115915657706810019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34118891&amp;postID=115915657706810019' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115915657706810019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115915657706810019'/><link rel='alternate' type='text/html' href='http://lorentzframe.blogspot.com/2006/09/tumbling-video-experiment.html' title='Tumbling Video (experiment)'/><author><name>LorentzFrame</name><uri>http://www.blogger.com/profile/11965375397303876893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34118891.post-115906134410081552</id><published>2006-09-23T18:15:00.000-07:00</published><updated>2006-09-23T18:29:58.486-07:00</updated><title type='text'>A Famous Instability</title><content type='html'>Take a hardcover book that you don't mind dropping on the floor and put a couple of rubber bands around it to keep it closed. Observe that there are three axes of symmetry of the book: longest, shortest, and intermediate. Toss the book in the air so that it spins about the shortest axis. That's the axis that passes from the front of the book to the back (unless you have picked a very strangely shaped book). Try to catch it, too, but notice that the book starts off spinning around this axis, and continues spinning around this axis. This is a stable spinning motion. Now toss the book in the air so that it spins around the longest axis, most probably the axis from the top of the book to the bottom. Stable. Now, one more time, spin about the middle axis. Whoops! It won't stay spinning about that axis, but tumbles all over the place. UNSTABLE about the middle axis.&lt;br /&gt;&lt;br /&gt;Somewhere in my vast library I have a theorem about this, which I'll try to resurrect for another blog. But this time I just want to point out that I've reproduced this behavior in my little Mathematica laboratory of rigid-body motion. I'm not sure how to publish a Flash movie on this blog, or, in fact, anywhere else on the web, but I do have one. Here's a snapshot:&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Tumble001.png" border="0" /&gt;&lt;br /&gt;&lt;p&gt;I've got three versions of this movie, one showing stable spinning about the x (red) axis, another showing stable spinning about the y (green) axis, and the third showing UNstable spinning about the z (blue) axis. All three of them use the same 4th-order Runge-Kutta integrator of the rigid-body equations of motion for free spinning, which I coded up by hand in Mathematica. I'll be explaining this in future installments.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34118891-115906134410081552?l=lorentzframe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorentzframe.blogspot.com/feeds/115906134410081552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34118891&amp;postID=115906134410081552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115906134410081552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115906134410081552'/><link rel='alternate' type='text/html' href='http://lorentzframe.blogspot.com/2006/09/famous-instability.html' title='A Famous Instability'/><author><name>LorentzFrame</name><uri>http://www.blogger.com/profile/11965375397303876893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34118891.post-115897857690574533</id><published>2006-09-22T19:22:00.000-07:00</published><updated>2006-09-22T19:29:36.916-07:00</updated><title type='text'>Fun with Shapes</title><content type='html'>&lt;span style="font-family:courier new;"&gt;rcoord:={Random[],Random[],Random[]}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/ShapeFun001.png" border="0" /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;eloof[f_]:=TranslateShape[&lt;br /&gt;rotw[(2rcoord-1)Pi,AffineShape[wcube,rcoord]]&lt;br /&gt;, f rcoord];&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/ShapeFun002.png" border="0" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/ShapeFun003.png" border="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34118891-115897857690574533?l=lorentzframe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorentzframe.blogspot.com/feeds/115897857690574533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34118891&amp;postID=115897857690574533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115897857690574533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115897857690574533'/><link rel='alternate' type='text/html' href='http://lorentzframe.blogspot.com/2006/09/fun-with-shapes.html' title='Fun with Shapes'/><author><name>LorentzFrame</name><uri>http://www.blogger.com/profile/11965375397303876893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34118891.post-115897532049027677</id><published>2006-09-22T18:28:00.000-07:00</published><updated>2006-09-22T19:36:25.676-07:00</updated><title type='text'>Depicting Rotations via Euler Angles</title><content type='html'>Here are the promised OBJECT-rotation operators. This actually took me much longer to explain than to create.&lt;br /&gt;&lt;br /&gt;Using Mathematica once again, Consider a vector w representing angular velocity by its direction and magnitude. The direction specifies the axis of rotation and the magnitude specifies a positive twist rate in radians per unit time about this axis via the right-hand rule: thumb pointing along the axis, fingers curling in the sense of positive twist. To animate rotations, multiply w by dt to get dw, a small but finite actual rotation. Use "RotateShape," which documentation says "takes Euler angles," to depict such rotations.&lt;br /&gt;&lt;br /&gt;Given dw's components, then, what arguments to supply to "RotateShape?" There are lots of different Euler-angle sets. This one turns out to be zxz frame-wise:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;xaxis=Line[{{0,0,0},{1,0,0}}];&lt;br /&gt;yaxis=Line[{{0,0,0},{0,1,0}}];&lt;br /&gt;zaxis=Line[{{0,0,0},{0,0,1}}];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Look at the x axis after rotating about +z counterclockwise by a small angle, say p/6. If RotateShape rotates the FRAME, expect a small negative y contribution. If RotateShape rotates the OBJECT, expect a small positive y contribution:&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/euler001.png" border="0" /&gt;&lt;br /&gt;Look at the y axis after a rotation about +x by a small angle. Expect small negative z contribution:&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Euler002.png" border="0" /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Picture an all-positive w, in the first octant of E3. To rotate the image of an object about such a w via "RotateShape," first get the frame's y axis directly under w by a negative twist about z, then do a negative twist about new x to get z aligned with w, then twist by negative mag[w], to twist the OBJECT rather than the frame, then undo the first two twists.&lt;/p&gt;&lt;p&gt;phi[w] is the angle w makes with the y axis, measured CLOCKwise from y to w in the xy plane. The first Euler angle should be a negative z twist by this angle.&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Euler003.0.png" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;theta[w] is the angle w makes with the z axis, measured counterclockwise from z to w in their common plane. The second Euler angle should be a negative x twist to align the new z axis with w.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Euler004.png" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Here's the rotation op:&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Euler005.png" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;And an animator for it:&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Euler006.png" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;And some evidence that it's working right&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Euler007.png" border="0" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Euler008.png" border="0" /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Euler009.png" border="0" /&gt;where&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;s3p=Show[Graphics3D[#&lt;br /&gt;,FaceGrids-&gt;All&lt;br /&gt;,Axes-&gt;True&lt;br /&gt;,AxesLabel-&gt;{"x","y","z"}&lt;br /&gt;,Lighting-&gt;False]&lt;br /&gt;,ImageSize-&gt;Automatic]&amp;amp;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:0;"&gt;This is good enough to support animation of rigid bodies in motion. &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34118891-115897532049027677?l=lorentzframe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorentzframe.blogspot.com/feeds/115897532049027677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34118891&amp;postID=115897532049027677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115897532049027677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115897532049027677'/><link rel='alternate' type='text/html' href='http://lorentzframe.blogspot.com/2006/09/depicting-rotations-via-euler-angles.html' title='Depicting Rotations via Euler Angles'/><author><name>LorentzFrame</name><uri>http://www.blogger.com/profile/11965375397303876893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34118891.post-115885468610464984</id><published>2006-09-21T08:31:00.000-07:00</published><updated>2006-09-21T09:04:46.230-07:00</updated><title type='text'>Models for Orientation Gadgets</title><content type='html'>Here is some Mathematica code, without explanation, for improved orientation-visualization gadgetry. I'll do the display operators later, but I'm rushing out the door:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;vcube=&lt;br /&gt;TranslateShape[&lt;br /&gt;{FaceForm[RGBColor[0,0,1],RGBColor[1,1,0]]&lt;br /&gt;,Polygon[{{0,0,0},{1,0,0}(*xy*)&lt;br /&gt;,{1,1,0},{0,1,0}}]&lt;br /&gt;,Polygon[{{0,0,1},{1,0,1}&lt;br /&gt;,{1,1,1},{0,1,1}}]&lt;br /&gt;,FaceForm[RGBColor[0,1,0],RGBColor[1,0,1]]&lt;br /&gt;,Polygon[Reverse[{{0,1,0},{1,1,0}&lt;br /&gt;,{1,1,1},{0,1,1}}]](*zx*)&lt;br /&gt;,Polygon[Reverse[{{0,0,0},{1,0,0}&lt;br /&gt;,{1,0,1},{0,0,1}}]]&lt;br /&gt;,FaceForm[RGBColor[1,0,0],RGBColor[0,1,1]]&lt;br /&gt;,Polygon[{{0,0,0},{0,1,0}&lt;br /&gt;,{0,1,1},{0,0,1}}]&lt;br /&gt;,Polygon[{{1,0,0},{1,1,0},{1,1,1}&lt;br /&gt;,{1,0,1}}]&lt;br /&gt;},{-.5,-.5,-.5}];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;x2pols={FaceForm[RGBColor[0,0,0],RGBColor[.5,.5,.5]]&lt;br /&gt;,Polygon[&lt;br /&gt;Reverse[{{1,1,0},{2.5,6,0},{3,6,0},{3,4+1/3,0},{2,1,0}}/12.]]&lt;br /&gt;,Polygon[&lt;br /&gt;Reverse[{{4,1,0},{3,4+1/3,0},{3,6,0},{3.5,6,0},{5,1,0}}/12.]]&lt;br /&gt;,Polygon[&lt;br /&gt;Reverse[{{3,6,0},{2.5,6,0},{1,11,0},{2,11,0},{3,7+2/3,0}}/12.]]&lt;br /&gt;,Polygon[&lt;br /&gt;Reverse[{{3,6,0},{3,7+2/3,0},{4,11,0},{5,11,0},{3.5,6,0}}/12.]]&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;y2pols={FaceForm[RGBColor[0,0,0],RGBColor[.5,.5,.5]]&lt;br /&gt;,Polygon[&lt;br /&gt;Reverse[{{2.5,1,0},{2.5,6,0},{3.5,6,0},{3.5,1,0}}/12.]]&lt;br /&gt;,Polygon[&lt;br /&gt;Reverse[{{3,6,0},{2.5,6,0},{1,11,0},{2,11,0},{3,7+2/3,0}}/12.]]&lt;br /&gt;,Polygon[&lt;br /&gt;Reverse[{{3,6,0},{3,7+2/3,0},{4,11,0},{5,11,0},{3.5,6,0}}/12.]]&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;z2pols={FaceForm[RGBColor[0,0,0],RGBColor[.5,.5,.5]]&lt;br /&gt;,Polygon[&lt;br /&gt;Reverse[{{1,1,0},{1.3,2,0},{5,2,0},{5,1,0}}/12.]]&lt;br /&gt;,Polygon[&lt;br /&gt;Reverse[{{1.3,2,0},{3.7,10,0},{4.7,10,0},{2.3,2,0}}/12.]]&lt;br /&gt;,Polygon[&lt;br /&gt;Reverse[{{1,11,0},{5,11,0},{4.7,10,0},{1,10,0}}/12.]]&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;combp=Join[#1,TranslateShape[#2,{.5,0,0}]]&amp;amp;;&lt;br /&gt;&lt;br /&gt;xy2p=combp[x2pols,y2pols];&lt;br /&gt;yz2p=combp[y2pols,z2pols];&lt;br /&gt;zx2p=combp[z2pols,x2pols];&lt;br /&gt;&lt;br /&gt;face2labels=&lt;br /&gt;TranslateShape[&lt;br /&gt;{TranslateShape[RotateShape[zx2p,Pi,Pi/2,0], {1,0,0}]&lt;br /&gt;,TranslateShape[RotateShape[zx2p,Pi,Pi/2,0],{1,1,0}]&lt;br /&gt;,RotateShape[yz2p,0,-Pi/2,-Pi/2]&lt;br /&gt;,TranslateShape[RotateShape[yz2p,0,-Pi/2,-Pi/2],{1,0,0}]&lt;br /&gt;,xy2p&lt;br /&gt;,TranslateShape[xy2p,{0,0,1}]},{-.5,-.5,-.5}];&lt;br /&gt;&lt;br /&gt;wcube=Chop[Join[AffineShape[vcube,{0.99,0.99,0.99}],face2labels]];&lt;br /&gt;&lt;br /&gt;thing3={Thickness[0.010]&lt;br /&gt;,RGBColor[1,0,0]&lt;br /&gt;,Line[{{0,0,0},{1,0,0}}]&lt;br /&gt;,RGBColor[0,1,0]&lt;br /&gt;,Line[{{0,0,0},{0,1,0}}]&lt;br /&gt;,RGBColor[0,0,1]&lt;br /&gt;,Line[{{0,0,0},{0,0,1}}]&lt;br /&gt;,RGBColor[0,1,1]&lt;br /&gt;,Line[{{0,0,0},{-1,0,0}}]&lt;br /&gt;,RGBColor[1,0,1]&lt;br /&gt;,Line[{{0,0,0},{0,-1,0}}]&lt;br /&gt;,RGBColor[1,1,0]&lt;br /&gt;,Line[{{0,0,0},{0,0,-1}}]&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;xcube=Join[AffineShape[thing3,{2,2,2}],wcube];&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34118891-115885468610464984?l=lorentzframe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorentzframe.blogspot.com/feeds/115885468610464984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34118891&amp;postID=115885468610464984' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115885468610464984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115885468610464984'/><link rel='alternate' type='text/html' href='http://lorentzframe.blogspot.com/2006/09/models-for-orientation-gadgets.html' title='Models for Orientation Gadgets'/><author><name>LorentzFrame</name><uri>http://www.blogger.com/profile/11965375397303876893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34118891.post-115878222460204237</id><published>2006-09-20T10:14:00.000-07:00</published><updated>2006-09-20T22:20:13.080-07:00</updated><title type='text'>Visualizing Orientation in E3</title><content type='html'>&lt;p&gt;I'm working toward a little laboratory for rigid-body simulation. For that, we need some more-or-less generic rigid bodies and a way of visualizing their positions and orientations in Euclidean 3-space (E3). E3 is good for now; we might get to curved spacetime later. &lt;/p&gt;&lt;p&gt;To get started, let's use &lt;a href="http://www.wolfram.com"&gt;Mathematica&lt;/a&gt;. Right out of the box, investigating 3D plotting from the help file, do this: &lt;/p&gt;&lt;pre&gt;rcoord := {Random[], Random[], Random[]}&lt;br /&gt;blarg[f_] := Module[{loc = f rcoord, siz = rcoord},&lt;br /&gt;    Cuboid[loc,&lt;br /&gt;      Table[loc[[i]] + siz[[i]], {i, 3}]]]&lt;br /&gt;Show[Graphics3D[Table[blarg[3], {20}]], FaceGrids -&gt; All, &lt;/pre&gt;&lt;pre&gt;Axes -&gt; True, AxesLabel -&gt; {"x", "y", "z"},&lt;br /&gt;    ViewPoint -&gt; {1.3, -2.4, 2.}];&lt;br /&gt;&lt;/pre&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/E3_001.2.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/E3_001.2.png" border="0" /&gt;&lt;/a&gt;Great. We have a way of spraying cubes around E3, and we can see their positions. Now, we need a way to track their orientations. The help file says "RotateShape" is the way to go. I found out by experimentation that "Cuboid" doesn't rotate like other graphics, so I made my own. &lt;p&gt;I wanted a color coding for the orientation of each of the six planes of a cube, so I came up with this. Let the unit vectors of the cube-fixed reference frame be x, y, z; in that order. Assign to their positive directions the primary colors, Red, Green, and Blue (RGB), in that order. Assign to their negative directions the &lt;em&gt;complementary&lt;/em&gt; colors, Cyan, Magenta, and Yellow, respectively (CMY). The following illustrates:&lt;/p&gt;&lt;pre&gt;thing2 = {Thickness[.02]&lt;br /&gt;      , RGBColor[1, 0, 0]&lt;br /&gt;      , Line[{{0, 0, 0}, {1, 0, 0}}]&lt;br /&gt;      , RGBColor[0, 1, 0]&lt;br /&gt;      , Line[{{0, 0, 0}, {0, 1, 0}}]&lt;br /&gt;      , RGBColor[0, 0, 1]&lt;br /&gt;      , Line[{{0, 0, 0}, {0, 0, 1}}]&lt;br /&gt;      , RGBColor[0, 1, 1]&lt;br /&gt;      , Line[{{0, 0, 0}, {-1, 0, 0}}]&lt;br /&gt;      , RGBColor[1, 0, 1]&lt;br /&gt;      , Line[{{0, 0, 0}, {0, -1, 0}}]&lt;br /&gt;      , RGBColor[1, 1, 0]&lt;br /&gt;      , Line[{{0, 0, 0}, {0, 0, -1}}]&lt;br /&gt;      };&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/E3_002.0.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/E3_002.0.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Embrace the right-hand rule and the wedge product for 2-forms, that is, for oriented planes, defining positive orientation for planes. Because of the lucky accidents that in E3 there are three basis vectors AND three planes, &lt;tt&gt;x^y&lt;/tt&gt;, &lt;tt&gt;y^z&lt;/tt&gt;, and &lt;tt&gt;z^x&lt;/tt&gt;, plus three primary colors AND three secondary colors, we can unify color coding for vectors and planes:&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;x ~ y^z ~ Red   ~ {1,0,0},  -x ~ z^y ~ Cyan    ~ {0,1,1}&lt;br /&gt;y ~ z^x ~ Green ~ {0,1,0},  -y ~ x^z ~ Magenta ~ {1,0,1}&lt;br /&gt;z ~ x^y ~ Blue  ~ {0,0,1},  -z ~ y^x ~ Yellow  ~ {1,1,0}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Just to nail this down, hold up your right hand, thumb toward your face, and imagine the wrist bones on your pinky side touching the origin of the &lt;tt&gt;y^z&lt;/tt&gt; plane, so that the plane's y basis vector points to the right and the plane's z basis vector points upward. &lt;/p&gt;&lt;p&gt;Let your fingers curl or sweep from the y direction to the z direction. Then, your thumb represents the x direction. If your thumb points at your face, then you should see Red, and if your thumb points away from your face, then you should see Cyan. That little procedure accounts for the first line above. Repeat for the other two lines, then convince yourself that you understand the following pictures. Their construction is a little too lengthy to reproduce in a blog entry.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/E3_003.11.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/E3_003.11.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/E3_004.0.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/E3_004.0.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/E3_006.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/E3_006.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;The final image below shows the body rotated with respect to the "world frame" and sets the stage for visualizing Newtonian rigid-body dynamical simulation. Again, make sure you can visually "parse" this image. The Green plane represents the body-fixed positive &lt;tt&gt;y ~ z^x&lt;/tt&gt; axis and plane pointing at you. The Cyan plane represents the body-fixed negative &lt;tt&gt;x ~ y^z&lt;/tt&gt; axis-plane pointing at you, or the positive ones pointing away from you. The Yellow plane represents the body-fixed positive &lt;tt&gt;z ~ x^y&lt;/tt&gt; axis-plane pointing away from you, or, likewise, the negative ones pointing toward you. &lt;/p&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/E3_007.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/E3_007.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34118891-115878222460204237?l=lorentzframe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorentzframe.blogspot.com/feeds/115878222460204237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34118891&amp;postID=115878222460204237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115878222460204237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115878222460204237'/><link rel='alternate' type='text/html' href='http://lorentzframe.blogspot.com/2006/09/visualizing-orientation-in-e3.html' title='Visualizing Orientation in E3'/><author><name>LorentzFrame</name><uri>http://www.blogger.com/profile/11965375397303876893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34118891.post-115816690287904481</id><published>2006-09-13T09:47:00.000-07:00</published><updated>2006-09-13T10:08:48.763-07:00</updated><title type='text'>Euclid Tougher than Minkowski</title><content type='html'>We've done a few &lt;a href="http://www.geometryexpressions.com"&gt;Geometry Expressions&lt;/a&gt; demos showing off Minkowski geometry and how it solves problems in Special Relativity. How about Euclidean geometry? The usual 2D rotation diagram is easy enough to set up. Let point B have coordinates x,y. Let the red frame be rotated by angle theta with respect to the blue frame and ask "What are the coordinates of B in the red frame?" We all remember the answer: x' = x cos theta + y sin theta, y' = - x sin theta + y cos theta. What does GX say?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/Euclidean3.1.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Euclidean3.1.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;JF is obviously (BD = x) cos theta, as is IC = (AC = x) cos theta, just by looking at the picture. Ditto HF = (BC = y) sin theta, and the y' coordinate is just as easy to see. &lt;a href="http://www.wolfram.com"&gt;Mathematica&lt;/a&gt;'s simplification machinery is better than GX's, and it's a simple matter to copy-as and paste back to Mathematica,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/Euclidean3A.1.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Euclidean3A.1.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I'm getting quite accustomed to this procedure. It's amusing as well as useful.&lt;br /&gt;&lt;br /&gt;GX file for you to download is at &lt;a href="http://home.comcast.net/~brianbec/Euclidean3.gx"&gt;http://home.comcast.net/~brianbec/Euclidean3.gx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34118891-115816690287904481?l=lorentzframe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorentzframe.blogspot.com/feeds/115816690287904481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34118891&amp;postID=115816690287904481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115816690287904481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115816690287904481'/><link rel='alternate' type='text/html' href='http://lorentzframe.blogspot.com/2006/09/euclid-tougher-than-minkowski.html' title='Euclid Tougher than Minkowski'/><author><name>LorentzFrame</name><uri>http://www.blogger.com/profile/11965375397303876893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34118891.post-115807887187014290</id><published>2006-09-12T09:22:00.000-07:00</published><updated>2006-09-12T09:39:04.660-07:00</updated><title type='text'>Velocity Addition for Free</title><content type='html'>&lt;p&gt;Ever go through the traditional derivation of the relativistic formula for addition of velocities? Painful, because there are a bunch of things you have to hold in your head for the duration of a calculation. Modern tools make this easy, almost obvious. First, recall this sketch:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/Lorentz9.png"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Lorentz9.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;in which &lt;a href="http://www.geometryexpressions.com"&gt;Geometry Expressions&lt;/a&gt; calculates the Lorentz transformation for free. Now, suppose the point B really represents the endpoint of a particle path, the beginning-point being the origin (0,0). In the blue frame -- our lab frame -- the (average) velocity of the particle over this path is x/t, which we can write as u. What's the velocity of the same particle path, this time measured in the red frame, moving with velocity v w.r.t. our blue frame? Why, let's let &lt;a href="http://www.wolfram.com"&gt;Mathematica&lt;/a&gt; compute it for us. Use the "Edit / Copy As / Mathematica" menu item in Geometry Expressions on the yellow expressions in the sketch above, and just paste into Mathematica:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/Lorentz10.png"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Lorentz10.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Beautiful simplicity itself, eh? Once again, I've been lazy with absolute-value expressions, just sidestepping them. This means the signs -- but only the signs -- may turn out wrong and we would have to use common sense to correct them. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34118891-115807887187014290?l=lorentzframe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorentzframe.blogspot.com/feeds/115807887187014290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34118891&amp;postID=115807887187014290' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115807887187014290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115807887187014290'/><link rel='alternate' type='text/html' href='http://lorentzframe.blogspot.com/2006/09/velocity-addition-for-free.html' title='Velocity Addition for Free'/><author><name>LorentzFrame</name><uri>http://www.blogger.com/profile/11965375397303876893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34118891.post-115791062604936944</id><published>2006-09-10T10:21:00.000-07:00</published><updated>2006-09-10T10:50:26.096-07:00</updated><title type='text'>Double Doppler for Free</title><content type='html'>&lt;p&gt;The last post showed the relativistic Doppler effect measured in a stationary frame from bouncing signals off an object in a moving frame. How about two moving frames? &lt;a href="http://www.geometryexpressions.com"&gt;Geometry Expressions&lt;/a&gt; does a really good job, but, this time, the results are sufficiently hairy that we must help out a bit. The Minkowski sketch is simple enough -- one frame has speed u and the other has speed v.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/Lorentz4.1.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Lorentz4.0.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I chopped off this very hairy expression for the pulse duration in the v frame:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/Lorentz5.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Lorentz5.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;We all know that simplifying algebraic expressions is a tough problem, and sometimes doesn't give the results we want. So, I used GX's "copy to &lt;a href="http://www.wolfram.com"&gt;Mathematica&lt;/a&gt; form", and, after a FullSimplify in MMA, got this:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/Lorentz6.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Lorentz6.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This still wasn't good enough for me, so, by hand, I figured this:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/Lorentz7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7411/3755/400/Lorentz7.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;But, symbolic checking of equality is problematic because of the absolute-value functions, resulting from the fact that we didn't constrain u and v adequately to be less than one = c. I'm lazy, so I checked equality numerically: &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/Lorentz8.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7411/3755/400/Lorentz8.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34118891-115791062604936944?l=lorentzframe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorentzframe.blogspot.com/feeds/115791062604936944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34118891&amp;postID=115791062604936944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115791062604936944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115791062604936944'/><link rel='alternate' type='text/html' href='http://lorentzframe.blogspot.com/2006/09/double-doppler-for-free.html' title='Double Doppler for Free'/><author><name>LorentzFrame</name><uri>http://www.blogger.com/profile/11965375397303876893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34118891.post-115781842345550767</id><published>2006-09-09T09:09:00.000-07:00</published><updated>2006-09-10T09:12:10.646-07:00</updated><title type='text'>More Minkowski for Free</title><content type='html'>&lt;p&gt;Here's a nice relativistic analysis of an experiment, building on the framework in the last blog (at &lt;a href="http://weblogs.asp.net/brianbec"&gt;http://weblogs.asp.net/brianbec&lt;/a&gt;), calculations courtesy of &lt;a href="http://www.geometryexpressions.com"&gt;Geometry Expressions&lt;/a&gt; once again. Think of laser ranging to the moon. The astronauts left mirrors on the moon, and every day pulses are shot at the mirrors, which are actually corner reflectors, so the pulses bounce straight back. The moon is about 1.5 light-seconds away, so the round trips take about 3 seconds. The moon is moving about 2300 miles per hour, which is about 3e-6 times the speed of light, so the pulses are lengthened by (at most) microseconds, which is very easy to measure with modern equipment, so relativity is spectacularly verified every day in experiments like this.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/Lorentz2.0.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Lorentz2.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;As before, the blue axes are our non-moving lab frame, and the red axes are a frame of reference moving at velocity v in the x direction. The pulse begins at event A and ends at event J in our blue frame. The red (moon) frame sees the pulse beginning at event Q and ending at event B. The line CB is a line of constant position -- say, the position of the mirror -- in the red moon frame. When we get the pulse back on Earth, it has been stretch to duration RK. This is relativistic Doppler shifting of light.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Here's a slightly prettier picture.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/7411/3755/1600/Lorentz3.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7411/3755/400/Lorentz3.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The files are &lt;a href="http://home.comcast.net/~brianbec/Minkowski.gx"&gt;http://home.comcast.net/~brianbec/Minkowski.gx&lt;/a&gt; and &lt;a href="http://home.comcast.net/~brianbec/Minkowski3.gx"&gt;http://home.comcast.net/~brianbec/Minkowski3.gx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34118891-115781842345550767?l=lorentzframe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lorentzframe.blogspot.com/feeds/115781842345550767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34118891&amp;postID=115781842345550767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115781842345550767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34118891/posts/default/115781842345550767'/><link rel='alternate' type='text/html' href='http://lorentzframe.blogspot.com/2006/09/more-minkowski-for-free.html' title='More Minkowski for Free'/><author><name>LorentzFrame</name><uri>http://www.blogger.com/profile/11965375397303876893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
