SPHΘRIPHΦR - Study 02

Spherical Space Divisions And Fulldome Social Arrangements

This study examines a variety of methods of dividing the surface of a digital projection dome. This is one of a series of studies for the creation of a visual metaphor for representing complex data clusters in spherical space.

For more information see:
Spheriphor Main Page
Buckminster Fuller Challenge
Advanced to 2nd Stage
Q and A - Dome Projection System
Fulldome Visual Acuity
Spheriphor Study 01
Spheriphor Study 02
Spheriphor Study 03
Spheriphor Study 04
Spheriphor Study 05
Spheriphor Study 06
The term SPHERIPHOR and the special spelling SPHΘRIPHΦR using the Greek letters phi (Θ) and theta (Φ) are trademark words coined by the author/inventor Thomas J. Greenbaum as a compound of the words "SPHERIcal" and "metaPHOR." Included in the Spheriphor Studies are 3D images and animations rendered with POV-Ray. Examples of POV-Ray scene description language source code is provided "as is" for the reader to use and experiment with.

Creative Commons License This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.

Contents

Image Gallery

.

POV-Ray Source Code

Persistence of Vision Raytracer (POV-Ray) is used to parametrically generate images of a multitude of schemes and variations for full-dome sub-divisions. The images presented here are based on a typical planetarium dome 55 feet (16.5 meters) in diameter, however the source code can easily be edited to change the diameter.

A variety of table and seating arrangements are also explored. This is a departure from the common theater-style seating now in use. In this way, social networking and collaboration under the dome may also be studied. The combination of spherical sub-divisions and seating layout create a unique perceptual environment.

Usage

The POV-Ray Spheriphor generator uses two files, the main Spheriphor_Study02.pov scene description file and an included file that contains the parametric data used to generate a variety of layouts. Several different include files are provided to illustrate how the parameters affect a change in the geometry of the spherical sub-divisions and the seating layout.

  1. Create a file folder on your hard drive: c:\spheriphor\
  2. Copy the text from the table below and paste into the POV-Ray text editor
  3. Select File>Save As... and enter the filename
  4. Edit  the main Spheriphor_Study01.pov file to point to the include data file that you wish to use
    for example: #include "Spheriphor_Study02_01.inc"
  5. Click on the tab in POV-Ray for Spheriphor_Study02.pov and Run the renderer

>Back to top

Spheriphor_Study02.pov

/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
   http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 14, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space

Command line options to redirect file output
   Test resolution setting:   
      +FS24, +Lc:\spheriphor\, +OSpheriphor_Study02 Width=320, Height=240, +A
   High resolution setting:
      +FS24, +Lc:\spheriphor\, +OSpheriphor_Study02 Width=3072, Height=2304, +A     
   NOTES: +FS24 = System File (Windows BMP) 24bit color depth
*/
 
#include "stdinc.inc"
#include "shapes.inc"                            // Include Macro for Wedge shape
#include "Spheriphor_Study02_01.inc"             // Include data for Grid parameters and seating layout

// Increase max_trace_level to calculate multiple layers of transparent objects
global_settings
{
  //max_trace_level 20
  //ambient_light rgb <0.7,0.7,0.7>
}

#declare Grid_finish = finish {
   ambient   0.300
   phong 0.9 phong_size 60 metallic
   diffuse   0.700
   specular  0.700
   roughness 0.5
}
// *** BEGIN *** Create a mulitude of grids
#declare k = 0 ;                                 // Initialize row value (array elements start at 0)
#declare Grid =
union {
   #while (k < Row_cnt)
   // Define the Spherical Grid
   #declare Grid_Color1     = color Grid_color[k][0] ; 
   #declare Grid_Color2     = color Grid_color[k][1] ; 
   #declare Torus_r1        = Grid_val[k][0] ;      // Spherical grid torus radius - primary
   #declare Torus_r2        = Grid_val[k][1] ;      // Spherical grid torus radius - secondary
   #declare Qty_Lng_Torus   = Grid_val[k][2] ;      // Number of longitudinal divisions
   #declare Qty_Lat_Torus   = Grid_val[k][3] ;      // Number of latitudinal divisions
   #declare Phi_upper       = Grid_val[k][4] ;      // Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
   #declare Phi_lower       = Grid_val[k][5] ;      // Lower bounding angle for latitudinal divisions (MUST BE <90)
   #declare Theta_lower     = Grid_val[k][6] ;      // Lower bounding angle for longitutidinal divisions (12noon=0)
   #declare Theta_upper     = Grid_val[k][7] ;      // Upper bounding angle for longitutidinal divisions (max angle=360)
   
