Funny Grass - Maya

 This use case shows how to animate grass based on pipeline process.

Grass I

  This use case shows how to animate grass based on animated cones.
The scene steps are:
These steps are defined into a unique pipeline process. See pipelineGrass
result
Pipeline process
<Process id="pipelineGrass" type="pipeline">
        <Exec processId="grass1" single="true" exec="true">
                <Var name="u" type="sequence" main="true">1-40</Var>
                <Var name="height" type="random">
                        <Param name="min">10</Param>
                        <Param name="max">14</Param>
                </Var>
                <Var name="rot" type="random">
                        <Param name="min">0</Param>
                        <Param name="max">360</Param>
                </Var>
                <Var name="pos" type="random">
                        <Param name="min">0;10;6</Param>
                        <Param name="max">360;20;6</Param>
                </Var>
                <Var name="color" type="random">
                        <Param name="min">0.05;0.05;0.05</Param>
                        <Param name="max">0.1;0.8;0.1</Param>
                </Var>
                <Var name="begin" type="random">
                        <Param name="min">-40</Param>
                        <Param name="max">40</Param>
                </Var>
                <Var name="end" type="random">
                        <Param name="min">-40</Param>
                        <Param name="max">40</Param>
                </Var>
                <Var name="repeat" type="random">
                        <Param name="trunc">1</Param>
                        <Param name="min">1</Param>
                        <Param name="max">4</Param>
                </Var>
        </Exec>
        <Exec processId="grass2" single="true" exec="true">
                <Var name="u" type="sequence" main="true">41-500</Var>
                <Var name="copy" type="random">
                        <Param name="trunc">1</Param>
                        <Param name="min">1</Param>
                        <Param name="max">40</Param>
                </Var>
                <Var name="pos" type="random">
                        <Param name="min">0;10;6</Param>
                        <Param name="max">360;20;6</Param>
                </Var>
        </Exec>
</Process>
Create 40 cones with specific properties, create the ground and animate persp camera
<Process id="grass1" type="3d" delegate="maya">
        <Param name="reset">1</Param>
        <Object create="object" name="grass$u">
                <Param name="class">polyCone</Param>
                <Param name="radius">0.5</Param>
                <Param name="height">$height</Param>
                <Param name="pos">cyl($pos)</Param>
                <Param name="subdivisionsAxis">10</Param>
                <Param name="subdivisionsHeight">10</Param>
                <Param name="bend$u">deformer</Param>
                <Param name="bend$u.type">bend</Param>
                <Param name="bend$u.highBound">6</Param>
                <Param name="bend$u-handle.rotateY">$rot</Param>
                <Param name="bend$u-handle.translateY">0</Param>
                <Param name="material">blinn$u</Param>
                <Param name="material.class">blinn</Param>
                <Param name="material.color">$color</Param>
                <FuncParam name="bend$u.curvature" type="sinus" frames="1-100/31">
                        <Param name="begin">$begin</Param>
                        <Param name="end">$end</Param>
                        <Param name="mirror">true</Param>
                        <Param name="repeat">$repeat</Param>
                </FuncParam>
        </Object>
        <Object create="object" name="ground">
                <Param name="class">polyCylinder</Param>
                <Param name="radius">22</Param>
                <Param name="height">1</Param>
                <Param name="poly.subdivisionsAxis">40</Param>
                <Param name="material">blinn1</Param>
        </Object>
        <Object name="persp">
                <Param name="pos">46;26;40</Param>
                <Param name="rot">-22;45;0</Param>
                <FuncParam name="pos" type="segment" frames="1-100/2">
                        <Param name="begin">46;26;40</Param>
                        <Param name="end">47;42;0</Param>
                </FuncParam>
                <FuncParam name="rot" type="segment" frames="1-100/2">
                        <Param name="begin">-22;45;0</Param>
                        <Param name="end">-42;88;0</Param>
                </FuncParam>
        </Object>
</Process>
Duplicate these 40 cones into 500 and render the result
<Process id="grass2" type="3d" delegate="maya">
   <Object name="grass$u" copy="grass$copy">
       <Param name="pos">cyl($pos)</Param>
   </Object>
   <Render>
       <Param name="creationId">outputMaya2</Param>
       <Param name="frames">1-100</Param>
       <Param name="resolution">1920;1080</Param>
       <Param name="camera">persp</Param>
       <Param name="default.gammaCorrection">2</Param>
       <Param name="default.currentRenderer">mayaSoftware</Param>
   </Render>
</Process>