D. Edward Mitchell 16:00, 14 April 2020 (UTC) Hello World!    groupKOS Developer Share —usually UNDER CONSTRUCTION

File:13-8 gotk green-red-hand 3-group.png

From groupKOS Developer Share
Jump to navigation Jump to search
Original file(1,024 × 768 pixels, file size: 435 KB, MIME type: image/png)

Summary


The red-handed and green-handed helices combined occupy ordered and alternate lanes four knot loops wide.

The red and green paths are two equal length paths with only their helical handeness being different as the helices proceed in a straight line on a (mathematically) golden torus surface at a 13:8 helical slope (knot ratio), to get to the the opposite side. This is a bifurcated pair of anti-symmetric helical paths, yet ordered and layered by handedness.

Magnetic toroidal rotation amplifier techy points

Both green and red handed toroidal helices are electrically activated at six power-connection points on a hexagonal layout. The copper donut nests into the hexagonal power connector interface.

This defines a Resonant-X Configuration. The resonant-X configuration is the engineered vehicle that creates a self-harmony of ring oscillator stability as a toroidally revolving magnetic field by serial injection of the copper resonator inductive lag time into the ring-oscillator propagation. The X configuration connects two halves of copper inductor, and this X is serially embedded within the signal-ring of the ring-amplifier. The natural oscillator average frequency (of a chaotic ring amp ) will become synchronous with the natural impulse resonance of each copper resonator element. The inductive reactivity of the flux vortex itself will set the average frequency of the noisy ring amp.