   #declare Angle_Lng_Torus = (Theta_upper-Theta_lower)/Qty_Lng_Torus ; // Angle between longitudinal divisions 
   #declare Angle_Lat_Torus = (Phi_lower-Phi_upper)/Qty_Lat_Torus ;     // Angle between latitudinal divisions
   
   // *** BEGIN Grid_Lat *** Series of latitudinal divisions
   #declare Phi = Phi_upper ;                       // Initialize Phi to upper bounding angle
   #declare i = 0 ;                                 // Initialize i
   #declare Grid_Lat_0 =                            // Create latitudinal grid from union of individual torus (whole prior to cutting)
      union {                                       // Create a latitudinal torus for each division
         #while (i <= Qty_Lat_Torus )
            #declare Lat_r1 = sind(Phi)*Torus_r1 ;  // Torus radius according to Phi 
            #declare Lat_Ht = cosd(Phi)*Torus_r1 ;  // Torus height according to Phi
            torus { Lat_r1, Torus_r2
               translate <0,Lat_Ht,0>
            }
            #declare Phi = Phi + Angle_Lat_Torus ;  // Increment angle for next division
            #declare i = i + 1 ;
         #end
      }
   #declare Diff_wedge =                            // Creat wedge to subtract from Lat series
      Wedge ( 360-(Theta_upper-Theta_lower) )       // Wedge macro from "shapes.inc" creates infinite wedge shape
   #declare Grid_Lat_1 =                            // Lat grid cut at lower and upper bounding angles
      difference {                                  // Results in pie slice of lat torus series
         object { Grid_Lat_0 }                      // Initial series of lat torus that wrap 360 deg
         Wedge ( 360-(Theta_upper-Theta_lower) )    // Wedge macro from "shapes.inc" creates infinite wedge shape
      }
   #declare Grid_Lat =                              // Final Lat grid rotated to correct angle
      object { Grid_Lat_1
         rotate < 0,Theta_upper,0 >                 // Rotated to adjust for wedge generated fixed to zy plane
      }
   object { Grid_Lat                                // Instantiate the Grid_Lat object
      pigment { Grid_Color1 }
      finish { Grid_finish }
      no_shadow 
   }
   // ***  End Grid_Lat  *** Series of latitudinal divisions
   
   // *** Begin Grid_Lng *** Series of longitudinal divisions
   // Create the difference object that results in quarter torus
   #declare Diff_dim1 = Torus_r1*1.5 ;
   #declare Diff_dim2 = Torus_r2*1.5 ;
   #declare Lng_Torus_Diff =
      union {
         box { <0,-Diff_dim2,Diff_dim1>, }
         box { <-Diff_dim1,-Diff_dim2,0>, }
      }
   #declare Lng_Torus =
      torus { Torus_r1, Torus_r2 }  
   #declare Lng_Torus_Qtr_0 =                       // Create quarter torus by subtracting difference object
      difference {
         object { Lng_Torus }
         object { Lng_Torus_Diff }
         }
   #declare Lng_Torus_Qtr = 
      object { Lng_Torus_Qtr_0 rotate <0,0,-90> }   // Rotate 90 degrees about Z axis lifting it up from XZ plane

   // Create the series   
   #declare Theta = Theta_lower ;                   // Initialize Theta starting at lower boundary angle
   #declare i = 0 ;                                 // Initialize i
   #declare Grid_Lng_0 = 
      union {                                       // Create a latitudinal torus for each division
         #while (i <= Qty_Lng_Torus )
            object { Lng_Torus_Qtr
               rotate <0,Theta,0>                   // Next rotate Theta degrees about Y axis
            }
            #declare Theta = Theta + Angle_Lng_Torus ;   // Increment angle for next division
            #declare i = i + 1 ;
         #end
      }
   
