Code: Select all
startshape Ground
rule Ground { GroundSplitL {} GroundSplitR {} }
rule GroundSplitL { SQUARE{y -0.5} BladeNode{} SizeLeft{} }
rule GroundSplitR { SQUARE{y -0.5} BladeNode{} SizeRight{} }
rule BladeNode { Blade{} }
rule BladeNode { Blade{r 5} }
rule BladeNode { Blade{r -5} }
rule BladeNode 3 { Blade{s 1.5} }
rule SizeLeft 0.5 { MoveLeft{s 0.96} }
rule SizeLeft 0.05 { MoveLeft{s 1.2} }
rule SizeLeft 1.0 { MoveLeft{} }
rule SizeRight 0.5 { MoveRight{s 0.96} }
rule SizeRight 0.05 { MoveRight{s 1.2} }
rule SizeRight 1.0 { MoveRight{} }
rule MoveLeft 0.5 { GroundSplitL{x -0.5} }
rule MoveLeft 1.0 { GroundSplitL{x -1} }
rule MoveLeft 0.05 { GroundSplitL{x 0.5} }
rule MoveRight 0.5 { GroundSplitR{x 0.5} }
rule MoveRight 1.0 { GroundSplitR{x 1} }
rule MoveRight 0.05 { GroundSplitR{x -0.5} }
rule Blade 8 { CircleLine{} Blade{s 0.96 y 1} }
rule Blade 2 { Blade{s 0.95 r -5 } }
rule Blade 2 { Blade{s 0.95 r 5 } }
rule Blade {BladeL{}}
rule Blade {BladeR{}}
rule BladeL 8 { CircleLine{} BladeL{y 1} }
rule BladeL 2 { BladeL{s 0.95 r 5 } }
rule BladeL 0.5 { BladeL{s 0.6 r 15} BladeL{s 0.6 r -15} }
rule BladeL 0.5 { BladeL{r 0 b 0.06} BladeL{s 0.4 r -35} }
rule BladeL 0.5 { BladeL{r -0 b 0.06} BladeL{s 0.4 r 35} }
rule BladeL 0.2 { BladeSeed{s 1.3} }
rule BladeL { BladeR{} }
rule BladeR 8 { CircleLine{} BladeR{y 1} }
rule BladeR 2 { BladeR{s 0.95 r -5 } }
rule BladeR 0.5 { BladeR{s 0.6 r 15} BladeR{s 0.6 r -15} }
rule BladeR 0.5 { BladeR{r 0 b 0.06} BladeR{s 0.4 r -35} }
rule BladeR 0.5 { BladeR{r -0 b 0.06} BladeR{s 0.4 r 35} }
rule BladeR 0.2 { BladeSeed{s 1.3} }
rule BladeR { BladeL{} }
rule BladeSeed { OneSeed{r -20} BladeSeed {s 0.92 r 5 y 0.7} }
rule BladeSeed { OneSeed{r 20} BladeSeed {s 0.92 r -5 y 0.7} }
rule OneSeed { CIRCLE{} OneSeed{s 0.90 y 0.25 r 2} }
rule OneSeed { CIRCLE{} OneSeed{s 0.90 y 0.25 r -2} }
rule CircleLine {
CIRCLE{s 0.75}
CIRCLE{y 0.33 s 0.75}
CIRCLE{y 0.66 s 0.75}
}