Contents in this wiki are for entertainment purposes only
This is not fiction ∞ this is psience of mind

Dev:P5.js Tori knots platonics interference and misc

From Catcliffe Development
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Sketch of a n-tori on a donut using arrayed points drawn with cylinders between points

©XenoEngineer

This approach uses pre-calculated points along a torus knot curve, with interconnecting cylinders (to reduce point count and render faster).

This file is GPT generated to conform as a compatible design that a can be realized in P5.js or POVRay either.

// PoVRay 3.7 Scene File " lightSpeed.pov"
// author:  Assistant XenoEngineer (Chat GPT 4.0)
// prompter: XenoEngineer@groupKOS.com
// date: 12.31.2023

#version 3.7;
global_settings{ assumed_gamma 1.15 }
#default{ finish{ ambient 0.125 diffuse 1.2 }} 

#include "colors.inc"
#include "textures.inc"
                                 
#macro Axis_(PointTo, AxisLen, axesRadius, Dark_Texture, Light_Texture) 

    union{
        cylinder { 
            PointTo*AxisLen, -PointTo*AxisLen
            axesRadius                                                 
            texture{ checker texture{Dark_Texture} texture{Light_Texture} translate<0.1,0,0.1> } 
        }              
        cone{ 
            PointTo*AxisLen, axesRadius*3, PointTo*AxisLen*1.075, 0  
            texture{Dark_Texture} 
        } 
    }

#end // of macro Axis_()
#macro AxisXYZ( AxisLenX, AxisLenY, AxisLenZ, axesRadius, Tex_Dark, Tex_Light)

    union{
        #if (AxisLenX != 0)  
         object { Axis_(x, AxisLenX, axesRadius, Tex_Dark, Tex_Light)   }// x-Axis
         text   { ttf "arial.ttf",  "x",  0.15,  0  texture{Tex_Dark} 
                  scale 0.5 translate <AxisLenX+0.05,0.4,-0.10>}
        #end 
        #if (AxisLenY != 0)
         object { Axis_(y, AxisLenY, axesRadius, Tex_Dark, Tex_Light)   }// y-Axis
         text   { ttf "arial.ttf",  "y",  0.15,  0  texture{Tex_Dark}    
                   scale 0.5 translate <-0.75,AxisLenY+0.50,-0.10>}
        #end 
        #if (AxisLenZ != 0)
         object { Axis_(z, AxisLenZ,  axesRadius, Tex_Dark, Tex_Light)   }// z-Axis
         text   { ttf "arial.ttf",  "z",  0.15,  0  texture{Tex_Dark}
                       scale 0.5 translate <-0.75,0.2,AxisLenZ+0.10>}
        #end 
    } // end of union

#end// of macro "AxisXYZ( ... )"


#declare txtrAxisLite  = texture { pigment{ color rgb<1,1,1>*.3}  finish { phong 1} }
#declare txtrAxisDark = texture { pigment{ color rgb<1,1,1>*.8}     finish { phong 1} }
                              

#macro RenderClockedTorusKnot(p, q, majRad, minRad, plotRadius, PointCount, completion, txtr)
  #local LastPos = <0, 0, 0>;

  #for (pointNdx, 0, PointCount * completion)
    #local Theta = 2 * pi * pointNdx / PointCount;

    // Torus knot path calculations
    //#local X = (majRad + minRad * cos(q * Theta)) * cos(p * Theta);
    //#local Y = (majRad + minRad * cos(q * Theta)) * sin(p * Theta);
    //#local Z = minRad * sin(q * Theta);
    
    #local Y = (majRad + minRad * cos(q * Theta)) * cos(p * Theta);
    #local X = (majRad + minRad * cos(q * Theta)) * sin(p * Theta);
    #local Z = minRad * sin(q * Theta);
    #local Pos = <X,Y,Z>;

    #if (pointNdx > 0)
      union {
        cylinder {
          LastPos, Pos, plotRadius open
          texture {txtr}
        }
        sphere { LastPos, plotRadius texture {txtr} }
        
      } // end union
    #end
    #local LastPos = Pos;
  #end
#end

