aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorGravatar rcoh <rcoh@mit.edu>2011-02-16 18:29:41 -0500
committerGravatar rcoh <rcoh@mit.edu>2011-02-16 18:29:41 -0500
commitfffc14c4672294d9bbf8c60edfe8c309f0d54698 (patch)
tree19057b2e98735cc30fa1e0b3932d416946f8d705 /config
parent24aa31808de6a4dc06a651076e5b292aebd9240d (diff)
parent2df9e408a0ff74539862c4a4e562a878cc11a329 (diff)
Merge branch 'conner5' of https://github.com/dxiao/SmootLight into dxiao-conner5
Conflicts: config/C5Sign.xml layouts/SpecifiedLayout.py
Diffstat (limited to 'config')
-rw-r--r--config/C5Sign-dxiao.xml396
-rw-r--r--config/C5Sign.xml219
2 files changed, 552 insertions, 63 deletions
diff --git a/config/C5Sign-dxiao.xml b/config/C5Sign-dxiao.xml
new file mode 100644
index 0000000..7dc4b81
--- /dev/null
+++ b/config/C5Sign-dxiao.xml
@@ -0,0 +1,396 @@
+<!---All configuration items contain a "Class" tag specifying the python class they represent, and an "Args" tag specifying the args to be passed in.-->
+<LightInstallation>
+ <InstallationConfiguration>
+ <Defaults>
+ <PixelMapper>simplemap</PixelMapper>
+ </Defaults>
+ </InstallationConfiguration>
+ <PixelConfiguration>
+ <InheritsFrom>layouts/C5SignLayout.xml</InheritsFrom>
+ </PixelConfiguration>
+ <PixelMapperConfiguration>
+ <!-- ****************************** -->
+ <PixelMapper>
+ <Class>pixelmappers.C5SignMapper</Class>
+ <Args>
+ <Id>c5signmapper</Id>
+ <CutoffDist>20</CutoffDist>
+ </Args>
+ </PixelMapper>
+ <!-- ****************************** -->
+ <PixelMapper>
+ <Class>pixelmappers.SimpleMapper</Class>
+ <Args>
+ <Id>simplemap</Id>
+ <CutoffDist>20</CutoffDist>
+ </Args>
+ </PixelMapper>
+ <PixelMapper>
+ <Class>pixelmappers.GaussianMapper</Class>
+ <Args>
+ <Id>gaussmap</Id>
+ <CutoffDist>30</CutoffDist>
+ <MinWeight>0.1</MinWeight>
+ <Width>7</Width>
+ <Height>1</Height>
+ </Args>
+ </PixelMapper>
+ </PixelMapperConfiguration>
+ <RendererConfiguration>
+ <Renderer>
+ <InheritsFrom>renderers/C5Renderer.xml</InheritsFrom>
+ </Renderer>
+ <!--Renderer>
+ <InheritsFrom>renderers/Pygame.xml</InheritsFrom>
+ </Renderer-->
+ </RendererConfiguration>
+ <InputConfiguration>
+ <!--InputElement>
+ <Class>inputs.PygameInput</Class>
+ <Args>
+ <Id>pygameclick</Id>
+ <RefreshInterval>10</RefreshInterval>
+ <Clicks>True</Clicks>
+ </Args>
+ </InputElement-->
+ <InputElement>
+ <Class>inputs.OSCInput</Class>
+ <Args>
+ <Id>osc</Id>
+ <Port>1234</Port>
+ <RefreshInterval>10</RefreshInterval>
+ </Args>
+ </InputElement>
+ <!--InputElement>
+ <Class>inputs.PygameInput</Class>
+ <Args>
+ <Id>pygamekey</Id>
+ <RefreshInterval>10</RefreshInterval>
+ <Keyboard>True</Keyboard>
+ </Args>
+ </InputElement-->
+ <InputElement>
+ <Class>inputs.UDPInput</Class>
+ <Args>
+ <Id>udp</Id>
+ <Port>3344</Port>
+ <RefreshInterval>50</RefreshInterval>
+ </Args>
+ </InputElement>
+ <InputElement>
+ <Class>inputs.ContinuousCenterInput</Class>
+ <Args>
+ <Id>center</Id>
+ <RefreshInterval>1800</RefreshInterval>
+ </Args>
+ </InputElement>
+ <!-- ****************************** -->
+ <InputElement>
+ <Class>inputs.ContinuousLocationInput</Class>
+ <Args>
+ <Id>centerleft</Id>
+ <xloc>left</xloc>
+ <yloc>center</yloc>
+ <RefreshInterval>1800</RefreshInterval>
+ </Args>
+ </InputElement>
+ <!-- ****************************** -->
+ <!--<InputElement>
+ <Class>inputs.TCPInput</Class>
+ <Args>
+ <Id>tcp</Id>
+ <Port>20120</Port>
+ <RefreshInterval>10</RefreshInterval>
+ </Args>
+ </InputElement>-->
+ <!--InputElement Id="followmouse" RefreshInterval="10">
+ <InheritsFrom>inputs/MouseFollower.xml</InheritsFrom>
+ </InputElement-->
+ </InputConfiguration>
+ <BehaviorConfiguration>
+ <Behavior>
+ <Args>
+ <Id>touchosc</Id>
+ </Args>
+ <Class>behaviors.TouchOSC</Class>
+ </Behavior>
+ <Behavior Id="colorchange">
+ <InheritsFrom>behaviors/RandomColor.xml</InheritsFrom>
+ <Args>
+ <!--ColorList>
+ <Val>(255,0,0)</Val>
+ <Val>(0,0,255)</Val>
+ </ColorList-->
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
+ <Args>
+ <Id>OSCTouchChase</Id>
+ <Inputs>
+ <Id>osc</Id>
+ </Inputs>
+ <ChainedBehaviors>
+ <Id>touchosc</Id>
+ <Id>decay</Id>
+ </ChainedBehaviors>
+ <Mapper>gaussmap</Mapper>
+ <RenderToScreen>False</RenderToScreen>
+ </Args>
+ </Behavior>
+ <Behavior Id="decay">
+ <InheritsFrom>behaviors/PixelDecay.xml</InheritsFrom>
+ </Behavior>
+ <Behavior Id="singleframe">
+ <InheritsFrom>behaviors/SingleFrame.xml</InheritsFrom>
+ </Behavior>
+ <!-- ****************************** -->
+ <Behavior Id="slowdecay">
+ <InheritsFrom>behaviors/PixelDecay.xml</InheritsFrom>
+ <Args>
+ <Coefficient>.001</Coefficient>
+ </Args>
+ </Behavior>
+ <!-- ****************************** -->
+ <Behavior>
+ <Class>behaviors.XYMove</Class>
+ <Args>
+ <Id>xymove</Id>
+ <XStep>1</XStep>
+ <YStep>1</YStep>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.RestrictLocation</Class>
+ <Args>
+ <Id>xbounce</Id>
+ <Action>{val}*-1</Action>
+ <ParamName>XStep</ParamName>
+ <LocationRestriction>{x}&lt;2 or {x}&gt;48</LocationRestriction>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.RestrictLocation</Class>
+ <Args>
+ <Id>ybounce</Id>
+ <Action>{val}*-1</Action>
+ <ParamName>YStep</ParamName>
+ <LocationRestriction>{y}&lt;2 or {y}&gt;24</LocationRestriction>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
+ <Args>
+ <Id>movebounce</Id>
+ <ChainedBehaviors>
+ <Id>xymove</Id>
+ <Id>ybounce</Id>
+ <Id>xbounce</Id>
+ </ChainedBehaviors>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.ModifyParam</Class>
+ <Args>
+ <Id>ysin</Id>
+ <ParamName>YStep</ParamName>
+ <ParamType>Sensor</ParamType>
+ <ParamOp>4*math.sin({x}/float(40))</ParamOp>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.DebugBehavior</Class>
+ <Args>
+ <Id>debug</Id>
+ <z-index>0</z-index>
+ <Inputs>
+ <Id>pygamekey</Id>
+ <Id>udp</Id>
+ </Inputs>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.AllPixels</Class>
+ <Args>
+ <Id>square</Id>
+ <Width>20</Width>
+ </Args>
+ </Behavior>
+ <Behavior Id="recursivedecay">
+ <InheritsFrom>behaviors/LoopAndDie.xml</InheritsFrom>
+ <Args>
+ <InitialResponseCount>160</InitialResponseCount>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
+ <Args>
+ <Id>runcolordecay</Id>
+ <Inputs>
+ <Id>pygameclick</Id>
+ </Inputs>
+ <ChainedBehaviors>
+ <Id>colorchange</Id>
+ <Id>mover</Id>
+ <!--<Id>square</Id>-->
+ <Id>decay</Id>
+ </ChainedBehaviors>
+ <RecursiveHooks>{'mover':'movebounce'}</RecursiveHooks>
+ <RenderToScreen>False</RenderToScreen>
+ <Mapper>gaussmap</Mapper>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.ResponseMover</Class>
+ <Args>
+ <Id>mover</Id>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.RandomWalk</Class>
+ <Args>
+ <Id>randmovement</Id>
+ <StepSize>2</StepSize>
+ </Args>
+ </Behavior>
+ <Behavior Id="accelerate">
+ <InheritsFrom>behaviors/Accelerate.xml</InheritsFrom>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.EchoBehavior</Class>
+ <Args>
+ <Id>echo</Id>
+ <z-index>0</z-index>
+ <RenderToScreen>False</RenderToScreen>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.ColorShift</Class>
+ <Args>
+ <Id>colorshift</Id>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
+ <Args>
+ <Id>mousechaser</Id>
+ <Inputs>
+ </Inputs>
+ <ChainedBehaviors>
+ <Id>echo</Id>
+ <Id>innercircle</Id>
+ <Id>outercircle</Id>
+ <Id>singleframe</Id>
+ </ChainedBehaviors>
+ <RenderToScreen>False</RenderToScreen>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.Circle</Class>
+ <Args>
+ <Id>innercircle</Id>
+ <Radius>0</Radius>
+ <Outside>True</Outside>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.Circle</Class>
+ <Args>
+ <Id>outercircle</Id>
+ <Radius>3</Radius>
+ <Combine>True</Combine>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.ModifyParam</Class>
+ <Args>
+ <Id>incrinner</Id>
+ <ParamOp>{val}+.3</ParamOp>
+ <ParamName>innercircleRadius</ParamName>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.ModifyParam</Class>
+ <Args>
+ <Id>incrouter</Id>
+ <ParamOp>{val}+.3</ParamOp>
+ <ParamName>outercircleRadius</ParamName>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
+ <Args>
+ <Id>circle_expand</Id>
+ <ChainedBehaviors>
+ <Id>innercircle</Id>
+ <Id>outercircle</Id>
+ <Id>incrinner</Id>
+ <Id>incrouter</Id>
+ <Id>recursivedecay</Id>
+ </ChainedBehaviors>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
+ <Args>
+ <Id>expandingcirlces</Id>
+ <Inputs>
+ <Id>centerleft</Id>
+ </Inputs>
+ <ChainedBehaviors>
+ <Id>colorchange</Id>
+ <Id>mover</Id>
+ <Id>decay</Id>
+ </ChainedBehaviors>
+ <RecursiveHooks>{'mover':'circle_expand'}</RecursiveHooks>
+ <RenderToScreen>False</RenderToScreen>
+ </Args>
+ </Behavior>
+ <!-- ****************************** -->
+ <Behavior>
+ <Class>behaviors.ModifyParam</Class>
+ <Args>
+ <Id>incrVertBarLoc</Id>
+ <ParamName>xLoc</ParamName>
+ <ParamOp>{val}+1</ParamOp>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.VerticalBar</Class>
+ <Args>
+ <Id>vertBar</Id>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
+ <Args>
+ <Id>bar_move</Id>
+ <ChainedBehaviors>
+ <Id>vertBar</Id>
+ <Id>incrVertBarLoc</Id>
+ <Id>recursivedecay</Id>
+ </ChainedBehaviors>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
+ <Args>
+ <Id>scanningbars</Id>
+ <Inputs>
+ <Id>centerleft</Id>
+ </Inputs>
+ <ChainedBehaviors>
+ <Id>colorchange</Id>
+ <Id>mover</Id>
+ <Id>slowdecay</Id>
+ </ChainedBehaviors>
+ <RecursiveHooks>{'mover':'bar_move'}</RecursiveHooks>
+ <RenderToScreen>True</RenderToScreen>
+ </Args>
+ </Behavior>
+ <!-- ****************************** -->
+ <Behavior Id="running">
+ <InheritsFrom>behaviors/RunningBehavior.xml</InheritsFrom>
+ </Behavior>
+ </BehaviorConfiguration>
+</LightInstallation>
diff --git a/config/C5Sign.xml b/config/C5Sign.xml
index 6550067..77f6bcc 100644
--- a/config/C5Sign.xml
+++ b/config/C5Sign.xml
@@ -10,7 +10,7 @@
</PixelConfiguration>
<PixelMapperConfiguration>
<PixelMapper>
- <Class>pixelmappers.SimpleMapper</Class>
+ <Class>pixelmappers.C5SignMapper</Class>
<Args>
<Id>simplemap</Id>
<CutoffDist>20</CutoffDist>
@@ -22,26 +22,42 @@
<Id>gaussmap</Id>
<CutoffDist>30</CutoffDist>
<MinWeight>0.1</MinWeight>
- <Width>10</Width>
+ <Width>7</Width>
<Height>1</Height>
</Args>
</PixelMapper>
+ <PixelMapper>
+ <Class>pixelmappers.C5SignMapper</Class>
+ <Args>
+ <Id>c5signmapper</Id>
+ <CutoffDist>20</CutoffDist>
+ </Args>
+ </PixelMapper>
</PixelMapperConfiguration>
<RendererConfiguration>
<Renderer>
<InheritsFrom>renderers/C5Renderer.xml</InheritsFrom>
</Renderer>
- <Renderer>
+ <Renderer Scale="5">
<InheritsFrom>renderers/Pygame.xml</InheritsFrom>
</Renderer>
</RendererConfiguration>
<InputConfiguration>
<InputElement>
- <Class>inputs.PygameInput</Class>
+ <Class>inputs.ContinuousLocationInput</Class>
<Args>
- <Id>pygameclick</Id>
+ <Id>centerleft</Id>
+ <xloc>left</xloc>
+ <yloc>center</yloc>
+ <RefreshInterval>1800</RefreshInterval>
+ </Args>
+ </InputElement>
+ <InputElement>
+ <Class>inputs.OSCInput</Class>
+ <Args>
+ <Id>osc</Id>
+ <Port>1234</Port>
<RefreshInterval>10</RefreshInterval>
- <Clicks>True</Clicks>
</Args>
</InputElement>
<InputElement>
@@ -60,26 +76,84 @@
<RefreshInterval>50</RefreshInterval>
</Args>
</InputElement>
- <!--<InputElement>
- <Class>inputs.TCPInput</Class>
+ <InputElement>
+ <Class>inputs.ContinuousCenterInput</Class>
<Args>
- <Id>tcp</Id>
- <Port>20120</Port>
- <RefreshInterval>10</RefreshInterval>
+ <Id>center</Id>
+ <RefreshInterval>700</RefreshInterval>
</Args>
- </InputElement>-->
- <InputElement Id="followmouse" RefreshInterval="1000">
- <InheritsFrom>inputs/MouseFollower.xml</InheritsFrom>
</InputElement>
</InputConfiguration>
<BehaviorConfiguration>
+ <Behavior>
+ <Args>
+ <Id>touchosc</Id>
+ </Args>
+ <Class>behaviors.TouchOSC</Class>
+ </Behavior>
+ <Behavior Id="slowdecay">
+ <InheritsFrom>behaviors/PixelDecay.xml</InheritsFrom>
+ <Args>
+ <Coefficient>.001</Coefficient>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.ModifyParam</Class>
+ <Args>
+ <Id>incrVertBarLoc</Id>
+ <ParamName>xLoc</ParamName>
+ <ParamOp>{val}+1</ParamOp>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.VerticalBar</Class>
+ <Args>
+ <Id>vertBar</Id>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
+ <Args>
+ <Id>bar_move</Id>
+ <ChainedBehaviors>
+ <Id>vertBar</Id>
+ <Id>incrVertBarLoc</Id>
+ <Id>recursivedecay</Id>
+ </ChainedBehaviors>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
+ <Args>
+ <Id>scanningbars</Id>
+ <Inputs>
+ <Id>centerleft</Id>
+ </Inputs>
+ <ChainedBehaviors>
+ <Id>colorchange</Id>
+ <Id>mover</Id>
+ <Id>slowdecay</Id>
+ </ChainedBehaviors>
+ <RecursiveHooks>{'mover':'bar_move'}</RecursiveHooks>
+ <RenderToScreen>False</RenderToScreen>
+ </Args>
+ </Behavior>
<Behavior Id="colorchange">
<InheritsFrom>behaviors/RandomColor.xml</InheritsFrom>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
<Args>
- <ColorList>
- <Val>(255,0,0)</Val>
- <Val>(0,0,255)</Val>
- </ColorList>
+ <Id>OSCTouchChase</Id>
+ <Inputs>
+ <Id>osc</Id>
+ </Inputs>
+ <ChainedBehaviors>
+ <Id>touchosc</Id>
+ <Id>decay</Id>
+ </ChainedBehaviors>
+ <Mapper>gaussmap</Mapper>
+ <RenderToScreen>False</RenderToScreen>
</Args>
</Behavior>
<Behavior Id="decay">
@@ -88,18 +162,12 @@
<Behavior Id="singleframe">
<InheritsFrom>behaviors/SingleFrame.xml</InheritsFrom>
</Behavior>
- <Behavior Id="slowdecay">
- <InheritsFrom>behaviors/PixelDecay.xml</InheritsFrom>
- <Args>
- <Coefficient>.01</Coefficient>
- </Args>
- </Behavior>
<Behavior>
<Class>behaviors.XYMove</Class>
<Args>
<Id>xymove</Id>
- <XStep>5</XStep>
- <YStep>2</YStep>
+ <XStep>1</XStep>
+ <YStep>1</YStep>
</Args>
</Behavior>
<Behavior>
@@ -108,7 +176,7 @@
<Id>xbounce</Id>
<Action>{val}*-1</Action>
<ParamName>XStep</ParamName>
- <LocationRestriction>{x}&lt;0 or {x}&gt;200</LocationRestriction>
+ <LocationRestriction>{x}&lt;2 or {x}&gt;48</LocationRestriction>
</Args>
</Behavior>
<Behavior>
@@ -117,7 +185,7 @@
<Id>ybounce</Id>
<Action>{val}*-1</Action>
<ParamName>YStep</ParamName>
- <LocationRestriction>{y}&lt;0 or {y}&gt;100</LocationRestriction>
+ <LocationRestriction>{y}&lt;2 or {y}&gt;24</LocationRestriction>
</Args>
</Behavior>
<Behavior>
@@ -126,19 +194,24 @@
<Id>movebounce</Id>
<ChainedBehaviors>
<Id>xymove</Id>
- <Id>colorshift</Id>
<Id>ybounce</Id>
<Id>xbounce</Id>
+ <Id>longrecursivedecay</Id>
</ChainedBehaviors>
</Args>
</Behavior>
<Behavior>
- <Class>behaviors.ModifyParam</Class>
+ <Class>behaviors.TimeSwitch</Class>
<Args>
- <Id>ysin</Id>
- <ParamName>YStep</ParamName>
- <ParamType>Sensor</ParamType>
- <ParamOp>4*math.sin({x}/float(40))</ParamOp>
+ <Id>main</Id>
+ <Inputs>
+ <Id>centerleft</Id>
+ <Id>center</Id>
+ </Inputs>
+ <TimeMap>{'scanningbars':10,'runcolordecay':10,'expandingcircles':10}</TimeMap>
+ <InputMap>{'scanningbars':'centerleft', 'runcolordecay':'center',\
+ 'expandingcircles':'center'}</InputMap>
+ <RenderToScreen>True</RenderToScreen>
</Args>
</Behavior>
<Behavior>
@@ -159,26 +232,24 @@
<Width>20</Width>
</Args>
</Behavior>
- <Behavior Id="recursivedecay">
+ <Behavior Id="recursivedecay" InitialResponseCount="50">
+ <InheritsFrom>behaviors/LoopAndDie.xml</InheritsFrom>
+ </Behavior>
+ <Behavior Id="longrecursivedecay" InitialResponseCount="80">
<InheritsFrom>behaviors/LoopAndDie.xml</InheritsFrom>
- <Args>
- <InitialResponseCount>80</InitialResponseCount>
- </Args>
</Behavior>
<Behavior>
<Class>behaviors.BehaviorChain</Class>
<Args>
<Id>runcolordecay</Id>
- <Inputs>
- <Id>pygameclick</Id>
- </Inputs>
<ChainedBehaviors>
<Id>colorchange</Id>
<Id>mover</Id>
+ <!--<Id>square</Id>-->
<Id>decay</Id>
</ChainedBehaviors>
<RecursiveHooks>{'mover':'movebounce'}</RecursiveHooks>
- <RenderToScreen>True</RenderToScreen>
+ <RenderToScreen>False</RenderToScreen>
<Mapper>gaussmap</Mapper>
</Args>
</Behavior>
@@ -189,46 +260,68 @@
</Args>
</Behavior>
<Behavior>
- <Class>behaviors.RandomWalk</Class>
+ <Class>behaviors.ColorShift</Class>
+ <Args>
+ <Id>colorshift</Id>
+ </Args>
+ </Behavior>
+ <Behavior>
+ <Class>behaviors.Oval</Class>
<Args>
- <Id>randmovement</Id>
- <StepSize>2</StepSize>
+ <Id>innercircle</Id>
+ <Radius>0</Radius>
+ <Outside>True</Outside>
</Args>
</Behavior>
- <Behavior Id="accelerate">
- <InheritsFrom>behaviors/Accelerate.xml</InheritsFrom>
+ <Behavior>
+ <Class>behaviors.Oval</Class>
+ <Args>
+ <Id>outercircle</Id>
+ <Radius>3</Radius>
+ <Combine>True</Combine>
+ </Args>
</Behavior>
<Behavior>
- <Class>behaviors.EchoBehavior</Class>
+ <Class>behaviors.ModifyParam</Class>
<Args>
- <Id>echo</Id>
- <z-index>0</z-index>
- <RenderToScreen>False</RenderToScreen>
+ <Id>incrinner</Id>
+ <ParamOp>{val}+.6</ParamOp>
+ <ParamName>innercircleRadius</ParamName>
</Args>
</Behavior>
<Behavior>
- <Class>behaviors.ColorShift</Class>
+ <Class>behaviors.ModifyParam</Class>
<Args>
- <Id>colorshift</Id>
+ <Id>incrouter</Id>
+ <ParamOp>{val}+.6</ParamOp>
+ <ParamName>outercircleRadius</ParamName>
</Args>
</Behavior>
<Behavior>
<Class>behaviors.BehaviorChain</Class>
<Args>
- <Id>mousechaser</Id>
- <Inputs>
- <Id>followmouse</Id>
- </Inputs>
+ <Id>circle_expand</Id>
<ChainedBehaviors>
- <Id>echo</Id>
- <Id>square</Id>
- <Id>singleframe</Id>
+ <Id>innercircle</Id>
+ <Id>outercircle</Id>
+ <Id>incrinner</Id>
+ <Id>incrouter</Id>
+ <Id>recursivedecay</Id>
</ChainedBehaviors>
- <RenderToScreen>False</RenderToScreen>
</Args>
</Behavior>
- <Behavior Id="running">
- <InheritsFrom>behaviors/RunningBehavior.xml</InheritsFrom>
+ <Behavior>
+ <Class>behaviors.BehaviorChain</Class>
+ <Args>
+ <Id>expandingcircles</Id>
+ <ChainedBehaviors>
+ <Id>colorchange</Id>
+ <Id>mover</Id>
+ <Id>decay</Id>
+ <!--Id>singleframe</Id-->
+ </ChainedBehaviors>
+ <RecursiveHooks>{'mover':'circle_expand'}</RecursiveHooks>
+ </Args>
</Behavior>
</BehaviorConfiguration>
</LightInstallation>