view { units [3]< 1, 18, 0.5 >; dotsPerUnit [3]< 50, 50, 10 >; viewDepth 16; viewport { portal myportal { universe u4 ; center [1]< -18 >; }; channels [3]< @ myportal 0 , @ myportal 1 , @ myportal 2 >; }; image png { common { basename all; }; }; }; universe u4 { dimensions 4; ambientLight { channels [3]< 0.1 , 0.1 , 0.1 >; }; skyColor { channels [3]< 0.2 , 0.2 , 0.6 >; }; light { position [4]< -20, 5, 10, 3 >; falloff 0.0; direction [4]< 20, -5, -10, -3 >; angles 5, 10; color { channels [3]< 0.4 , 0.4 , 0.4 >; }; }; light { position [4]< -10, 5, 14, -10 >; falloff 0.0; color { channels [3]< 0.4 , 0.4 , 0.4 >; }; }; light { position [4]< -14, -8, 5, 10 >; falloff 0.0; color { channels [3]< 0.5 , 0.5 , 0.5 >; }; }; # (0,4) object cylinder { roundDimensions 0; base { center [4]< 0, 0, 9.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; color { channels [3]< 0.8, 0.5, 0.3 >; specularness 0.3; reflectiveness 0.2; }; }; }; # (2,4) object cylinder { roundDimensions 2; base { center [4]< 0, 0, 8.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; color { channels [3]< 0.3, 0.5, 0.3 >; specularness 0.3; reflectiveness 0.2; }; }; }; # (3,4) object cylinder { roundDimensions 3; base { center [4]< 0, 0, 7.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; color { channels [3]< 0.8, 0.5, 0.8 >; specularness 0.3; reflectiveness 0.2; }; }; }; # (4,4) object cylinder { roundDimensions 4; base { center [4]< 0, 0, 6.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; color { channels [3]< 0.3, 0.8, 0.8 >; specularness 0.3; reflectiveness 0.2; }; }; }; # duo-circle object intersection { object cylinder { roundDimensions 2; }; object cylinder { roundDimensions 2; base { orientation [4]< [4]< 0, 0, 1, 0 >, [4]< 0, 0, 0, 1 >, [4]< 1, 0, 0, 0 >, [4]< 0, 1, 0, 0 > >; }; }; base { center [4]< 0, 0, 5.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; color { channels [3]< 0.8, 0.8, 0.1 >; specularness 0.3; reflectiveness 0.2; }; }; }; # quadratic object intersection { object cylinder { roundDimensions 0; }; object quadratic { squares [4]< [4]< 1, 0, -1, 0 >, [4]< 0, -1, 0, -1 >, [4]< 0, 0, 1, 0 >, [4]< 0, 0, 0, 0 > >; linears [4]< 0, 0, 0, 1 >; scalar 0.5; base { scale [4]< 0.5, 0.5, 0.5, 0.5 >; }; }; base { center [4]< 0, 0, 4.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; color { channels [3]< 0.8, 0.2, 0.5 >; specularness 0.3; reflectiveness 0.2; }; }; }; # halfspace object intersection { object cylinder { roundDimensions 0; base { color { channels [3]< 0.2, 0.2, 0.2 >; specularness 0.3; reflectiveness 0.2; }; }; }; object halfspace { base { orientation [1]< [4]< -4, 2, 3, 1 > >; color { channels [3]< 0.8, 0.2, 0.5 >; specularness 0.3; reflectiveness 0.2; }; }; }; base { center [4]< 0, 0, 3.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; }; }; # simplex object coxeter { matrix [4]< [4]< 1, 3, 2, 2 >, [4]< 3, 0, 3, 2 >, [4]< 2, 3, 0, 3 >, [4]< 2, 2, 3, 0 > >; base { center [4]< 0, 0, 2.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; orientation [1]< [4]< 3, 1, 1, 2 > >; color { channels [3]< 1.0, 0.4, 0.4 >; specularness 0.3; reflectiveness 0.2; }; }; }; # cube object coxeter { matrix [4]< [4]< 1, 4, 2, 2 >, [4]< 4, 0, 3, 2 >, [4]< 2, 3, 0, 3 >, [4]< 2, 2, 3, 0 > >; base { center [4]< 0, 0, 1.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; color { channels [3]< 0.1, 0.8, 0.4 >; specularness 0.3; reflectiveness 0.2; }; }; }; # octahedron object coxeter { matrix [4]< [4]< 0, 4, 2, 2 >, [4]< 4, 0, 3, 2 >, [4]< 2, 3, 0, 3 >, [4]< 2, 2, 3, 1 > >; base { center [4]< 0, 0, 0.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; color { channels [3]< 0.1, 0.4, 0.8 >; specularness 0.3; reflectiveness 0.2; }; }; }; # 24-cell object coxeter { matrix [4]< [4]< 1, 3, 2, 2 >, [4]< 3, 0, 4, 2 >, [4]< 2, 4, 0, 3 >, [4]< 2, 2, 3, 0 > >; base { center [4]< 0, 0, -1.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; color { channels [3]< 0.8, 0.6, 0.1 >; specularness 0.3; reflectiveness 0.2; }; }; }; # 120-cell object coxeter { matrix [4]< [4]< 1, 5, 2, 2 >, [4]< 5, 0, 3, 2 >, [4]< 2, 3, 0, 3 >, [4]< 2, 2, 3, 0 > >; base { center [4]< 0, 0, -2.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; color { channels [3]< 0.6, 0.5, 0.4 >; specularness 0.3; reflectiveness 0.2; }; }; }; # 600-cell object coxeter { matrix [4]< [4]< 0, 5, 2, 2 >, [4]< 5, 0, 3, 2 >, [4]< 2, 3, 0, 3 >, [4]< 2, 2, 3, 1 > >; base { center [4]< 0, 0, -3.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; color { channels [3]< 0.6, 0.8, 0.2 >; specularness 0.3; reflectiveness 0.2; }; }; }; # union object union { object cylinder { roundDimensions 0; base { color { channels [3]< 0.8, 0.8, 0.3 >; specularness 0.3; reflectiveness 0.2; }; }; }; object cylinder { roundDimensions 4; base { scale [4]< 1.25, 1.25, 1.25, 1.25 >; color { channels [3]< 0.5, 0.3, 0.8 >; specularness 0.3; reflectiveness 0.2; }; }; }; base { center [4]< 0, 0, -4.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; }; }; # intersection object intersection { object cylinder { roundDimensions 0; base { color { channels [3]< 0.3, 0.8, 0.8 >; specularness 0.3; reflectiveness 0.2; }; }; }; object cylinder { roundDimensions 4; base { scale [4]< 1.25, 1.25, 1.25, 1.25 >; color { channels [3]< 0.3, 0.3, 0.8 >; specularness 0.3; reflectiveness 0.2; }; }; }; base { center [4]< 0, 0, -5.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; }; }; # complement object intersection { object cylinder { roundDimensions 0; base { color { channels [3]< 0.8, 0.3, 0.3 >; specularness 0.3; reflectiveness 0.2; }; }; }; object complement { object cylinder { roundDimensions 4; base { scale [4]< 1.25, 1.25, 1.25, 1.25 >; color { channels [3]< 0.3, 0.8, 0.3 >; specularness 0.3; reflectiveness 0.2; }; }; }; }; base { center [4]< 0, 0, -6.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; }; }; # extrusion object intersection { object cylinder { roundDimensions 3; base { color { channels [3]< 0.8, 0.3, 0.3 >; specularness 0.3; reflectiveness 0.2; }; }; }; object extrusion { dimensions 2; object coxeter { matrix [2]< [2]< 1, 6 >, [2]< 6, 0 > >; base { scale [2]< 0.5, 0.5 >; color { channels [3]< 0.3, 0.3, 0.8 >; specularness 0.3; reflectiveness 0.2; }; }; }; base { orientation [1]< [4]< 5, 3, 2, 1 > >; }; }; base { center [4]< 0, 0, -7.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; }; }; # transparent object set { object cylinder { roundDimensions 0; base { scale [4]< 0.25, 1.0, 1.0, 1.0 >; color { channels [3]< + 0.5 * 0.5 sign cos * 8 + + pos 0 pos 1 pos 2, + 0.5 * 0.5 sign cos * 8 + + pos 0 pos 1 pos 2, + 0.5 * 0.5 sign cos * 8 + + pos 0 pos 1 pos 2, >; specularness 0.3; reflectiveness 0.2; }; }; }; object cylinder { roundDimensions 4; base { scale [4]< 0.8, 0.8, 0.8, 0.8 >; color { channels [3]< 0.8, 0.8, 1.0 >; specularness 0.3; transparency 0.6; indexOfRefraction 1.33; }; }; }; base { center [4]< 0, 0, -8.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; }; }; # textured object union { object cylinder { roundDimensions 3; base { color { portal texture { universe u4 ; scale [4]< 0.25, 0.25, 0.25, 0.25 >; orientation [2]< [1]< 1 >, [3]< 0, 1, 1 > >; }; channels [3]< * 0.8 @ texture 2, * 0.8 @ texture 1, * 0.8 @ texture 0, >; specularness 0.3; reflectiveness 0.2; }; }; }; base { center [4]< 0, 0, -9.0, 0 >; scale [4]< 0.4, 0.4, 0.4, 0.4 >; }; }; };