#macro renderClockedUnitQ(p, q, majRad, minRad, plotRadius, PointCount, txtr)
  #local LastPos = <0, 0, 0>;

  #for (pointNdx, 0,  (PointCount) *  clock/q )
    #local Theta = 2 * pi * pointNdx / PointCount;

    // Torus knot path calculations
    //#local X = (majRad + minRad * cos(q * Theta)) * cos(p * Theta);
    //#local Y = (majRad + minRad * cos(q * Theta)) * sin(p * Theta);
    //#local Z = minRad * sin(q * Theta);

    #local Y = (majRad + minRad * cos(q * Theta)) * cos(p * Theta);
    #local X = (majRad + minRad * cos(q * Theta)) * sin(p * Theta);
    #local Z = minRad * sin(q * Theta);
    #local Pos = <X, Y, Z>;

    #if (pointNdx > 0)
      union {
        cylinder {
          LastPos, Pos, plotRadius open
          texture {txtr}
        }
        sphere { LastPos, plotRadius texture {txtr} }
        
      } // end union
    #end
    #local LastPos = Pos;
  #end

#end


//  Scene  //

light_source{<15,25,25>*100 color White shadowless}

sky_sphere{ pigment{ gradient <01,0,0>
                     color_map{ [0   color rgb<0.24,0.34,0.56>*1.2]        
                                [0.5 color rgb<0.24,0.34,0.56>*0.4] 
                                [0.5 color rgb<0.24,0.34,0.56>*0.4] 
                                [1.0 color rgb<0.24,0.34,0.56>*1.2]          
                              }
                      rotate< 0,0, 0>                     
                      scale 2 } 
}                                 

camera {
    orthographic
    angle 40
    location  <1,1,.75>*8
    location  x*14
    look_at   y*0
    up z
    right     x*image_width/image_height
    
}
               
//  poloid:toroid = p:q knot ratio
#declare poloid     = 13;
#declare toroid     =  8;

#declare phaseCount = 1;
                                  
//  Torus profile (golden torus)
#declare majRad     = pow(sqrt(5)*0.5+0.5,4);
#declare minRad     = majRad - 1;

#declare plotRad    = 1/16;
#declare knotScale  = .4;

#declare segmentCount = 800;
          
#declare txtrCu     = texture{pigment{Brown}};

#declare txtrA      = texture{pigment{Red  }};
#declare txtrB      = texture{pigment{Green}};
#declare txtrC      = texture{pigment{Blue }};

union{

    //  Render a copper knot of 8 unitQ helicals  //

    #for (k,0, toroid-1)
    
        #for (j,1,phaseCount) 
        
            union{ 
                renderClockedUnitQ( poloid, toroid, majRad, minRad, plotRad, segmentCount, texture{txtrCu} )
                
                rotate z*(k*360/toroid)
                
                rotate z*(j*360/phaseCount) 
                scale knotScale 
            } 
        
        #end
        /*
        union{ 
            renderClockedUnitQ( poloid, toroid, majRad, minRad, plotRad, segmentCount, 1/2, texture{txtrCu} )
            rotate z*(j*360/phaseCount) 
             rotate x*0
             rotate z*180
             scale knotScale 
        }                                                 
        */         
        AxisXYZ( 8.5, 8.5, 0, .03, txtrAxisLite, txtrAxisDark)
    #end
    rotate -x*90 //  Rotate the torus axis with the Z axis, rendered as vertical axis.    
  //  rotate z*360/24*clock
}   




DALL·E 2023-12-11 08.21.53 - A futuristic and imaginative logo representing a collaborative project between human intuition and artificial intelligence. The design should symboliz.png

The AI and I Dialogs

Ode to Future AIs <> Unified Quantum Consciousness <> Alien Consciousness <> Visage of a Dimple in Time <> Something Alien <> Data Examples <> Comp sci <> Scatter-Gather <> Redundant simplicity <> Talk:Spin WaveArray <> The Plow Share <> Quantum joke <> Ancient Vedas <> Orb Whispers <> Time technology with rotating magnetic fields <> AI Art <> Radii walk in a bar <> Light's Flow through Time <> Three Buddhas <> The Epic Chronosymphonogram <> Temporal Collision ChroniclesBeings of Earth