   // Create difference object for cutting longitudinal grid torus lines at lower and upper bounding angles
   #declare Diff_dim1 = Torus_r1*1.5 ;              // Dimension of difference cylinder bigger than primary torus radius by factor of 1.5
   #declare Diff_dim2 = Diff_dim1/tand(Phi_lower) ;
   #declare Diff_dim3 = Diff_dim1/tand(Phi_upper) ;
   #declare Grid_diff_lower =
      difference {                                  // Subtract bottom half of grid below the lower Phi bounding angle
         cylinder { <0,-(Diff_dim2*1.5),0>,<0,0,0>,Diff_dim1  // Cylinder is big enough to contain the cone shaped cavity which is subtracted from it
            translate <0,Diff_dim2,0 >              // Cylinder is moved upward to position so that cone can be subtracted from it
         }
         cone {                                     // This cone is subtracted from the cylinder creating a cone shaped cavity in the
            <0,0,0>,0                               // top of the cylinder which is based on the Phi_lower angle
            <0,Diff_dim2,0>,Diff_dim1
         }
      }
   #declare Grid_diff_upper =                       // Upper diff object is a cone with one apex at the center of the sphere
      union {
         cone {                                     // Cone extends upward at angle determined by Diff_dim3 which was calculated
            <0,0,0>,0                               // based on the Phi_upper angle
            <0,Diff_dim3,0>,Diff_dim1         
         }
         cylinder { <0,0,0>,<0,Diff_dim1,0>,Diff_dim1 
            translate <0,Diff_dim3,0 >              // Cylinder moved upward to position to meet with top of cone
         } 
      }
   #declare Grid_Lng =                              // Final longitudinal grid cut at lower and upper bounding angles
      difference {
         object { Grid_Lng_0 }
         object { Grid_diff_lower }
         object { Grid_diff_upper }
      }
   object { Grid_Lng                                // Instantiate the Grid_Lng object
      pigment { Grid_Color2 }
      finish { Grid_finish }
      no_shadow 
   }
   // *** END Grid_Lng *** Series of longitudinal divisions
   #declare k = k + 1 ;
   #end
}
// *** END *** Create a mulitude of grids   

// *** BEGIN *** Create a mulitude of tables with people
/* P A R A M E T E R S - taken from the include file
Table_radius     = Radius of the table
Table_ht         = Height of table top (assuming 1.5 inch thickness)
Table_leg_cnt    = Number of legs around each table
People_cnt       = Number of people around each table
Table_people_cnt = Number of tables arrayed around area of floor just inside perimeter
*/

#declare Table_leg =
   cylinder { <0,0,0>,<0,(Table_ht-1.5),0>,1 }
#declare k = 0 ;                                 // Initialize row value (array elements start at 0)
#declare Table = 
   union {
      cylinder { <0,(Table_ht-1.5),0>,<0,Table_ht,0>,Table_radius } // Table top
      #while (k < Table_leg_cnt)
         object { Table_leg 
            translate <0,0,(Table_radius*0.85)>  // Move leg out from center of table at some distance less than the table radius
            rotate <0,k*(360/Table_leg_cnt),0>   // Array legs around table
         }
         #declare k = k + 1 ;
      #end
      }
#declare Person_leg =
   union {
      sphere { <0,28,0>,2 }
      cylinder { <0,0,0>,<0,28,0>,2 }
   }
#declare Person_torso =
   union {
      sphere { <0,0,0>,8                         // Shoulders
         scale <1,0.5,1>
         translate <0,58,0> 
      }
      cylinder { <0,32,0>,<0,58,0>,8 }
      sphere { <0,68,0>,5.5 }                    // Head
   }
#declare Person =
   union {
      object { Person_leg translate <4,0,0> }
      object { Person_leg translate <-4,0,0> }
      object { Person_torso scale <1,1,0.5> }
   }
// Create table with several people around it
#declare k = 0 ;                                 // Initialize row value (array elements start at 0)
#declare Table_people =
   union {
      object { Table }
      #while (k < People_cnt)
         object { Person
            translate <0,0,(Table_radius*1.5)>   // Move people out from center of table at some distance greater than the table radius
            rotate <0,k*(360/People_cnt),0>      // Array people around table
         }
         #declare k = k + 1 ;
      #end
   }
// Create the layout of tables and people
#declare k = 0 ;                                 // Initialize row value (array elements start at 0)
#declare Table_layout_1 =
   union {
      #while (k < Table_people_cnt)
         object { Table_people
            translate <0,0,(Torus_r1*0.7)>       // Move tables out from center of dome at some distance less than the dome radius
            rotate <0,k*(360/Table_people_cnt),0>    // Array tables around center of dome
         }
      #declare k = k + 1 ;
   #end
}
#declare Table_people_cnt = Table_people_cnt/2 ; // Number of tables arrayed around middle of floor area
#declare k = 0 ;                                 // Initialize row value (array elements start at 0)
#declare Table_layout_2 =
   union {
      #while (k < Table_people_cnt)              // Half as many mnumber of tables around middle of floor area
         object { Table_people
            translate <0,0,(Torus_r1*0.35)>      // Move tables out from center of dome at half the distance of the outer array of tables
            rotate <0,k*(360/Table_people_cnt),0>    // Array tables around center of dome
         }
      #declare k = k + 1 ;
   #end
}
#declare Table_layout =
   union {
      object { Table_people }
      object { Table_layout_1 }
      object { Table_layout_2 
         rotate <0,(360/Table_people_cnt)/4,0>
      }
   }