This open magnetic toroidal rotation is noisy because it amplifies any bit of regularity in the noise floor present. The noise floor itself is the combined contribution of the entire environment of the proximity of the toroidal rotation (which has a cancellation zone as a fixed, embedded trefoil as the ordered 13:8 loops vector rotate flux over time (that's the basic three-phase vector rotation pioneered by Tesla, used in every multi-phase motor. This rotation tracks across the torus surface at a golden slope through the hole and around = toroidal rotation.


The geomagical 13:8 detanglement creates the toroidal rotation that will directly inject any/all signals into the ring-oscillation switching scheme. This interesting quality of the ring amp allows it to bring noise-level signal an order of magnitude with N-running-average window on natural chaotic data at the ground floor of electronic components. (An Arduino open A/D input, w/6" single wire antenna.)

Note: when only a green-handed helix is electrically activated, then those induce a green-handed torus ring of flux, with no external poles.

The 13:8 is special, in that it is 1/13th greater than four trefoil knots, and the near miss affords a loop-order in group sequence along the abstract torus surface.

The engineering affordance of the surprising detanglement into ordered sequence alternating in a trefoil six-pattern, even though it is a eight-pattern set by 13:8 torus knots. You had to be there.

Detanglement of this knot group sorts the knot loops of all three knots into group order, alternating between helical handedness (which is current direction when electrified).

Fascinating this is, because the ordered group numbers, when hexatronically activated with current pulses, will create a rolling continual wave across the surface of the knot loops of revolving magnetic polarity.

It's cosmic poetry. The six-pattern is a trefoil decomposed by the pattern of the helical handedness. So long as there is a revolving magnetic polarity, there is a magnetic cancellation occuring at each edge of polarity reversal. I.e., the space between conductors has flux without polarity —the odd place that put Aharanov and Bohm on the map.

POVRay source-code that produced these red-green geomagicals

The following code is a working version with other mid-development parts and pieces

This code is not intended for consumption. Enjoy.

// Persistence of Vision Ray Tracer Scene Description File
// File: torus_knots_13-8_3-group.pov
// Vers: 3.7 RC7 win64
// Description: 13:8 torus knot assembly with chassis and assembly widgets.
// Date: May 1, 2013, September 8, 2021
// Author: DonEMitchell (C) 

// +W1920 +H1080  <--- Place the characters (without comment slashes) into the command line edit box
// +SF1 +EF10 +KFI1 +KFF10                         
#version 3.7;

#include "colors.inc"
#include "golds.inc"
#include "metals.inc"
#include "transforms.inc"
#include "glass.inc"
#include "..\push-pull_suspension.inc.pov"

global_settings {
    max_trace_level 10 // Reflection levels before blackness.   
    assumed_gamma 1.2
    charset utf8
    // used in global_settings, sets an overall brightness/ambient light level in the scene
    ambient_light color rgb <1,1,1> * 1
    } 
#default{ finish{ ambient 0.00125 diffuse 0.9 }} 

// ----------------- Optics --------------------
  
/* 
// Clocked zoom to a fisheye lens perspective, from inside the torus //
#declare cameraVector       = <-1,0,0>;
#declare cameraDistance     = -1;
#declare cameraViewAngle    = 170*clock;  //Fisheye perspective.
*/                                                                                             

#declare cameraViewAngle    = 55;       //Normal perspective.                                                                 

#declare cameraDistance     = 17;       
#declare cameraVector       = <.85,1,0>;
#declare cameraVector       = x;

#declare cameraLocation = cameraVector*cameraDistance;
#declare cameraLook_At = <0,0,0>;
#declare consoleTextZoom = 1.325;  // 800x600   3:2    // Used in consoleObject().  Sizes text area to screen area. 
#declare consoleTextZoom = 1.765; // 1920x1080  3:2    // Used in consoleObject().  Sizes text area to screen area. 
//#declare consoleTextZoom = 2.00765; // 1920x1080  3:2    // John Wsol.

#declare cameraAspectRatio = image_width/image_height;

#declare cameraSky = y;        
#declare cameraDirection=vnormalize(cameraLook_At-cameraLocation);      
#declare cameraRight=vnormalize(vcross(cameraSky,cameraDirection));     // to the right
#declare cameraUp=vnormalize(vcross(cameraDirection,cameraRight));      // camera up
    
camera { 
   // orthographic
    angle cameraViewAngle
    direction cameraDirection
    right cameraRight*cameraAspectRatio
    up cameraUp
    sky cameraSky
    location cameraLocation 
    look_at  0    
}    

// A camera from inside the hole looking toward the center chassis ring.
/*
camera { 
    angle cameraViewAngle
    direction x
    right cameraRight*cameraAspectRatio
    up cameraUp
    sky cameraSky
    location x*.1
    look_at  x
}    
*/

#declare cameraTransform =                                              // A vector toward the camera from the origin.
    transform { matrix < 
                    cameraRight.x, cameraRight.y, cameraRight.z,
                    cameraUp.x, cameraUp.y, cameraUp.z,
                    cameraDirection.x, cameraDirection.y, cameraDirection.z,
                    cameraLocation.x, cameraLocation.y, cameraLocation.z
                >
    }

// Define a text-positioning-macro for console text based on camera location (adapted from screen.inc) for facing concole text toward the camera. 
#macro consoleObject (Object, Position, Spacing, Confine, Scaling)
   #local Obj_Max = max_extent(Object);
   #local Obj_Min = min_extent(Object);
   #local Obj_Cen = (Obj_Max+Obj_Min)/2;
   #local Obj_Dim = (Obj_Max-Obj_Min)/2;
   #local Pos = (Position-0.5)*2;
   #local Pos = (
      +<Pos.x*cameraAspectRatio/2,Pos.y/2,consoleTextZoom>
      +( -Obj_Cen -Pos*(Obj_Dim+Spacing) ) * Confine
   );
   object {
      Object
      no_shadow     // shouldn't cast shadows in the scene
      no_reflection // shouldn't be reflected in scene elements
      translate Pos
      scale Scaling * 2 
      transform {cameraTransform} // rotate to face camera.
   }
#end
light_source { 
    cameraLocation
    color .9  
    shadowless
    //rotate z*10
    //rotate -x*40
    } 
light_source { 
    cameraLocation
    color .3
    shadowless
    rotate y*40
    rotate x*60
    }
    
sky_sphere{ pigment { gradient <-1,1,-1>
                      color_map { [0.00 rgb <0.6,0.7,1.0>]
                                  [0.35 rgb <0.0,0.1,0.8>]
                                  [0.65 rgb <0.0,0.1,0.8>]
                                  [1.00 rgb <0.6,0.7,1.0>] 
                                } 
                      scale 2         
                    } // end of pigment
}
              
              
// Textures //

#declare txtrPlasmaRed   = texture {pigment {rgbt < 1,.1,.1,.125>} finish {ambient 0.5  diffuse 1}}   
#declare txtrPlasmaGreen = texture {pigment {rgbt <.1, 1,.1,.6>  } finish {ambient 0.5  diffuse 1}}   
#declare txtrPlasmaBlue  = texture {pigment {rgbt <.1,.1, 1,.2>  } finish {ambient 0.5  diffuse 1}}   
#declare txtrPlasmaYellow= texture {pigment {rgbt <10,10,0,.125>*5   } finish {ambient 0.5  diffuse 1}}   
#declare txtrPlasmaGray  = texture {pigment {rgbt < 1, 1, 1,.85> } finish {ambient 0.25 diffuse 1}}   
  
#declare txtrRedMetal    = texture {pigment { color rgb<1,0,0>*1 } finish{ diffuse 0.3 ambient 0.010 specular 0.6 reflection { .3 metallic } conserve_energy}}
#declare txtrGreenMetal  = texture {pigment { color rgb<0,1,0>*1 } finish{ diffuse 0.3 ambient 0.010 specular 0.6 reflection { .3 metallic } conserve_energy}}
#declare txtrBlueMetal   = texture {pigment { color rgb<0,0,1>*1 } finish{ diffuse 0.3 ambient 0.010 specular 0.6 reflection { .3 metallic } conserve_energy}}               

#declare txtrConductor   = texture {T_Brass_3A}
//#declare txtrConductor   = texture {pigment { color rgb<1,0,0>*.8 } finish{ diffuse 0.3 ambient 0.010 specular 0.6 reflection { .3 metallic } conserve_energy}}

#declare txtrWhitePlastic= texture {pigment { color rgb<.98,.98,1>*.5} finish{ diffuse 0.3 ambient 0.40 specular 0.9 reflection { 1 metallic } conserve_energy}}
#declare txtrBlackEpoxy  = texture {pigment { color rgb .05} finish{ diffuse 0.3 ambient 0.40 specular 0.9 reflection { 1 metallic } conserve_energy}}
#declare txtrNylon       = texture {pigment { color rgb <1,.9,.9>} finish{ diffuse 0.3 ambient 0.40 specular 0.9 reflection { 1 metallic } conserve_energy}}

#declare txtrClearPlastic= texture {pigment { color rgb<1,1,1>} finish{ diffuse 0.3 ambient 0.40 specular 0.9 reflection { .5 metallic } conserve_energy}}
#declare txtrClearPlastic= texture {pigment { color rgbt<1,1,1,.99>} finish{ diffuse 0.3 ambient 0.40 specular 0.9 reflection { .5 metallic } conserve_energy}}

#declare roughPlastic    = texture {pigment { color rgb< 1, 0.80, 0.55>*0.9 }
                                    normal  { pigment_pattern{ crackle turbulence 0.2
                                                               colour_map {[0.00, rgb 0]
                                                                           [0.25, rgb 1]
                                                                           [0.95, rgb 1]
                                                                           [1.00, rgb 0]}
                                                               scale .0075} 1 } // end normal
                                    finish  { phong 1 reflection 0.2 }
                                  }

              
//--------------------------- Macros --------------------------------- 
// Axes macro: length and radii of axes, and boolean flags to include/exclude axes
#macro axes(length, radii, X, Y, Z)                               
    #if (X) cylinder{ 0, < length,         0,       0>, radii texture { pigment { color rgb  < .75,-.1,-.1     > }}} #end //  X axis, red    
    #if (X) cylinder{ 0, <-length,         0,       0>, radii texture { pigment { color rgbt <   1,  0,  0, .6 > }}} #end // -X axis red translucent -adjust xmit                                                          
    #if (Y) cylinder{ 0, <      0,  length/2,       0>, radii texture { pigment { color rgb  < -.1, .5,-.1     > }}} #end //  Y axis, green    
    #if (Y) cylinder{ 0, <      0, -length/2,       0>, radii texture { pigment { color rgbt <   0, .8,  0, .6 > }}} #end //  Y axis, green translucent
    #if (Z) cylinder{ 0, <      0,         0,  length>, radii texture { pigment { color rgb  <   0,  0,  2     > }}} #end //  Z axis, Blue    
    #if (Z) cylinder{ 0, <      0,         0, -length>, radii texture { pigment { color rgbt <  .1, .1, .4, .6 > }}} #end // -Z axis blue translucent     
#end //macro axes()                                                                                                                        

/////////////////////////////// Platonic vertices /////////////////////////

#macro initVertices( phiPower ) ///  Initialize vertices for the five platonic solids  ///
///////////////////////////////////////////////////////////////////////////////    
    #local Phi = pow(pow(5,.5)/2 + 1/2, phiPower); 
    #local phi = Phi-.99999;  
    
    // The Tetrahedron
    // 4 vertices with coordinates: (1, 1, 1), (1, -1, -1), (-1, 1, -1), (-1, -1, 1)
    // 6 edges of length 2 x sqrt(2)
    // Mid point of edge to centre of solid = 1
    // 4 triangular faces,
    // Surface area = 8 sqrt(3)
    // volume = 8/3
    #declare tetra_XYZ    = < 1,  1,  1 >;
    #declare tetra_Xyz    = < 1, -1, -1 >;
    #declare tetra_xYz    = <-1,  1, -1 >;
    #declare tetra_xyZ    = <-1, -1,  1 >;
    
    // The Cube or Hexahedron
    // 8 vertices with coordinates (±1, ±1, ±1), i.e.:
    // (1, 1, 1), (1, 1, -1), (1, -1, 1), (1, -1, -1),
    // (-1, 1, 1), (-1, 1, -1), (-1, -1, 1), (-1, -1, -1)
    // 12 sides of length 2
    // Mid point of edge to centre of solid = sqrt2
    // 6 square faces each of area 4, surface area = 24
    // volume 8
    #declare hexa_XYZ    = < 1,  1,  1 >; // = tetra_XYZ
    #declare hexa_XYz    = < 1,  1, -1 >;
    #declare hexa_XyZ    = < 1, -1,  1 >;
    #declare hexa_Xyz    = < 1, -1, -1 >;
    
    #declare hexa_xYZ    = <-1,  1,  1 >;
    #declare hexa_xYz    = <-1,  1, -1 >;
    #declare hexa_xyZ    = <-1, -1,  1 >;
    #declare hexa_xyz    = <-1, -1, -1 >; 
    
    // The Octahedron
    // 6 vertices with coordinates (±1, 0 0), (0, ±1, 0), (0, 0, ±1) i.e.:
    // (1, 0, 0), (-1, 0, 0), (0, 1, 0), (0, -1, 0), (0, 0, 1), (0, 0, -1)
    // 12 sides of length sqrt2
    // Mid point of edge to centre of solid = 1/sqrt2
    // 8 triangular faces, surface area = 4sqrt3
    // volume 4/3
    #declare octa_X00    = < 1, 0, 0 >;
    #declare octa_x00    = <-1, 0, 0 >;
    #declare octa_0Y0    = < 0, 1, 0 >;
    
    #declare octa_0y0    = < 0, -1, 0 >;
    #declare octa_00Z    = < 0, 0, 1 >;
    #declare octa_00z    = < 0, 0, -1 >;
    
    // The Dodecahedron
    // 20 vertices with coordinates (0, ±phi, ±phi),(±phi, 0, ±phi),(±phi, ±phi, 0), (±1, ±1, ±1), i.e.:
    // (0, phi, Phi), (0, phi, -Phi), (0, -phi, Phi), (0, -phi, -Phi)
    // (Phi, 0, phi), (Phi, 0, -phi), (-Phi, 0, phi), (-Phi, 0, -phi)
    // (phi, Phi, 0), (phi, -Phi, 0), (-phi, Phi, 0), (-phi, -Phi, 0)
    // (1, 1, 1), (1, 1, -1), (1, -1, 1), (1, -1, -1),
    // (-1, 1, 1), (-1, 1, -1), (-1, -1, 1), (-1, -1, -1)
    // 30 sides of length 2 phi
    // Mid point of edge to centre of solid = Phi, vertex to centre = sqrt3 = sqrt(phi2 + Phi2)
    // 12 pentagonal faces,
    // surface area = 60 sqrt(phi/sqrt5) = sqrt(360(5-sqrt5)) = 15 sqrt(5 phi + 10 )
    // volume = 8 + 4 phi = 10 + 2sqrt5
    
    #declare dodeca_0PP = < 0,  phi,  Phi >;
    #declare dodeca_0Pp = < 0,  phi, -Phi >;
    #declare dodeca_0pP = < 0, -phi,  Phi >;
    #declare dodeca_0pp = < 0, -phi, -Phi >;
    
    #declare dodeca_P0P = < Phi, 0,  phi >;
    #declare dodeca_P0p = < Phi, 0, -phi >;
    #declare dodeca_p0P = <-Phi, 0,  phi >;
    #declare dodeca_p0p = <-Phi, 0, -phi >;    
    
    #declare dodeca_PP0 = < phi,  Phi, 0>; 
    #declare dodeca_Pp0 = < phi, -Phi, 0>; 
    #declare dodeca_pP0 = <-phi,  Phi, 0>; 
    #declare dodeca_pp0 = <-phi, -Phi, 0>;    
    
    #declare dodeca_XYZ = <1, 1, 1>;      // = tetra_XYZ
    #declare dodeca_XYz = <1, 1, -1>; 
    #declare dodeca_XyZ = <1, -1, 1>; 
    #declare dodeca_Xyz = <1, -1, -1>; 
    
    #declare dodeca_xYZ = <-1, 1, 1>; 
    #declare dodeca_xYz = <-1, 1, -1>; 
    #declare dodeca_xyZ = <-1, -1, 1>; 
    #declare dodeca_xyz = <-1, -1, -1>;   // = hexa_xyz
        
    // The Icosahedron
    // 12 vertices with coordinates (0, ±phi, ±1), (±1, 0, ±1Phi), (±phi, ±1, 0) i.e.:
    // (0, phi, 1), (0, phi, -1), (0, -phi, 1), (0, -phi, -1),
    // (1, 0, phi), (1, 0, -phi), (-1, 0, phi), (-1, 0, -phi),
    // (phi, 1, 0), (phi, -1, 0), (-phi, 1, 0), (-phi, -1, 0)
    // 30 sides of length 2
    // Mid point of edge to centre of solid = (1+phi)/sqrt3
    // 20 triangular faces,
    // Surface area = 20sqrt3
    // volume = 20( 1 + phi)/3 = 20 Phi2/3 = 10 (3 + sqrt5)/3
    #declare icosa_0PZ  = < 0,  phi,  1 >;
    #declare icosa_0Pz  = < 0,  phi, -1 >;
    #declare icosa_0pZ  = < 0, -phi,  1 >;
    #declare icosa_0pz  = < 0, -phi, -1 >; 
    
    #declare icosa_X0P  = < 1, 0,  phi >;
    #declare icosa_X0p  = < 1, 0, -phi >;
    #declare icosa_x0P  = <-1, 0,  phi >;
    #declare icosa_x0p  = <-1, 0, -phi >;
    
    #declare icosa_PY0  = < phi,  1, 0 >;
    #declare icosa_Py0  = < phi, -1, 0 >;
    #declare icosa_pY0  = <-phi,  1, 0 >;
    #declare icosa_py0  = <-phi, -1, 0 >; 
#end // initVertices()

#macro torusKnotBifilarCycloid(cycloidObjectA, cycloidObjectB, major, minor, poloid, toroid, polyphase, loopRadius, delta)
    #declare endAngle = 360;
    #declare SHOWLEFTHAND=01;  // red-hand
    #declare SHOWRIGHTHAND=01; // green-hand
    // For clocked-growth, uncomment next line //
    //#declare endAngle = 360*clock;
    
    union{
    #if(SHOWRIGHTHAND)
        #local  n  = 0;
        #while (n <= endAngle/2 * poloid - delta ) 
            #local phaz = n * toroid/poloid;            
            #if( 1 )
                object{ cycloidObjectA
                    // Move the cycloidObject away from the origin on the X axis by the minor radius.
                    translate  <minor,0,0>
                    // Toroidally rotate cycloidObject around Z axis in the XY plane.
                    rotate <0,0,phaz>
                    // Move the rotated cycloidObject to the major radius.    
                    translate <major,0,0>
                    // Rotate the object about the center Y axis of the torus.                                     
                    rotate y*n
                }
            #end                
            #local n = n + delta;
        #end
#end
#if(SHOWLEFTHAND)
        #local  n  = 0;
        #while (n <= endAngle/2 * poloid + delta ) 
            #local phaz = n * toroid/poloid;            
            #if( 1 )
                object{ cycloidObjectB
                    // Move the cycloidObject away from the origin on the X axis by the minor radius.
                    translate  <minor,0,0>
                    // Toroidally rotate cycloidObject around Z axis in the XY plane.
                    rotate <0,0,-phaz>
                    // Move the rotated cycloidObject to the major radius.    
                    translate <major,0,0>
                    // Rotate the object about the center Y axis of the torus.                                     
                    rotate -y*n
                    // Color per the phaz rotation around the Z.                      
                }
            #end                
            #local n = n + delta;
        #end
#end                         
        /*
        #local  n  = endAngle/2 * poloid;
        #while (n <= endAngle * poloid - delta )
            #local phaz = n * toroid/poloid;            
            #if(1)
                object{ cycloidObjectB
                    // Move the spinObject away from the origin on the X axis by the minor radius.
                    translate  <minor,0,0>
                    // Rotate object around Z axis in the XY plane.
                    rotate z*phaz
                    // Move the rotated unit to the major radius.    
                    translate <major,0,0>                                     
                    // Rotate the object about the center Y axis of the torus.                                     
                    rotate y*n
                    // Color per the phaz rotation around the Z.
                    //texture{pigment{rgb <
                    //                    -(.0+1*sin( radians(polyphase) + radians(360*clock) )), 
                    //                    -3.0,
                    //                    .0+1*cos( radians(polyphase) + radians(360*clock) )
                    //                    > }}
                }
            #end
            #local n = n + delta;
        #end           
        */
        
        // Rotate to the polyphase position (one of three phases, e.g.)
        rotate y*polyphase    
        // Color per the phaz rotation around the Z.
                            
        
    }          
#end // macro torusKnotBifilarCycloid()


// Center radial chassis //
#macro chassisRadialAssembly(holeRadius, outerRadius, chassisThickness, slitCount, slitWidth, slitDepth)
    // Radial-slotted central chassis disk //    
    union{
        #if(0) // Center radial chassis.    
            difference{
                // Chassis center-disk with slits for section-disks and angled-holes for conductors.
                cylinder{
                    -z*chassisThickness/2,z*chassisThickness/2, outerRadius
                    texture{txtrClearPlastic}
                    
                }
                // Remove the center hole of center chassis radial disk.
                cylinder{
                    -z*.1, z*.1, holeRadius
                }    
                union{
                    #for(j,0,360,360/slitCount)
                        // Subtract radial boxes from the disk to make slits.
                        box{< -slitWidth/2, outerRadius,                                    -.15 >
                            <  slitWidth/2, outerRadius-(outerRadius-holeRadius)/2,  .15 >
                            rotate z*j
                            rotate -z*0
                        }
                        // Subtract conductor through-holes from the disk.
                        cylinder{ -z*chassisThickness*3, z*chassisThickness*3, radiusConductor
                            translate x*(radiusMajor-radiusMinor)
                            rotate x*conductorPlaneAngle  // Tilt the cylinder making a hole at the angle of the torus knot loop.
                            rotate  z*j
                        }
                      #end
                }
                rotate x*90 // To the plane of the torus.
                rotate y*7.5 // Align a disk-slit with the X suspension-conductor.            
            } 
        #end                                              
      
       union{
            // Torus minor-diameter cross-section disks //           
            #if(01)
                #declare ang = 0;;
                #for(ang,0,360,360/toroid/3)
                    difference{
                        cylinder{-z*chassisThickness/2, z*chassisThickness/2, radiusMinor-radiusConductor 
                                texture{txtrWhitePlastic} 
                        }        
                        // Remove cylindrical holes around the periphery of the disk
                        // as tie-points for securing the conductor loops.                        
                        #for(ang2,0,360,360/poloid/3)
                            cylinder{-z*chassisThickness*2,z*chassisThickness*2, .05
                                    translate x*(radiusMinor-radiusConductor-.15) 
                                    rotate z*(ang2)
                                    //rotate z*360/39/2

                            }
                        #end
                        
                        translate x* radiusMajor
                        rotate y*(ang)
                        rotate -y*7.5 // Align a disk with the X suspension-conductor.            

                    }
                #end        
            #end        
        }
    } // end union        
#end // chassisRadialAssembly() 
                                          
                                          
// ----------------scene------------------------


// 13/8  = 1.625
// Phi   = 1.6180339887498948482045868343656
// Error = 1.625 - Phi 
// Error = 0.00696601125010515179541316563436
 
// Torus knot parameters (loop/twist) //
#declare poloid =  13; 
#declare toroid =   8; 

// Torus dimensions.                              
#declare Phi = pow(5,.5)/2 + 1/2; // Upper case Phi = 1.618...
#declare phi = pow(5,.5)/2 - 1/2; // Lower case phi = 0.618...

#declare PhiIndex   =  2.804; 

// Calculate orthogonal major/minor radii.
#declare radiusMajor    =             pow(Phi, PhiIndex     );
#declare radiusMinor    = radiusMajor-pow(Phi, PhiIndex - 4 ); // Four degrees of Phi smaller.
             

#declare radiusConductor = 0.094;   // 3/16" = 0.188/2" OD of 3/16" conductor.
#declare radiusConductor = 0.125/2; // 1/8"" = 0.188/2" OD of 3/16" conductor.
#declare radiusConductor = 0.1;   // Illustrative option.

//#declare conductorPlaneAngle = 14.7;    // 3:2 knot.
#declare conductorPlaneAngle = 15.365;  // 13:8 knot.

// Delta as increment between spheres tracing torus loop in the torus knot macro. 
// The knot is a string of overlapping spheres.  Delta sets the separation.
#declare plotDelta = .073;


// Toggle parts of the scene.
#declare showGoldenPoint = 0;
#declare showBaseTorus   = 0;
#declare showTorusKnots  = 01;
#declare showChassis     = 0;
#declare showSuspension  = 0;

#declare showConsole     = 0;
#declare showCrossingCursor = 0;


#declare showAxes   =  0;
#declare axesRadius = .051;

#declare showPhaseA = 01;
#declare showPhaseB = 01;
#declare showPhaseC = 01;

#declare showVillarceauxDisks   = 0;
#declare showVillarceauxCircles = 0;
#declare showVillarceauxNormals = 0;

              
// Chassis dimensions.

#declare chassisHoleRadius = (radiusMajor-radiusMinor)-radiusConductor - .0625;
#declare innerRingOuterRadius = 3.5;    
#declare chassisThickness = .120;     

#declare slitCount = 3*toroid;  // 3-phase.    
#declare slitWidth = chassisThickness;    
#declare slitDepth = 1;    

#local VillarceauxRotation = ( asin( radiusMinor/radiusMajor ) * 180/pi );

// Suspension //
#declare sinkThickness = .125;

          
//#declare 
union{
    //plane{y,0}
    
    // Power rails //
//    torus{ (radiusMajor+radiusMinor)*3.25,3/16/2 texture{txtrRedMetal} translate  y*.25}
  //  torus{ (radiusMajor+radiusMinor)*3.25,3/16/2 texture{txtrBlueMetal} translate -y*.25}
    
    // Power feed assembly suspension //
    #if(showSuspension) 
       object{
            suspension()
       }
    #end //if()   

    // Center-point negative-charge region.    
    #if (showGoldenPoint) sphere{0,0.04 texture{txtrPlasmaYellow}}  #end
    
    // Moebius bifilar torus knots.    
    #if(showTorusKnots) 
        #local cycObjA  =  sphere{0,radiusConductor   texture { pigment{ color rgb<1, 0, 0>} finish { phong 1.0 reflection 0.00}} }; 
        #local cycObjAA =  sphere{0,radiusConductor   texture { pigment{ color rgb<1, 0, 0>} finish { phong 1.0 reflection 0.00}} }; 
        #local cycObjB  =  sphere{0,radiusConductor   texture { pigment{ color rgb<0, 1, 0>} finish { phong 1.0 reflection 0.00}} }; 
        #local cycObjBB =  sphere{0,radiusConductor   texture { pigment{ color rgb<0, 1, 0>} finish { phong 1.0 reflection 0.00}} }; 
        #local cycObjC  =  sphere{0,radiusConductor   texture { pigment{ color rgb<0, 0, 1>} finish { phong 1.0 reflection 0.00}} }; 
        #local cycObjCC =  sphere{0,radiusConductor   texture { pigment{ color rgb<0, 0, 1>} finish { phong 1.0 reflection 0.00}} }; 
        
            // Render three phases rotated 120 degrees apart //
        union{
            #if(showPhaseA) torusKnotBifilarCycloid ( cycObjB, cycObjAA, radiusMajor, radiusMinor, poloid, toroid, 0,   radiusConductor, plotDelta) #end
            #if(showPhaseB) torusKnotBifilarCycloid ( cycObjB, cycObjAA, radiusMajor, radiusMinor, poloid, toroid, 120, radiusConductor, plotDelta) #end
            #if(showPhaseC) torusKnotBifilarCycloid ( cycObjB, cycObjAA, radiusMajor, radiusMinor, poloid, toroid, 240, radiusConductor, plotDelta) #end
            
            rotate -y*22.5 // 13:8: rotation aligns the bifilar halves with a chassis disk.
            texture{T_Copper_3C}            
        }
    #end // Moebius bifilar torus knots. 
    
    // Hexatronic power connectors (spheres)
    #if(showPhaseA) 
        sphere{0,radiusConductor *4 texture{T_Copper_3C}
               translate x*(radiusMajor+radiusMinor+radiusConductor*2.6)
               rotate -y*24 
               rotate  y*0 
               }
        sphere{0,radiusConductor *4 texture{T_Copper_3C}
               translate x*(radiusMajor+radiusMinor+radiusConductor*2.6)
               rotate -y*24 
               rotate  y*180 }        
    #end
    #if(showPhaseB) 
        sphere{0,radiusConductor *4 texture{T_Copper_3C}
               translate x*(radiusMajor+radiusMinor+radiusConductor*2.6)
               rotate -y*24 
               rotate  y*120 
               }
        sphere{0,radiusConductor *4 texture{T_Copper_3C}
               translate x*(radiusMajor+radiusMinor+radiusConductor*2.6)
               rotate -y*24 
               rotate  y*(180+120) }        
    #end
    #if(showPhaseC) 
        sphere{0,radiusConductor *4 texture{T_Copper_3C}
               translate x*(radiusMajor+radiusMinor+radiusConductor*2.6)
               rotate -y*24 
               rotate  y*240 
               }
        sphere{0,radiusConductor *4 texture{T_Copper_3C}
               translate x*(radiusMajor+radiusMinor+radiusConductor*2.6)
               rotate -y*24 
               rotate  y*(180+240) }        
    #end


    //Torus chassis //
    #if(showChassis) 
        // Inner chassis ring //
        object{
            chassisRadialAssembly( chassisHoleRadius, innerRingOuterRadius, chassisThickness, slitCount, slitWidth, slitDepth)
            texture{txtrWhitePlastic}
            //rotate y*18 // Align ring slots with disks.
        }
    #end //if()   

    #if(showCrossingCursor)
        // Cursor object aligned with torus knot loop crossing through the hole to ascertain the angle (20.2045 degrees).    
        union{
            cylinder{y*10,-y*10, radiusConductor + .00005
                    //texture { T_Gold_3C }                    
                    texture { txtrRedMetal }                
            }                     
            cylinder{z*10,-z*10, radiusConductor
                    texture { txtrRedMetal }                
            } 
            translate -x*(radiusMajor-radiusMinor)
            rotate -x*conductorPlaneAngle
            //rotate y*7.5  // 3:2 torus.            
        }    
    #end //cursor
    
    #if(showBaseTorus) 
        // Base torus.          
        torus{ radiusMajor,radiusMinor *.994
               texture { pigment{rgbt<1,1,0,.975>} } 
               texture { T_Silver_5E }
               //texture { pigment{rgbt<1,1,0,.7>} }   
             //clipped_by{plane{z,0}}
        }
    #end

    
    #if(showAxes) 
        axes((radiusMajor+radiusMinor)*3, axesRadius,1,1,1) 
    #end
     
    // Villarceaux circles.
    #if(showVillarceauxCircles)            
            
        union{
            // Red Villarceaux, disk, normal axis.
            union{
                torus{ radiusMajor, radiusConductor/2
                     rotate x*VillarceauxRotation
                     translate x*radiusMinor
                     rotate y*0
                     texture { txtrRedMetal}
                }                       
                #if(showVillarceauxNormals)
                    // Normal axis of torus plane disk.
                    cylinder{ -y*radiusMajor*1.74, y*radiusMajor*1.74, radiusConductor/2
                              translate x*radiusMinor
                              rotate x*VillarceauxRotation
                              texture { txtrRedMetal}
                              //clipped_by{torus{radiusMajor,radiusMinor}}
                    }
                #end
                #if(showVillarceauxDisks) 
                    // Disk on torus plane. 
                    cylinder{ -y*radiusConductor/8, y*radiusConductor/8, radiusMajor-radiusConductor
                              translate x*radiusMinor
                              rotate x*VillarceauxRotation
                              texture { txtrRedMetal}   
                              //clipped_by{torus{radiusMajor,radiusMinor}}
                    }
                #end
                rotate y*0
            }
            
            // Green Villarceaux, disk, normal axis.
            union{
                torus{ radiusMajor, radiusConductor
                     rotate x*VillarceauxRotation
                     translate x*radiusMinor
                     texture { txtrGreenMetal}
                }                       
                #if(showVillarceauxNormals)
                    // Normal axis of torus plane disk.
                    cylinder{ -y*radiusMajor*1.74, y*radiusMajor*1.74, radiusConductor/2
                              translate x*radiusMinor
                              rotate x*VillarceauxRotation
                              texture { txtrGreenMetal}
                              //clipped_by{torus{radiusMajor,radiusMinor}}
                    }
                #end
                #if(showVillarceauxDisks) 
                    // Disk on torus plane. 
                    cylinder{ -y*radiusConductor/8, y*radiusConductor/8, radiusMajor-radiusConductor
                              translate x*radiusMinor
                              rotate x*VillarceauxRotation
                              texture { txtrGreenMetal}   
                              //clipped_by{torus{radiusMajor,radiusMinor}}
                    }
                #end
                rotate y*120
                
            }       
            
            // Blue Villarceaux, disk, normal axis.
            union{
                torus{ radiusMajor, radiusConductor
                     rotate x*VillarceauxRotation
                     translate x*radiusMinor
                     texture { txtrBlueMetal}
                }                       
                #if(showVillarceauxNormals)
                    // Normal axis of torus plane disk.
                    cylinder{ -y*radiusMajor*1.74, y*radiusMajor*1.74, radiusConductor/2
                              translate x*radiusMinor
                              rotate x*VillarceauxRotation
                              texture { txtrBlueMetal}          
                              //clipped_by{torus{radiusMajor,radiusMinor}}
                    }
                #end
                #if(showVillarceauxDisks) 
                    // Disk on torus plane.                                        
                    #declare radiusDisk = radiusMajor-radiusConductor;
                    cylinder{ -y*radiusConductor/8, y*radiusConductor/8, radiusDisk
                              translate x*radiusMinor
                              rotate x*VillarceauxRotation
                              texture { txtrBlueMetal}   
                              //clipped_by{torus{radiusMajor,radiusMinor}}
                    }
                #end
                rotate y*240
            }
            
        } //end union        
    #end // if(0)
    rotate -y*0
 //   rotate x*conductorPlaneAngle
    rotate z*0  // 90* for polar view, 0* for side.
 }
 
// Bottom banner //
/*
consoleObject  ( text { ttf "crystal.ttf", concat("copyleft Don@ShoestringScience.com"), 0.1, <0,0>
                       scale 0.025 pigment {color 0 } finish {ambient 1 diffuse 0} },
                <0,0>, <.01,.0>, true, 1 )
 
*/                                        
// Print console text //
#if(showConsole)

    #declare textColor =  <1,1,.1>*0.05;
    
  //consoleObject( Object,  Position,   Spacing,     Confine, Scaling )                                
                                     
  /*
  consoleObject  ( text { ttf "crystal.ttf", concat("Fibonacci ",str(poloid,1,0), ":",str(toroid,1,0), " Orthogonal Torus Knot 3-Phase Assembly"), 0.1, <0,0>
                            scale 0.0435 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <0,1>, <.0,.0>, true, 1 )
  */
  consoleObject  ( text { ttf "crystal.ttf", concat("Fibonacci ",str(poloid,1,0), ":",str(toroid,1,0), " Orthogonal Torus Knot"), 0.1, <0,0>
                            scale 0.0435 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <0,1>, <.0,.0>, true, 1 )
    /*
    consoleObject  ( text { ttf "crystal.ttf", concat("Fibonacci 13:8 Torus Knot 3-Phase Assembly"), 0.1, <0,0>
                            scale 0.07 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <0,1>, <.0,.0>, true, 1 )
    */
    consoleObject  ( text { ttf "crystal.ttf", concat("Radii to conductor centers:"), 0.1, <0,0>
                           scale 0.03 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <0,1>, <.01,.045>, true, 1 )
    consoleObject  ( text { ttf "crystal.ttf", concat("Torus major radius: ", str(radiusMajor,0,3), 
                                                      " = Phi^(+", str(PhiIndex,0,3), ")"), 0.1, <0,0>
                           scale 0.024 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <0,1>, <.01,.075>, true, 1 )
    
    consoleObject  ( text { ttf "crystal.ttf", concat("Torus minor radius: ", str(radiusMinor,0,3)), 0.1, <0,0>
                           scale 0.024 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <0,1>, <.01, .100>, true, 1 )
    
    consoleObject  ( text { ttf "crystal.ttf", concat("Conductor radius:   ", str(radiusConductor,1,3)), 0.1, <0,0>
                           scale 0.024 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <0,1>, <.01,.150>, true, 1 )
                                   
    consoleObject ( text { ttf "crystal.ttf", concat("Torus hole radius:  ", str((radiusMajor-radiusMinor),1,3), " = Phi^(", str(PhiIndex-4,0,3), ")"), 0.1, <0,0>
                           scale 0.024 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <0,1>, <.01,.125  >, true, 1 )
    
    consoleObject  ( text { ttf "crystal.ttf", concat("Torus outer tangent dia.: ", str((radiusMajor*2+radiusMinor*2+radiusConductor*2),2,3)), 0.1, <0,0>
                           scale 0.024 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <1,1>, <.01,.05>, true, 1 )
    consoleObject  ( text { ttf "crystal.ttf", concat("Torus hole inner tangent dia.:  ", str((radiusMajor-radiusMinor-radiusConductor)*2,2,3)), 0.1, <0,0>
                           scale 0.024 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <1,1>, <.01,.075>, true, 1 )
    consoleObject  ( text { ttf "crystal.ttf", concat("Torus tangent height:  ", str((radiusMinor+radiusConductor)*2,2,3)), 0.1, <0,0>
                           scale 0.024 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <1,1>, <.01,.10>, true, 1 )
    consoleObject  ( text { ttf "crystal.ttf", concat("Conductor torus plane intersect angle:  ", str((conductorPlaneAngle),2,3)), 0.1, <0,0>
                           scale 0.024 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <1,1>, <.01,.125>, true, 1 )
    /*
    // Bottom banner //                    
    consoleObject  ( text { ttf "crystal.ttf", concat("Cross-section disks are tangent at the center with the copper conductor through-holes."), 0.1, <0,0>
                           scale 0.025 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <0,0>, <.01,.0>, true, 1 )
    consoleObject  ( text { ttf "crystal.ttf", concat("39 Peripheral holes of each section disk are tie-down holes for a 3-phase set of torus knots."), 0.1, <0,0>
                           scale 0.025 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <0,0>, <.01,.0>, true, 1 )
    consoleObject  ( text { ttf "crystal.ttf", concat("Conductor angles approach orthogonal when the major radius of the torus is separated from the hole radius by four powers of Phi."), 0.1, <0,0>
                           scale 0.025 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <0,0>, <.01,.0>, true, 1 )
    consoleObject  ( text { ttf "crystal.ttf", concat("Camera view angle   :  ", str(( cameraViewAngle   ),2,3)), 0.1, <0,0>
                           scale 0.024 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <1,1>, <.01,.15>, true, 1 )
    consoleObject ( text { ttf "crystal.ttf", concat("Villarceaux circle tilt: ", str(VillarceauxRotation,3,2)), 0.2, <0,0>
                    scale 0.04 pigment {color textColor} finish {ambient 1 diffuse 0} },
                    <1,1>, <.01,.08>, true, 1 )    
    */              
#end

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current22:51, 8 September 2021Thumbnail for version as of 22:51, 8 September 20211,024 × 768 (435 KB)Don (talk | contribs)== Summary == Category: torus knot Category: 13:8 Category: detanglement The red-handed and green-handed helices combined occupy ordered and alternate lanes. The handed paths are on an invisible abstract golden torus profile, to get...
  • You cannot overwrite this file.

The following 2 pages uses this file:

Metadata