Initilization
Initilization
i=ImageResize
,500;
generateFrames[rule_Integer,steps_Integer:700,size_Integer:100,i_:i]:=ColorNegate@*Image/@CellularAutomaton[{rule,{2,{{2,2,2},{2,1,2},{2,2,2}}},{1,1}},{ImageData[ImagePad[ColorNegate[Binarize[ImageResize[i,size]]],10,Black]],0},steps]
01
01
frames=generateFrames[256576,700];
Manipulate[Show[frames[[n]],ImageSize750],{n,1,Length@frames,1}]
Run the find new rules:
manyFrames=Table[rulegenerateFrames[rule,100],{rule,RandomInteger[{(174826/2)-1000,(174826/2)+1000},16]*2}];
Manipulate[Thread[Labeled[manyFrames[[All,2,n]],manyFrames[[All,1]]]],{n,1,Length@manyFrames[[1,2]],1}]
manyFrames=Table[rulegenerateFrames[rule,100],{rule,RandomInteger[{1,262142/2},100]*2}];
selectedFrames=Select[manyFrames,Function[association,Function[{rule,frames},frames[[-1]]=!=frames[[-2]]&&(Times@@ImageDimensions[frames[[-1]]]<80000)&&(EuclideanDistance@@BorderDimensions[frames[[-1]]]<EuclideanDistance@@BorderDimensions[frames[[1]]])][association[[1]],association[[2]]]]];
Manipulate[Thread[Labeled[selectedFrames[[All,2,n]],selectedFrames[[All,1]]]],{n,1,Length@manyFrames[[1,2]],1}]
Run to test a rule:
frames=generateFrames[175164,700];
$Aborted
Manipulate[Show[frames[[n]],ImageSize750],{n,1,Length@frames,1}]
goodRules={174826,174688,174794,175164,175950,176510,175780,192184,175622,176632,47808,207594,256576};
SetDirectory[NotebookDirectory[]];ParallelMap[Export[ToString[#]<>".gif",generateFrames[#],"DisplayDurations"1/60]&,goodRules]
$Aborted
rule=174826;
frames=generateFrames[rule,1500];
SetDirectory[NotebookDirectory[]];Export[ToString[rule]<>".mov",frames,BackgroundTransparent,"FrameRate"60]
174826.mov
image3d=(Image3D[#,ImageSize1000]&)@Map[ColorNegate]@Downsample[frames,5];
Last@Image3DSlices@ImageRotate[image3d,{t,{1,0,0}}]
image3d=Image3D[RandomReal[1,{5,10,10}]]
Table[(#[[Round[Length[#]/2]]]&)@Image3DSlices@ImageRotate[image3d,{t,{1,0,0}}],{t,0,Pi/2,(Pi-(Pi/2))/5}]
,
,
,
,
,
Things to show
Things to show
goodRules={174826,174688,174794,175164,175950,176510,175780,192184,175622,176632,47808,207594,256576};
frames=generateFrames[goodRules[[1]],700];
frames=generateFrames[goodRules[[2]],700];
frames=generateFrames[goodRules[[3]],700];
frames=generateFrames[goodRules[[4]],250];
frames=generateFrames[goodRules[[5]],250];
frames=generateFrames[goodRules[[6]],250];
frames=generateFrames[goodRules[[7]],250];
frames=generateFrames[goodRules[[8]],250];
frames=generateFrames[goodRules[[9]],250];
frames=generateFrames[goodRules[[10]],250];
frames=generateFrames[goodRules[[11]],700];
frames=generateFrames[goodRules[[12]],700];
frames=generateFrames[goodRules[[13]],1500];
Manipulate[Show[frames[[n]],ImageSize750],{n,1,Length@frames,1}]
frame=
;