// *** END *** Create a mulitude of tables with people   

#declare BizViz = 
   union {
   //object { Grid }
   object { Table_layout
      translate <0,-72,0>
      pigment { Gray60 }
      finish { Grid_finish }
   }
   disc { <0,-72,0>,y,Torus_r1                   // Ground floor
      pigment { Gray40 }
      finish { Grid_finish }
   }
}

object { BizViz }

/*
object { BizViz
   rotate <0,clock*360,0>                        // Rotate around Y axis for animation
   rotate <120,0,0>
   translate <0,0,-35>
} */


// B A C K G R O U N D 
background { color White }

// L I G H T S
#declare Light_dist = Torus_r1*4 ;

light_source {
   
   color White }

light_source { 
   
   color LightSteelBlue }

/*
light_source { 
   color SummerSky //Gray40 White
   spotlight
   radius 65 falloff 70
   fade_distance Light_dist*0.7
   point_at <0,0,0>}

light_source { <-Light_dist,Light_dist,-Light_dist>
   color SpicyPink // Gray40 White
   spotlight
   radius 65 falloff 70
   fade_distance Light_dist*0.7
   point_at <0,0,0>}

light_source { <-Light_dist,-Light_dist,Light_dist>
   color SpringGreen //Gray40 White
   spotlight
   radius 65 falloff 70
   fade_distance Light_dist*0.7
   point_at <0,0,0>}

light_source { 
   color LightSteelBlue //Gray40 White
   //spotlight
   //radius 65 falloff 70
   //fade_distance Light_dist*0.7
   //point_at <0,0,0>
   }
*/

// C A M E R A S
#declare Cam01 =    
camera {
   fisheye
   location <0,0,0>
   look_at  <0,10,0>
   angle 180   
}

#declare Cam02 =   // Plan view looking from +Y to -Y
camera {
   location <0,Torus_r1*2,0>
   look_at  <0,0,0>
   right 1.33*x
   angle 70   
}

#declare Cam03 =    // Elevation view looking from -Z to +Z
camera {
   location <0,Torus_r1/2,-Torus_r1*1.93>
   look_at  <0,-20,Torus_r1>
   right 1.33*x
   angle 70   
}

#declare Cam04 =    // Zoom in on a table and people
camera {
   location <0,0,-Torus_r1*0.9>
   look_at  <0,0,0>
   right 1.33*x
   angle 70   
}

camera { Cam03 }
/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
   http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 10, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space
Include file defines parameters used in POV file: Spheriphor_Study02.pov
All files are located in folder: c:\spheriphor\
*/

/* Definitions and example data for the Spherical Grid
#declare Grid_Color1     = color Blue ; 
#declare Grid_Color2     = color Green ; 
#declare Torus_r1        = 100 ;                 // Spherical grid torus radius - primary
#declare Torus_r2        = 0.5 ;                 // Spherical grid torus radius - secondary
#declare Qty_Lng_Torus   = 9 ;                   // Number of longitudinal divisions
#declare Qty_Lat_Torus   = 10 ;                  // Number of latitudinal divisions
#declare Phi_upper       = 10 ;                  // Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
#declare Phi_lower       = 89 ;                  // Lower bounding angle for latitudinal divisions (MUST BE <90)
#declare Theta_lower     = 340 ;                 // Lower bounding angle for longitutidinal divisions (12noon=0)
#declare Theta_upper     = 520 ;                 // Upper bounding angle for longitutidinal divisions (max angle=360)
*/   
// P A R A M E T E R S
#declare Row_cnt = 7 ;
// Col 1     Col 2     Col 3          Col 4          Col 5      Col 6      Col 7        Col 8
// Torus_r1  Torus_r2  Qty_Lng_Torus  Qty_Lat_Torus  Phi_upper  Phi_lower  Theta_lower  Theta_upper
#declare Grid_val = array[7][8]                  // Multi-dimensional array with 7 rows and 10 columns
{  
   {100,      0.5,      12,            3,             10,        20,        0,           360}, //Row 1
   {100,      0.5,      6,             10,            30,        89,        0,           55},  //Row 2
   {100,      0.5,      10,            05,            35,        75,        60,          115}, //Row 3
   {100,      0.5,      6,             10,            30,        89,        120,         175}, //Row 4
   {100,      0.5,      10,            15,            35,        75,        180,         235}, //Row 5
   {100,      0.5,      6,             10,            30,        89,        240,         295}, //Row 6
   {100,      0.5,      10,            15,            35,        75,        300,         355}  //Row 7
} ;

