/*

intertial confinement
by AK
November 2011

Variations: ZAP

creativecommons.org/licenses/by-sa/3.0/au/deed.en */

startshape START

background { b -.8 h 270 sat .3} size{s 12}

rule START{

9 * {r (360/9)} {
  GEN{y -2}
  BEAM{r -90 s 2 1   y .03}
  }
CIRCLE{s 11.5 z -999 sat .3 b .14 h 240 }
CIRCLE{s 9.5 z -999 sat .2 b 0 h 240 }
BALL{r -45 s 8 z -999 h 240 sat .2 b 0 |b .3}
SHADERING{r 135 sat .2 b .08 |b .15 h 240 z 999}
18*{r (360/18)}{
  CIRCLE{ s .55 x 5.25 h 240 }
  BALL{r 180 s .5 x 5.25 h 240 sat .2 b .1 |b .3}
  FOURDOT{s .3 x 5.25}
  }
FLASHES{z 99}
AK{x 5.6 y -5.6 s .35 h 240 sat .3 b .3  |b .2 z 999}
}

rule SHADERING{

2*{f 0}{91*{r 2 b .01|}SQUARE{s .25 x 4.6}}
}

// —- rules for reactor/generator rule GEN{

DISCB[y -2 s 1 .5  z -100 h -40 |h 70 sat 1 |sat .2 b

.1]

A{h -40 |h 70 sat 1 |sat .2 b .1}
}

rule A{

DISC[y -2 s 1 .5  z -100]
A{s .993 .99 .99 |h .5}
}

rule DISC{

RING{z .1}
DISC{s .95 .95 .95 b .1 sat .02| h .1| a -.02}
}

rule RING 200{RINGA{ r 10 }} rule RING{RINGB{a 1 b -.3}}

rule RINGA{

10*{r 36}{
  SQUARE{s .2 .1 x 1}
  CIRCLE{s .02 .04  x 1.1 b .5 h 90}
  }
}

rule RINGB 20{

6*{r 6}RINGA{}
RINGB{b -.3 y -.01 z -.2}
}

rule RINGB{}

rule B{4*{r 9}DISC{}}

rule DISCB{

6*{r 6}RINGA{}
DISCB{s .95 .95 .95 b .1 sat .02| h .1| a -.02}
}

path HUB{

MOVETO{x 1}
ARCTO{x -1}
ARCTO{x 1}
CLOSEPOLY{}
STROKE{width .1}
}

// —– rules for particle beam rule BEAM{

BEAM_{ b 1 a -.99 sat .5 h 240 }
}

rule BEAM_{

BLOB{x 1 s .1  }
BEAM_{s .99 1.003 }
}

rule BLOB{

CIRCLE{}
BLOB{s .9 a .01 sat -.2}
}

// — generic shaded ball and other rules rule BALL{

CIRCLE{}
BALL[x .3 s .99 .992 x -.3 b .01|]
}

rule FOURDOT{

4*{r 90} CIRCLE{s .25 x 1 y 1}
}

// —- collision detritus rule FLASHES{

7*{r (360/7)} FLASHB{s .1  a -.9}
}

rule FLASH{FLASHA{}} rule FLASH{FLASHA{f 0}} rule FLASH 3{FLASHB{}}

rule FLASH 3{FLASH{r 3}} rule FLASH 3{FLASH{r -3}}

rule FLASHA{

BLIP{b 1 s .3}
FLASHA{x .1 s .999 r 1.5}
}

rule FLASHA 0.001{

2*{f 0}FLASH{}
}

rule FLASHB{

BLIP{b 1 s .3}
FLASHB{x .1 s .997}
}

rule FLASHB 0.02{FLASH{}}

rule FLASHB 0.005{2*{f 0}FLASH{r 60}} rule FLASHB 0.005{}

rule BLIP .3{} rule BLIP{CIRCLE{}} rule BLIP{BLIP{a .05}}

// —- A signature (FWIW) rule AK{2*{r -30 s sqrt(1/3) b 1|}TRIANGLE{}}