Unless you thought about it, that display hack was "Ho-hum, the circles go around and get bigger and smaller. So what?" So you had to be somewhat astute to be surprised by it. Ah, the days of asynchronous, random point plotting non raster display hacking! Completely apart from the Steinerism, consider just portraying circulating ball bearings of fixed size confined between concentric circles. Obviously, you just draw the confining circles, draw n ball bearings rotated by omega t, increment t, and repeat. Wrong. What this draws is the n balls rotating, but with a gap proportional to omega between two of them! Because you see the last circle of the previous "frame" immediately followed by the first circle of the new "frame". It was amazing-- you could continuously vary omega and the gap would grow and shrink, yet the circles remained of constant size. Where did the gap space come from? Where did it go when omega -> 0? The fix: To go clockwise, display n + omega*epsilon circulators; anticlockwise, n - omega*epsilon. The inner confining circle radius is necessarily a function of n, so it grew or shrank slightly as a function of omega! But then you get a gap or overlap when you try to film it, so I had to reintroduce the original bug! Do I smell relativity? There were other amazing effects just from varying the timing and ordering of points displayed in a rectangular grid. While developing his original integer linear relation finder, Rich asked to see an x-y grid time-ordered by x pi + y e mod 1. 30 usec/point would take half a minute to paint the whole 1024 by 1024 screen, so we may have derezzed. Anyway, you saw a slowly drifting non-rectangular grid. But if you looked away and then back, you might see a different grid with a different velocity! You could train yourself to see several different grids. You could conjecture a random large grid velocity, swipe your finger across the screen, and see it if your guess was close. You could thus hide an image on the screen by slightly dislocating the time-ordering of its points. Only someone who knew the approximate velocity could see it. To maximize this effect, I wrote a trivial-looking hack that marched a small parallelogram-shaped grid repeatedly across the screen at a fixed rate. You could control which way the parallelogram leaned, and how much, by adjusting the console "test word". But if you looked at the yellow persistent phosphor, you saw that it was constantly painting square boxes. The only thing the test word changed was time delays between points vs between lines vs between boxes. So you could skew the moving box left and right while leaving perfectly square afterimages. --rwg On 2015-12-18 09:21, Mike Beeler wrote:
Yes, within the outer circle. Thanks, Fred! I think the center of the inner circle moved at a constant rate along the horizontal diameter of the outer circle. When it reaches the outer circle and reverses direction, I think the math becomes a bit indeterminate, but to Bill’s credit, the animation looked smooth and convincing. We made a movie of it; some day I should get it scanned and put on YouTube. — Mike
On Dec 18, 2015, at 11:23 AM, Fred Lunnon <fred.lunnon@gmail.com> wrote:
<< the “wobble rate” at which the inner circle moved from side to side within the inner circle >>
within the outer circle, maybe? Though that's still a tad vague ...
Modulo similarity, the static configuration has 3 parameters: radius of inner disc, centre displacement, and phase of chain; dynamically, displacement and phase might be replaced by wobble and rotation speeds.
WFL
On 12/18/15, Mike Beeler <mikebeeler@verizon.net> wrote:
Correction: the “phase” parameter was actually the RATE OF CHANGE of phase. For example, with number of circles fixed and wobble rate zero, the phase change rate specified how fast the “ball bearings” (circles in the chain) moved around the annulus. If the inner circle was not concentric with the outer, the “ball bearings” of course had to grow and shrink as they rolled around.
On Dec 18, 2015, at 10:38 AM, Mike Beeler <mikebeeler@verizon.net> wrote:
Aha, a real math question that I think I can answer! The theorem is Steiner’s Porism, and the collection of circles in the ring is a Steiner Chain.
Back around 1980, Gosper programmed a demonstration of this on the PDP-6. It took as input parameters the number of circles in the chain, and the “wobble rate” at which the inner circle moved from side to side within the inner circle, and the “phase” at which the chain was positioned within the ring. From these, it calculated the size of the inner circle so that the chain existed. The resulting pictures on the (type 340) display were amazing to behold.
And this trivia: David Silver perturbed Bill’s program in some small way, such as changing one instruction or exchanging a pair of instructions. The result was, instead of circles, “teapot” or “cat face” outlines. Setting the parameters to exotic values caused the teapots to not percolate in a ring, but rather whoosh into existence as tiny, grow and swoop through an orbit, then shrink and vanish — rather comet like. Ah, the days of assembly language display hacking!
I believe there is at least one app for sale that displays the Steiner Porism.
— Mike
On Dec 18, 2015, at 9:56 AM, Erich Friedman <erichfriedman68@gmail.com> wrote:
back in undergraduate complex analysis, i learned the following theorem, whose proof is easy enough using conformal mappings. does this theorem have a name?
Let D be a disk entirely inside the unit circle. Consider all collections of non-overlapping disks C so that each member of C is:
a) inside the unit circle and tangent to the unit circle, b) doesn't overlap D but is tangent to D, and c) tangent to exactly two other members of C. (Thus the collection C forms a tangent ring around D.)
For a given D, the collection is either empty or infinite.
erich