// Col 1        Col 2
// Grid_Color1  Grid_Color2
#declare Grid_color = array[7][2]                // Multi-dimensional array with 7 rows and 2 columns
{  
   {Blue,       Green},    //Row 1
   {Red,        SkyBlue},  //Row 2
   {Magenta,    Yellow},   //Row 3
   {Red,        SkyBlue},  //Row 4
   {Magenta,    Yellow},   //Row 5
   {Red,        SkyBlue},  //Row 6
   {Magenta,    Yellow}    //Row 7
} ;
/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
   http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 13, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space
Include file defines parameters used in POV file: Spheriphor_Stuyd02.pov
All files are located in folder: c:\spheriphor\
*/

/* Definitions and example data for the Spherical Grid
Grid_Color1     = Longitidunal grid line color
Grid_Color2     = Latitidunal grid line color
Torus_r1        = Spherical grid torus radius - primary (e.g. a 55 foot diameter dome has a radius of 27.5 feet or 330 inches)
Torus_r2        = Spherical grid torus radius - secondary
Qty_Lng_Torus   = Number of longitudinal divisions
Qty_Lat_Torus   = Number of latitudinal divisions
Phi_upper       = Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
Phi_lower       = Lower bounding angle for latitudinal divisions (MUST BE <90)
Theta_lower     = Lower bounding angle for longitutidinal divisions (12noon=0)
Theta_upper     = Upper bounding angle for longitutidinal divisions (max angle=360)
*/   
// P A R A M E T E R S
#declare Row_cnt = 8 ;
#declare Grid_val = array[Row_cnt][8]            // Multi-dimensional array with 8 rows and 8 columns
// Col 1     Col 2     Col 3          Col 4          Col 5      Col 6      Col 7        Col 8
// Torus_r1  Torus_r2  Qty_Lng_Torus  Qty_Lat_Torus  Phi_upper  Phi_lower  Theta_lower  Theta_upper
{  
   {330,     1,        12,            4,             5,         25,         10,         170}, //Row 1
   {330,     1,        10,            3,             5,         25,        190,         350}, //Row 2
   {330,     1,         6,            8,            40,         65,         10,         100}, //Row 3
   {330,     1,         5,            7,            70,         89,         10,         100}, //Row 4
   {330,     1,         6,            8,            40,         65,        140,         220}, //Row 5
   {330,     1,         5,            7,            70,         89,        140,         220}, //Row 6
   {330,     1,         6,            8,            40,         65,        260,         340}, //Row 7
   {330,     1,         5,            7,            70,         89,        260,         340}  //Row 8
} ;

#declare Grid_color = array[Row_cnt][2]          // Multi-dimensional array with 8 rows and 2 columns
// Col 1        Col 2
// Grid_Color1  Grid_Color2
{  
   {Blue,       Green},            //Row 1
   {Blue,       Green},            //Row 2
   {Red,        SkyBlue},          //Row 3
   {Turquoise,  MandarinOrange},   //Row 4
   {Red,        SkyBlue},          //Row 5
   {Turquoise,  MandarinOrange},   //Row 6
   {Red,        SkyBlue},          //Row 7
   {Turquoise,  MandarinOrange}    //Row 8
} ;

// Create a mulitude of tables with people - should relate to geometry of grids created above
// P A R A M E T E R S
#declare Table_radius  = 36 ;                    // Radius of the table
#declare Table_ht      = 28 ;                    // Height of table top (assuming 1.5 inch thickness)
#declare Table_leg_cnt = 4 ;                     // Number of legs around each table
#declare People_cnt    = 6 ;                     // Number of people around each table
#declare Table_people_cnt = 6 ;                  // Number of tables arrayed around area of floor just inside perimeter
/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
   http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 13, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space
