bplist00./0J_inputParameters^virtualPatches_frameworkVersion^portAttributesYrootPatch_editorViewerWindow !"#$%&'()*+,-_objectRotationZ\surfaceColor^fractalOffsetXTZoom^lightPositionY_objectRotationY_objectRotationX^fractalOffsetY_surfaceSmoothness^lightPositionZZholesScale\fractalScale^boundingRadius^lightPositionX^fractalOffsetZ#? SredUalphaTblueUgreen#?#?#?UV#?Bq#?#?I$I$#?#?#?#?#?##?L@#?#?#?#?X{156.30} 1222222222?222222W_enable3456[descriptionTname_The input port.UInput34563456345634563456345634563456@ABCTname[descriptionVEnable_ Controls execution of the patch.345634563456345634563456KLMNUclassUstateWQCPatchOPQRST[connectionsXtimebase_publishedInputPortsXuserInfoUnodesUVWXYZ[\]^_`abcdefghijkluz}\connection_8\connection_7]connection_19]connection_13\connection_6]connection_23\connection_5]connection_12\connection_4]connection_18\connection_3]connection_22]connection_17]connection_11\connection_2\connection_1]connection_21]connection_16]connection_10]connection_20]connection_15\connection_9]connection_14mnopqrstZsourceNode_destinationPortZsourcePort_destinationNodeZSplitter_3\fractalScaleVoutput_RenderInImage_1mnopvwxy\ScreenInfo_1ZinputScale[outputWidth[Billboard_1mnop{|st[Splitter_17\surfaceColormnop~tULFO_2_objectRotationX[outputValuemnopvt[inputHeight_outputPixelsHighmnopv[Pixels_HighWPatch_1mnopvtZinputWidth_outputPixelsWidemnoptULFO_1ZholesScalemnopstZSplitter_2_surfaceSmoothnessmnopst[Splitter_13_objectRotationZmnopstZSplitter_1^boundingRadiusmnopst[Splitter_16^lightPositionZmnopst[Splitter_12_objectRotationYmnopstZSplitter_6^fractalOffsetZmnop_PatchRenderer_1__protocolInput_Image__protocolOutput_Imagemnopt__protocolInput_Image[outputImagemnopst[Splitter_15^lightPositionYmnopv[Pixels_WidemnopstZSplitter_5^fractalOffsetYmnopst[Splitter_14^lightPositionXmnopst[Splitter_10TZoommnopst[Splitter_11^fractalOffsetXmnopyZinputImage__protocolOutput_ImageVparentLTnodeSkeyTportROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameboundingRadiusUinputLRO| streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namesurfaceSmoothnessLqROw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name fractalScaleL ROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetXZSplitter_4LROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetYLROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetZL ROo streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameZoomLROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationXL ROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationYLROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationZL{ ROw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name surfaceColorLROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionXL ROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionYLROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionZLROu streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name holesScale[Splitter_18O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd} scrolling zoomFactorNSNumberf0gl+6CPhyKLWQCClearR_ivarInputPortStates_clearColorBuffer_systemInputPortStates_clearDepthBufferZinputColorUvalue#### 1 O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}' WClear_1KL  y[QCBillboard   R&)*+.&[CIRendering_optimizedRenderingXsizeModeWversion\pixelAligned!#%VinputYZinputColor]inputRotation]inputBlendingVinputX_inputPixelAligned##?#?#?#? #"$#& ZautoHeight1, O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameSuper Shape (Billboard)positionNSValue* {CGPoint=dd}KL12t_QCRenderInImageOS34567Q89R:+,-6d&fZnoFeedback_colorCorrectionUwidth\mipmapLevelsVtargetVheight]noDepthBuffer!;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\`ehlorux{~]connection_16]connection_11\connection_5]connection_37]connection_32]connection_28]connection_23\connection_8]connection_14\connection_1]connection_35]connection_30]connection_26\connection_4]connection_17]connection_12\connection_7]connection_33]connection_29]connection_24]connection_15]connection_10\connection_3]connection_36]connection_31]connection_27\connection_6]connection_18]connection_13\connection_9]connection_34]connection_25\connection_2mnop]^s_ZSplitter_6Qx\Expression_5mnopabcd\Expression_3Xoffset_X\outputResult\GLSLShader_1mnopfgsdZSplitter_2_surfaceSmoothnessmnopijsk[Splitter_17ZinputColor_ColorToComponents_rgb_1mnopm^sn[Splitter_14]Expression_13mnoppqcd]Expression_10]objRotation_Xmnopstcd\Expression_9_cameraPosition_Zmnopkvwd^surfaceColor_ZWoutput3mnopy^szZSplitter_5\Expression_4mnop|^s}ZSplitter_1\Expression_1mnop^s[Splitter_16]Expression_15mnopcd]Expression_12]objRotation_Zmnop^s[Splitter_13mnopd\ScreenInfo_2Vsize_Ymnop^sZSplitter_7\Expression_6mnopzcdXoffset_Ymnopkd^surfaceColor_YWoutput2mnop^s[Splitter_15]Expression_14mnopcd]Expression_11]objRotation_Ymnop^ss[Splitter_10mnop_cdXoffset_Zmnop^sZSplitter_3\Expression_2mnopdVsize_XmnopcdWlight_ZmnopncdWlight_Xmnop^sp[Splitter_11mnopkd^surfaceColor_XWoutput1mnopcd[sphereScalemnop^saZSplitter_4mnopcdUscalemnopcdWlight_Ymnop^s[Splitter_12mnop}cd^boundingRadius06CIV[huz %KLd\QCGLSLShaderSOR^fragmentShader_customInputPortStates\vertexShaderKLWQCClearR#### 1 O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}% WClear_1KLXQCSpriteR\antialiasingVinputYVinputZVinputX\inputZBuffer]inputBlending\inputCullingWinputRZWinputRYWinputRXZinputColor###"####?#?#?#?1 O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}-XSprite_1KL\QCScreenInfoR]cleanApertureO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd} \ScreenInfo_1_ #define HALFPI 1.570796 #define MIN_EPSILON 6e-7 #define MIN_NORM 1.5e-7 #define maxIterations 6 #define stepLimit 30 #define minRange 6e-5 uniform float scale; // default:2 uniform float surfaceDetail; // default:0.6 uniform float surfaceSmoothness; // default:0.8 uniform float boundingRadius; // default:5 uniform vec3 offset; // default:[0,0,0] uniform vec3 cameraPosition; //defaul ":[0.0, 0.0, -2.5] uniform vec3 surfaceColor; uniform vec3 light; // default:[-16.0, 100.0, -60.0] uniform vec2 size; // mat3 objectRotation; uniform vec3 objRotation; // default:[0, 0, 0] float aspectRatio = size.x / size.y; float pixelScale = 1.0 / min(size.x, size.y); float epsfactor = pixelScale * surfaceDetail; vec3 w = vec3(0, 0, 1); vec3 v = vec3(0, 1, 0); vec3 u = vec3(1, 0, 0); // Return rotation matrix for rotating around vector v by angle mat3 rotationMatrixVector(vec3 v, float angle) { float c = cos(radians(angle)); float s = sin(radians(angle)); return mat3(c + (1.0 - c) * v.x * v.x, (1.0 - c) * v.x * v.y - s * v.z, (1.0 - c) * v.x * v.z + s * v.y, (1.0 - c) * v.x * v.y + s * v.z, c + (1.0 - c) * v.y * v.y, (1.0 - c) * v.y * v.z - s * v.x, (1.0 - c) * v.x * v.z - s * v.y, (1.0 - c) * v.y * v.z + s * v.x, c + (1.0 - c) * v.z * v.z); } // ============================================================================================ // // Pre-calculations vec3 halfSpongeScale = vec3(0.5) * scale; // ============================================================================================ // uniform float sphereHoles ; // {"label":"Holes", "min":3, "max":6, "step":0.01, "default":4, "group":"Fractal", "group_label":"Additional parameters"} uniform float sphereScale; // {"label":"Sphere scale", "min":0.01, "max":3, "step":0.01, "default":2.05, "group":"Fractal"} // Adapted from Buddhis algorithm // http://www.fractalforums.com/3d-fractal-generation/revenge-of-the-half-eaten-menger-sponge/msg21700/ vec3 dE(vec3 w) { w *= objectRotation; float k = scale; float d = -10000.0; float d1, r, md = 100000.0, cd = 0.0; for (int i = 0; i < int(maxIterations); i++) { vec3 zz = mod(w * k, sphereHoles) - vec3(0.5 * sphereHoles) + offset; r = length(zz); // distance to the edge of the sphere (positive inside) d1 = (sphereScale - r) / k; k *= scale; // intersection d = max(d, d1); } return vec3(d, cd, md); } // ============================================================================================ // // Define the ray direction from the pixel coordinates vec3 rayDirection(vec2 pixel) { vec2 p = (0.5 * size - pixel) / vec2(size.x, -size.y); p.x *= aspectRatio; vec3 d = (p.x * u + p.y * v + w); return normalize( d); } // Intersect bounding sphere // // If we intersect then set the tmin and tmax values to set the start and // end distances the ray should traverse. bool intersectBoundingSphere(vec3 origin, vec3 direction, out float tmin, out float tmax) { bool hit = false; float b = dot(origin, direction); float c = dot(origin, origin) - boundingRadius; float disc = b*b - c; // discriminant tmin = tmax = 0.0; if (disc > 0.0) { // Real root of disc, so intersection float sdisc = sqrt(disc); float t0 = -b - sdisc; // closest intersection distance float t1 = -b + sdisc; // furthest intersection distance if (t0 >= 0.0) { // Ray intersects front of sphere tmin = t0; tmax = t0 + t1; } else if (t0 < 0.0) { // Ray starts inside sphere tmax = t1; } hit = true; } return hit; } // Calculate the gradient in each dimension from the intersection point vec3 generateNormal(vec3 z, float d) { float e = max(d * 0.5, MIN_NORM); float dx1 = dE(z + vec3(e, 0, 0)).x; float dx2 = dE(z - vec3(e, 0, 0)).x; float dy1 = dE(z + vec3(0, e, 0)).x; float dy2 = dE(z - vec3(0, e, 0)).x; float dz1 = dE(z + vec3(0, 0, e)).x; float dz2 = dE(z - vec3(0, 0, e)).x; return normalize(vec3(dx1 - dx2, dy1 - dy2, dz1 - dz2)); } // xRay shading model vec4 xRay(vec3 color, vec3 p, vec3 n) { //X ray float edgefalloff= 5.; vec3 I = normalize(light - p); float opac = dot(normalize(n), -I); opac = abs(opac); opac = 1.0 - pow(opac, edgefalloff); // Output color compute vec4 rayColor = vec4(opac *color, opac); return rayColor; } // Calculate the output colour for each input pixel vec4 render(vec2 pixel) { vec3 ray_direction = rayDirection(pixel); float ray_length = minRange; vec3 ray = cameraPosition + ray_length * ray_direction; vec4 color = vec4(0.0 , 0. , 0. , 1.); float eps = MIN_EPSILON; vec3 dist; vec3 normal = vec3(0); int steps = 0; bool hit = false; float tmin = 0.0; float tmax = 10000.0; if (intersectBoundingSphere(ray, ray_direction, tmin, tmax)) { ray_length = tmin; ray = cameraPosition + ray_length * ray_direction; for (int i = 0; i < stepLimit; i++) { steps = i; dist = dE(ray); dist.x *= surfaceSmoothness; // If we hit the surface on the previous step check again to make sure it wasn't // just a thin filament if (hit && dist.x < eps || ray_length > tmax || ray_length < tmin) { steps--; break; } hit =false; ray_length += dist.x; ray = cameraPosition + ray_length * ray_direction; eps = ray_length * epsfactor; if (dist.x < eps || ray_length < tmin) { hit = true; } } } // Found intersection? if (hit) { if (steps < 1 || ray_length < tmin) { normal = normalize(ray); } else { normal = generateNormal(ray, eps); } color = xRay(clamp(surfaceColor.rgb , 0.0, 1.0), ray, normal); } else { color = vec4(0.0 , 0. , 0. , 0.); } return color; } // ============================================================================================ // // The main loop void main() { vec4 color = vec4(0.0); aspectRatio = size.x / size.y; pixelScale = 1.0 / min(size.x, size.y); epsfactor = pixelScale * surfaceDetail; objectRotation = rotationMatrixVector(v, objRotation.x) * rotationMatrixVector(u, objRotation.y) * rotationMatrixVector(w, objRotation.z); color = render(gl_FragCoord.xy); gl_FragColor = color; } \connection_2\connection_1mnop[inputHeightmnopZinputWidth     ]surfaceDetail_cameraPosition_Y_cameraPosition_X[sphereHoles#?###@$_] attribute vec3 Position ; void main() { gl_Position = vec4(Position, 1.0); } 1 O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+ zoomFactorNSNumberNSValue*f scrolling {CGPoint=dd}Ԁ@positionJEKL\QCScreenInfoRO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}Ɓ- KL !|ZQCSplitter"#$%R&),-./_customOutputPortStatesXinputMinYportClassXinputMaxs'R(Oy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameboundingRadius*R+Oy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameboundingRadius#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameboundingRadiuspositionNSValue* {CGPoint=dd}TKL12}\QCExpressionR345ZexpressionO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name "x * 10."positionNSValue* {CGPoint=dd}QWx * 10.KL78fZQCSplitter"#$%R9<?@ABs:R;O| streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namesurfaceSmoothness=R>O| streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namesurfaceSmoothness#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namesurfaceSmoothnesspositionNSValue* {CGPoint=dd}LKDEkGHZidentifierRFO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}_QCColorToComponentsSrgbKLJKZQCSplitter"#$%RLORSTUsMRNOw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name fractalScalePRQOw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name fractalScale#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name fractalScalepositionNSValue* {CGPoint=dd}KLWX\QCExpressionR3YZO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"x * 2."positionNSValue* {CGPoint=dd}Vx * 2.KL\]ZQCSplitter"#$%R^adefgs_R`Oy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetXbRcOy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetX#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetXpositionNSValue* {CGPoint=dd}KLijyZQCSplitter"#$%RknqrstslRmOy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetYoRpOy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetY#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetYpositionNSValue* {CGPoint=dd}KLvwa\QCExpressionR3xyO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"x * 10. -5."positionNSValue* {CGPoint=dd}\x * 10. -5.KL{|z\QCExpressionR3}~O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"x * 10. -5."positionNSValue* {CGPoint=dd}\x * 10. -5.KL]ZQCSplitter"#$%RsROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetZROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetZ#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetZpositionNSValue* {CGPoint=dd} KL_\QCExpressionR3O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"x * 10. -5."positionNSValue* {CGPoint=dd}\x * 10. -5.KLZQCSplitter"#$%RsROo streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameZoomROo streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameZoom#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameZoompositionNSValue* {CGPoint=dd}KLs\QCExpressionR3O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name "x * 7 -6."positionNSValue* {CGPoint=dd}nZx * 7 -6.KLZQCSplitter"#$%RsROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationXROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationX#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationXpositionNSValue* {CGPoint=dd}ԆKLp\QCExpressionR3O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"x * 360. -180."positionNSValue* {CGPoint=dd}pц_x * 360. -180.KLZQCSplitter"#$%RsROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationYROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationY#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationYpositionNSValue* {CGPoint=dd}KL\QCExpressionR3O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"x * 360. -180."positionNSValue* {CGPoint=dd}n_x * 360. -180.KLZQCSplitter"#$%RsROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationZROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationZ#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationZpositionNSValue* {CGPoint=dd}KL\QCExpressionR3O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"x * 360. -180."positionNSValue* {CGPoint=dd}o_x * 360. -180.KLmZQCSplitter"#$%RsROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionXROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionX#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionXpositionNSValue* {CGPoint=dd}LKLn\QCExpressionR3O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"x * 200. -100."positionNSValue* {CGPoint=dd}I_x * 200. -100.KLZQCSplitter"#$%RsROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionYROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionY#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionYpositionNSValue* {CGPoint=dd}pKL\QCExpressionR3O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"x * 200. -100."positionNSValue* {CGPoint=dd}m_x * 200. -100.KLZQCSplitter"#$%R sROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionZROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionZ#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionZpositionNSValue* {CGPoint=dd}KL  \QCExpressionR3 O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name"x * 200. -100."positionNSValue* {CGPoint=dd}_x * 200. -100.KLiZQCSplitter$"R[QCColorPortsROw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name surfaceColorROw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name surfaceColorO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name surfaceColorpositionNSValue* {CGPoint=dd}4KLZQCSplitter$"R!$\QCNumberPortsR Ou streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name holesScale"R#Ou streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name holesScaleO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name holesScalepositionNSValue* {CGPoint=dd}PKL&'\QCExpressionR3()O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name "x * 10."positionNSValue* {CGPoint=dd}YWx * 10. X_GL_TEXTURE_RECTANGLE_EXT./0135\inputMipmaps[inputRender[inputTarget& 7:=@CFILORUX[^aL8|R9Oy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameboundingRadiusL;fRrR?Ow streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name fractalScaleLARBOy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetXLDyREOy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetYLG]RHOy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetZLJRKOo streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameZoomLMRNOz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationXLPRQOz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationYLSRTOz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationZLVi|RWOw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name surfaceColorLYmRZOy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionXL\R]Oy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionYL_R`Oy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionZLbRcOu streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name holesScale,O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}  scrolling] zoomFactorNSNumberfKLhiv\QCScreenInfoRjO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}7u KLmn_QCPatchRendereropPqRrs_compositionInputs_compositionOutputs_compositionMode[hasTimebasetx~KLuv]QCGLImagePortRwOv streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Input ImageKLyz{\QCNumberPortVamountR|}Oq streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameAmount#?|N EKL]QCBooleanPortYcleanEdgeR&Ou streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Clean EdgeKLuROw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Output ImageYinputPath_%/System/Library/Compositions/Glow.qtzYprocessorO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameGlowpositionNSValue* {CGPoint=dd}e KLZQCSplitter"#$%RsROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameboundingRadiusROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameboundingRadius#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameboundingRadiuspositionNSValue* {CGPoint=dd}GKLqZQCSplitter"#$%RsROw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name fractalScaleROw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name fractalScale#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name fractalScalepositionNSValue* {CGPoint=dd}E8KLZQCSplitter"#$%RsROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetXROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetX#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetXpositionNSValue* {CGPoint=dd}EhKLZQCSplitter"#$%RsROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetYROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetY#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetYpositionNSValue* {CGPoint=dd}FKLZQCSplitter"#$%RsROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetZROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetZ#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namefractalOffsetZpositionNSValue* {CGPoint=dd}FKLZQCSplitter"#$%RsROo streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameZoomROo streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameZoom#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameZoompositionNSValue* {CGPoint=dd}BȆKLZQCSplitter"#$%RsROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationXROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationX#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationXpositionNSValue* {CGPoint=dd}CKLZQCSplitter"#$%RsROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationYROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationY#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationYpositionNSValue* {CGPoint=dd}AKLZQCSplitter"#$%RsROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationZROz streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationZ#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameobjectRotationZpositionNSValue* {CGPoint=dd}BKLZQCSplitter"#$%R  sR Oy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionX R Oy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionX#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionXpositionNSValue* {CGPoint=dd}=LKLZQCSplitter"#$%RsROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionYROy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionY#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionYpositionNSValue* {CGPoint=dd}?dKL ZQCSplitter"#$%R!$'()*s"R#Oy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionZ%R&Oy streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionZ#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namelightPositionZpositionNSValue* {CGPoint=dd}?|KL,-{ZQCSplitter$"R./25[QCColorPorts0R1Ow streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name surfaceColor3R4Ow streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name surfaceColorO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name surfaceColorpositionNSValue* {CGPoint=dd}?4KL78ZQCSplitter"#$%R9<?@ABs:R;O| streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namesurfaceSmoothness=R>O| streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namesurfaceSmoothness#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+namesurfaceSmoothnesspositionNSValue* {CGPoint=dd}E KLDEZQCSplitter"#$%RFILMNOsGRHOu streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name holesScaleJRKOu streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name holesScale#\QCNumberPort#?O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name holesScalepositionNSValue* {CGPoint=dd}KPKLQRUQCLFOPSRTfgZrandomSeedUVWXYZ[]^`bd[inputOffsetYinputType]inputPWMRatioZinputPhase^inputAmplitude[inputPeriod\#?"_#?a#c#?e#@I5NO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameLFO holesScalespositionNSValue* {CGPoint=dd}KLij~UQCLFOPSRkwxUVWXYZlnoqsum#?p#?r#t#?v#@I~LO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name LFO RotationXpositionNSValue* {CGPoint=dd}5KLz{WQCPatchOPQ|RS}_publishedOutputPorts~\connection_4\connection_8]connection_19\connection_9\connection_1]connection_18mnop_ImageAccumulator_1[outputImagemnops[sourceImage]ImageKernel_1mnopsZSplitter_8Zluminositymnop[outputImagemnopZRecursor_1]feedbackImagemnopsZSplitter_7YmixAmountLRO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Input Image descriptionThe input port.LROn streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameMix#?333333SMixLROu streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Luminosity#?񙙙ZLuminosityZinputWidth[inputHeightLsRO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Output Image descriptionThe output port.O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+ zoomFactorNSNumberNSValue*f scrolling {CGPoint=dd}H~@apositionnameFeedbackKLZQCSplitter$"RusROv streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Input ImageROv streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Input ImageO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Input ImagepositionNSValue* {CGPoint=dd}KLZQCSplitter$"RusROw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Output ImageROw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Output ImageO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Output ImagepositionNSValue* {CGPoint=dd}KL_QCImageAccumulator85R_accumulatorContinuous_inputDirtyWidth_inputDirtyHeight_inputAccumulate_inputDirtyOriginY_inputDirtyOriginX## ##, XO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}KL]QCImageKernelR\advancedMode_showSamplerOptions\automaticDODZsourceCode_9kernel vec4 CIMix(sampler sourceImage, sampler feedbackImage, float mixAmount, float luminosity) { vec4 sample1 = sample(sourceImage, samplerCoord(sourceImage)); vec4 sample2 = sample(feedbackImage, samplerCoord(feedbackImage)); vec4 outpix = mix(sample1, sample2, mixAmount) * luminosity; return outpix; } O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameCIMixpositionNSValue* {CGPoint=dd}FKLZQCSplitter"#$%RsROn streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameMixROn streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameMix#?333333#\QCNumberPort#@O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+nameMixpositionNSValue* {CGPoint=dd}`KLZQCSplitter"#$%RsROu streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name LuminosityROu streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Luminosity#?񙙙#\QCNumberPort#@O streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name LuminositypositionNSValue* {CGPoint=dd}xKLZQCRecursorPR ZsavedPorts_inputInitialize& [QCImagePort43  VOutput_The output port. _Initial__protocolOutput_ImageROw streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+name Output ImageO streamtyped@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {CGPoint=dd}C!_487 442 600 346 0 0 1440 878 !3BUdn(7KZer (1:CLU^ghq $-6?DPWz {+9FSao} 0ANYeq%6ATekv,=I[lw  ) 8 I U f q  . 5 V g l p u z  ! 2 7 P a f j{#49EV[iz/EXpst| .<CW\ej{")0> &3AN\jx+8FTao}&7CNhy*5BS^k|!.?HYhp(9@QYjr 1=N]_   ' < A F W ` i r { | !!!$!1!:!K!X!!!!!!!!!!!!!!!"" """""!"*"/"8"="F"K"\"e"n"w""""##(#5#B#K#Y###????@@@+@6@G@U@h@{@@@@@@@@@AA$A)A*BBB!B*BBBBBC CCC'C,C1CCCD3DUCUHUUUUVVVVWPW[WhWsWWWXXX!XXXXYnY{YYZDZVZcZnZZZ[[[[[[[\i\v\\]?]Q]^]i]]]^ ^^^^^^_d_q_~_`:`L`Y`d```aa aaaaabZbgbtb}c0cBcOcZcwc|ccddddddePe]ejesf&f8fEfPfmfrfwfffgyggghHhUhbhki i2i?iJi_ikipiuiiijskk,k7kLkYk^kckkkl]m mm%m.mmmmnnnn(n4n9n:n?n@nEnfnwn|no oooopp.p3pppqAqRqWqqqr[rlrqrrsssstt%t*tttu6uGuLuuuvZvkvpvvvwwwwxvxwxxxxxxxyyyy!yyyyyz8zAzNz\zfzozzzzz{w{|{{{{|e|f|s|~|||}!}&}+}}}}~x~~~~~16;ԀÁ?DIŁ΁ہ䂖˂ЂՃQV[׃݄chmņІinsˆ߈fkp ʊՊy~ Ќ݌ )2"$-:C (-24=JS8=BÓȔDMZc +@LQVЕՕږT7CLOPS(=JU;HSpuzjs|9FQnsxvLYdyǯگ߯~0