--==ננ O R B I T W H I R L ננ==-- FreeWare by Marc Coram (thanks to Jordan Hargrave for SVGA256.BGI) --Based on the orbits of the Mandelbrot Set for real numbers (VGA REQUIRED)-- Syntax: ORBWHIRL [VIDMODE ][CURVE [POINTS [TLENGTH]]] VIDMODE is a letter A-E which selects your video mode. A=320x200 B=640x400 C=640x480 D=800x600 E=1024x768 CURVE is a floating point number between -2 and 0 It signifies C in the iterative formula nx=x*x+C, whose graph is the parabola. As CURVE approaches 0, the parabola raises and the pattern becomes regular. As CURVE approaches -2, the curve drops and the pattern becomes chaotic. POINTS is an integer which signifies how many individual tracing swirls will be produced ( <=253 ). Lower POINTS for speed. TLENGTH is an integer which signifies the length of the tracing swirls. If zero, the trails will not clear. Default: "ORBWHIRL A -2 253 8" Also try: "ORBWHIRL -1.4 25 1000" OR "ORBWHIRL -.72" OR "ORBWHIRL -1.7 60 50" "ORBWHIRL B -2 253 0" OR "ORBWHIRL D" OR "ORBWHIRL -1.75 2 0" ENJOY! Comments/Improvements(/Donations?) appreciated: Marc Coram / 15570 Knochaven Rd / Santa Clarita, CA 91350-2799 ------------------------ Basic Operation ------------------------ After running ORBWHIRL.EXE, I suggest you: (1) reduce the number of tracing swirls ( ) until you achieve sufficient speed; (2) set TLENGTH either to 0 or to a large number (hold down or ); (3) adjust the Palette (

); (4) press to invoke the bifurcation diagram (5) Use the and keys to raise and lower the curve. As you move the curve, observe how a higher curve (a small negative CURVE value) creates a more regular pattern of swirls, but a lower curve (approaching -2) tends to be more chaotic. ------------------------ Interactive Keys ----------------------- During execution, useful information is displayed on the right of the screen. The current CURVE, POINTS, and TLENGTH values are displayed. Also displayed is a list of the keys that can be pressed to change these values. The and arrow keys move the curve up and down in 0.1 increments. For finer, 0.01 increments, use and . For even finer 0.001 increments, use and . Watch the value of CURVE on the right change. It can range between 0 and -2. The and keys change the number of tracing swirls (POINTS) on the screen by 10. Use and (or ) to change by 1. Reducing the number of swirls will allow them to move faster, but may not be as much fun. After you have selected an appropriate number, it is a good idea to press

for Palette. This will recreate the color palette so that the swirls will cover more of the spectrum. POINTS can vary from 1 to 253. The and keys change the length of the tracing swirls (TLENGTH) by 10. Use and (or ) to change by 1. Reducing the number to 0 will make the trails infinitely long (i.e. they won't erase). It may be necessary to fix the palette (

) when TLENGTH is newly set to 0. The key is also useful when TLENGTH is set to 0. It will clear the trails drawn up to the current time, but then allow them continue drawing them from their current position. This is useful to reduce clutter and see if the trails have settled in to a final position. TLENGTH can vary from 0 to 253. Video modes can be changed by typing , , , , or . Where A=320x200, B=640x400, C=640x480, D=800x600, and E=1024x768. Higher video modes tend to run slower, though. The information panel on the right can be hidden by pressing . To restore the text information press or . To show a bifurcation diagram on the panel press . Think of the bifurcation diagram as a map to the behavior of the tracing swirls. The line drawn across the diagram corresponds to your current value of CURVE. If it passes through an orderly region, the behavior of the tracing swirls will become orderly as well. Notice how the diagram begins at the top with a single line arcing down the screen, but then it branches into two lines at about -0.75 . This region continues down until about -1.25, where it branches again. If you move the parabola up until the line is in the single branched region, you will observe that the tracing swirls, like the pattern on the right, converge into a single point. In the region with two branches, the swirls will converge into a square. In the region with four branches, the swirls will converge into a disjointed figure that looks like two overlapping squares. The number of vertical lines that the swirls trace corresponds to the number of points shown across the length of the line on the right. Each time the bifurcation diagram branches, this number doubles. This is referred to as period doubling. But, the period doubling does not continue (visibly anyway) past a certain limit point. Eventually, the dot pattern becomes so random in appearance that it is termed chaotic. Mysteriously, though, notice how small, but numerous regions of order crop-up in the middle of the chaos. At about -1.75, for example, the pattern returns to order, only this time it forms three branches. But, even as before, each of those branches doubles, forming 6, 12, 24 ... branches, before settling back into chaos. --------------- Sensitivity to Initial Conditions --------------- ORBWHIRL provides a good demonstration of this principle of Chaos theory. Observe how the tracing swirls, originally in a regular pattern and closely spaced (especially for high values of POINTS), tend to scatter (especially as CURVE approaches -2). This is referred to as the "Butterfly Effect," based on the idea that a ridiculously small change in initial conditions (the flap of a butterfly's wing, for instance) could change weather patterns all over the world, given sufficient time, because of the chaotic nature of the weather. ------------------------- How It Works -------------------------- Each tracing swirl is assigned an initial value. For example, assume that the swirl's value, X, is 1 and that the value of the curve is -1.9 . The swirl begins at the top of the screen, over towards the right by an amount representative of the value, 1, (i.e. the coordinates of the point are (1,2) ). It then proceeds down the screen until it "bumps into" the curve. Since the equation of the parabola is y=x*x-1.9 this will occur at y=1*1-1.9=-0.9 or the point (1,-0.9). The swirl then moves left or right until it intersects the line y=x . Since y=-0.9 the point will move left until x=-0.9 . Now the pattern repeats, the point moves up or down to the curve then left or right to the line, then up or down .... Listing just the x values, the swirl proceeds as follows: 1. -0.9 =( 1. )*( 1. )-1.9 -1.09 =(-0.9)*(-0.9)-1.9 -0.7119 ... -1.39319839 0.041001754... Notice how the number of decimal places expands exponentially.