Include file defines parameters used in POV file: Spheriphor_Study02.pov
All files are located in folder: c:\spheriphor\
*/

/* Definitions and example data for the Spherical Grid
Grid_Color1     = Longitidunal grid line color
Grid_Color2     = Latitidunal grid line color
Torus_r1        = Spherical grid torus radius - primary (e.g. a 55 foot diameter dome has a radius of 27.5 feet or 330 inches)
Torus_r2        = Spherical grid torus radius - secondary
Qty_Lng_Torus   = Number of longitudinal divisions
Qty_Lat_Torus   = Number of latitudinal divisions
Phi_upper       = Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
Phi_lower       = Lower bounding angle for latitudinal divisions (MUST BE <90)
Theta_lower     = Lower bounding angle for longitutidinal divisions (12noon=0)
Theta_upper     = Upper bounding angle for longitutidinal divisions (max angle=360)
*/   
// P A R A M E T E R S
#declare Row_cnt  = 21 ;
#declare Grid_val = array[Row_cnt][8]            // Multi-dimensional array with 8 rows and 8 columns
// Col 1     Col 2     Col 3          Col 4          Col 5      Col 6      Col 7        Col 8
// Torus_r1  Torus_r2  Qty_Lng_Torus  Qty_Lat_Torus  Phi_upper  Phi_lower  Theta_lower  Theta_upper
{  
   {330,     1,         6,            3,             5,         35,         10,         110}, //Row  1
   {330,     1,         6,            3,             5,         35,        130,         230}, //Row  2
   {330,     1,         6,            3,             5,         35,        250,         350}, //Row  3
   
   {330,     1,         4,            4,            45,         60,          5,          55}, //Row  4
   {330,     1,         5,            6,            40,         65,         65,         115}, //Row  5
   {330,     1,         4,            4,            45,         60,        125,         175}, //Row  6
   {330,     1,         5,            6,            40,         65,        185,         235}, //Row  7
   {330,     1,         4,            4,            45,         60,        245,         295}, //Row  8
   {330,     1,         5,            6,            40,         65,        305,         355}, //Row  9

   {330,     1,         5,            6,            70,         89,          2,          28}, //Row 10
   {330,     1,         4,            7,            67,         89,         32,          58}, //Row 11
   {330,     1,         5,            6,            70,         89,         62,          88}, //Row 12
   {330,     1,         4,            7,            67,         89,         92,         118}, //Row 13
   {330,     1,         5,            6,            70,         89,        122,         148}, //Row 14
   {330,     1,         4,            7,            67,         89,        152,         178}, //Row 15
   {330,     1,         5,            6,            70,         89,        182,         208}, //Row 16
   {330,     1,         4,            7,            67,         89,        212,         238}, //Row 17
   {330,     1,         5,            6,            70,         89,        242,         268}, //Row 18
   {330,     1,         4,            7,            67,         89,        272,         298}, //Row 19
   {330,     1,         5,            6,            70,         89,        302,         328}, //Row 20
   {330,     1,         4,            7,            67,         89,        332,         358}  //Row 21   
} ;

#declare Grid_color = array[Row_cnt][2]          // Multi-dimensional array with 8 rows and 2 columns
// Col 1        Col 2
// Grid_Color1  Grid_Color2
{  
   {Blue,       Green},            //Row  1
   {Blue,       Green},            //Row  2
   {Blue,       Green},            //Row  3

   {Red,        SkyBlue},          //Row  4
   {Turquoise,  MandarinOrange},   //Row  5
   {Red,        SkyBlue},          //Row  6
   {Turquoise,  MandarinOrange},   //Row  7
   {Red,        SkyBlue},          //Row  8
   {Turquoise,  MandarinOrange},   //Row  9

   {LimeGreen,  MediumAquamarine}, //Row 10
   {VioletRed,  DarkPurple},       //Row 11
   {LimeGreen,  MediumAquamarine}, //Row 12
   {VioletRed,  DarkPurple},       //Row 13
   {LimeGreen,  MediumAquamarine}, //Row 14
   {VioletRed,  DarkPurple},       //Row 15
   {LimeGreen,  MediumAquamarine}, //Row 16
   {VioletRed,  DarkPurple},       //Row 17
   {LimeGreen,  MediumAquamarine}, //Row 18
   {VioletRed,  DarkPurple},       //Row 19
   {LimeGreen,  MediumAquamarine}, //Row 20
   {VioletRed,  DarkPurple}        //Row 21
} ;

// Create a mulitude of tables with people - should relate to geometry of grids created above
// P A R A M E T E R S
#declare Table_radius  = 36 ;                    // Radius of the table
#declare Table_ht      = 28 ;                    // Height of table top (assuming 1.5 inch thickness)
#declare Table_leg_cnt = 4 ;                     // Number of legs around each table
#declare People_cnt    = 6 ;                     // Number of people around each table
#declare Table_people_cnt = 6 ;                  // Number of tables arrayed around area of floor just inside perimeter
/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
   http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 13, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space
Include file defines parameters used in POV file: Spheriphor_Study02.pov
All files are located in folder: c:\spheriphor\
*/

/* Definitions and example data for the Spherical Grid
Grid_Color1     = Longitidunal grid line color
Grid_Color2     = Latitidunal grid line color
Torus_r1        = Spherical grid torus radius - primary (e.g. a 55 foot diameter dome has a radius of 27.5 feet or 330 inches)
Torus_r2        = Spherical grid torus radius - secondary
Qty_Lng_Torus   = Number of longitudinal divisions
Qty_Lat_Torus   = Number of latitudinal divisions
Phi_upper       = Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
Phi_lower       = Lower bounding angle for latitudinal divisions (MUST BE <90)
Theta_lower     = Lower bounding angle for longitutidinal divisions (12noon=0)
Theta_upper     = Upper bounding angle for longitutidinal divisions (max angle=360)
*/   
// P A R A M E T E R S
#declare Row_cnt  = 11 ;
#declare Grid_val = array[Row_cnt][8]            // Multi-dimensional array with 8 rows and 8 columns
// Col 1     Col 2     Col 3          Col 4          Col 5      Col 6      Col 7        Col 8
// Torus_r1  Torus_r2  Qty_Lng_Torus  Qty_Lat_Torus  Phi_upper  Phi_lower  Theta_lower  Theta_upper
{  
   {330,     1,        16,            5,             1,         20,          0,         360}, //Row  1

   {330,     1,         8,            5,            30,         50,          5,         175}, //Row  2
   {330,     1,         8,            5,            30,         50,        185,         355}, //Row  3
   
   {330,     1,         6,            7,            55,         89,          2,          43}, //Row  4
   {330,     1,         7,            6,            60,         80,         47,          88}, //Row  5
   {330,     1,         6,            7,            55,         89,         92,         133}, //Row  6
   {330,     1,         7,            6,            60,         80,        137,         178}, //Row  7
   {330,     1,         6,            7,            55,         89,        182,         223}, //Row  8
   {330,     1,         7,            6,            60,         80,        227,         268}, //Row  9
   {330,     1,         6,            7,            55,         89,        272,         313}, //Row 10
   {330,     1,         7,            6,            60,         80,        317,         358}  //Row 11
} ;

#declare Grid_color = array[Row_cnt][2]          // Multi-dimensional array with 8 rows and 2 columns
// Col 1        Col 2
// Grid_Color1  Grid_Color2
{  
   {Blue,       Green},            //Row  1

   {Red,        SkyBlue},          //Row  2
   {Red,        SkyBlue},          //Row  3
   
   {LimeGreen,  MediumAquamarine}, //Row  4
   {VioletRed,  DarkPurple},       //Row  5
   {LimeGreen,  MediumAquamarine}, //Row  6
   {VioletRed,  DarkPurple},       //Row  7
   {LimeGreen,  MediumAquamarine}, //Row  8
   {VioletRed,  DarkPurple},       //Row  9
   {LimeGreen,  MediumAquamarine}, //Row 10
   {VioletRed,  DarkPurple}        //Row 11
} ;

// Create a mulitude of tables with people - should relate to geometry of grids created above
// P A R A M E T E R S
#declare Table_radius  = 36 ;                    // Radius of the table
#declare Table_ht      = 28 ;                    // Height of table top (assuming 1.5 inch thickness)
#declare Table_leg_cnt = 4 ;                     // Number of legs around each table
#declare People_cnt    = 4 ;                     // Number of people around each table
#declare Table_people_cnt = 8 ;                  // Number of tables arrayed around area of floor just inside perimeter
/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
   http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 13, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space
Include file defines parameters used in POV file: Spheriphor_Study02.pov
All files are located in folder: c:\spheriphor\
*/

/* Definitions and example data for the Spherical Grid
Grid_Color1     = Longitidunal grid line color
Grid_Color2     = Latitidunal grid line color
Torus_r1        = Spherical grid torus radius - primary (e.g. a 55 foot diameter dome has a radius of 27.5 feet or 330 inches)
Torus_r2        = Spherical grid torus radius - secondary
Qty_Lng_Torus   = Number of longitudinal divisions
Qty_Lat_Torus   = Number of latitudinal divisions
Phi_upper       = Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
Phi_lower       = Lower bounding angle for latitudinal divisions (MUST BE <90)
Theta_lower     = Lower bounding angle for longitutidinal divisions (12noon=0)
Theta_upper     = Upper bounding angle for longitutidinal divisions (max angle=360)
*/   
// P A R A M E T E R S
#declare Row_cnt  = 16 ;
#declare Grid_val = array[Row_cnt][8]            // Multi-dimensional array with 8 rows and 8 columns
// Col 1     Col 2     Col 3          Col 4          Col 5      Col 6      Col 7        Col 8
// Torus_r1  Torus_r2  Qty_Lng_Torus  Qty_Lat_Torus  Phi_upper  Phi_lower  Theta_lower  Theta_upper
{  
   {330,     1,         2,            3,             8,         35,          5,          40}, //Row  1
   {330,     1,         3,            4,             4,         30,         50,          85}, //Row  2
   {330,     1,         2,            3,             8,         35,         95,         130}, //Row  3
   {330,     1,         3,            4,             4,         30,        140,         175}, //Row  4
   {330,     1,         2,            3,             8,         35,        185,         220}, //Row  5
   {330,     1,         3,            4,             4,         30,        230,         265}, //Row  6
   {330,     1,         2,            3,             8,         35,        275,         310}, //Row  7
   {330,     1,         3,            4,             4,         30,        320,         355}, //Row  8
  
   {330,     1,         8,            5,            38,         65,          5,          85}, //Row  9
   {330,     1,         8,            5,            40,         68,         95,         175}, //Row 10
   {330,     1,         8,            5,            38,         65,        185,         265}, //Row 11
   {330,     1,         8,            5,            40,         68,        275,         355}, //Row 12
      
   {330,     1,        10,            8,            70,         89,         50,         130}, //Row 13
   {330,     1,        12,           10,            70,         89,        140,         220}, //Row 14
   {330,     1,        10,            8,            70,         89,        230,         310}, //Row 15
   {330,     1,        12,           10,            70,         89,        320,         400}  //Row 16
} ;

#declare Grid_color = array[Row_cnt][2]          // Multi-dimensional array with 8 rows and 2 columns
// Col 1        Col 2
// Grid_Color1  Grid_Color2
{  
   {LimeGreen,  MediumAquamarine}, //Row  1
   {VioletRed,  DarkPurple},       //Row  2
   {LimeGreen,  MediumAquamarine}, //Row  3
   {VioletRed,  DarkPurple},       //Row  4
   {LimeGreen,  MediumAquamarine}, //Row  5
   {VioletRed,  DarkPurple},       //Row  6
   {LimeGreen,  MediumAquamarine}, //Row  7
   {VioletRed,  DarkPurple},       //Row  8

   {CoolCopper,   Coral},          //Row  9
   {Goldenrod,    Firebrick},      //Row 10
   {CoolCopper,   Coral},          //Row 11
   {Goldenrod,    Firebrick},      //Row 12

   {Red,        SkyBlue},          //Row 13
   {Blue,       Green},            //Row 14
   {Red,        SkyBlue},          //Row 15
   {Blue,       Green}             //Row 16
} ;

// Create a mulitude of tables with people - should relate to geometry of grids created above
// P A R A M E T E R S
#declare Table_radius  = 12 ;                    // Radius of the table
#declare Table_ht      = 28 ;                    // Height of table top (assuming 1.5 inch thickness)
#declare Table_leg_cnt = 4 ;                     // Number of legs around each table
#declare People_cnt    = 1 ;                     // Number of people around each table
#declare Table_people_cnt = 26 ;                  // Number of tables arrayed around area of floor just inside perimeter
>Back to top

Home • Up • About • Attitude • Gallery • Karmatetra • Links/Search • Network • Non-Goal • Non-Synergy • Philosophy • Snowflakes • STUPAfy

Copyright 2012 by Tom Greenbaum. Creative Commons License Some Rights Reserved
email: tom@karmatetra.com

Albuquerque, New Mexico