Build Orchid - Max

Orchid

  This use case shows how to build an orchid.
result
orchid-branch process
<Process id="orchid-branch" type="3d">
     <Lsystem id="orchid-branch" create="true">
          <Lstring>
               <Param name="iteration">2</Param>
               <Axiom>@set(section, 0.2)@set(mat, 1)@Path(trunc)A@FPath(1)@Leaf(flower1)</Axiom>
               <Rule source="A" product="[@FPath($v)@rotA(b, 0)@rot(a, random(0,360))@set(mat, 1)@set(section, 0.12)@Path(branch)[@FPath(1)@Leaf(flower1)]B]">
                    <Var name="u" type="sequence">1-5</Var>
                    <Var name="v" type="ratio">
                         <Param name="var">u</Param>
                         <Param name="random">40</Param>
                         <Param name="begin">0.3</Param>
                         <Param name="end">1.0</Param>
                    </Var>
               </Rule>
               <Rule source="B" product="[@FPath($v)@rotA(b, 0)@rot(a,$alpha)@rot(a,random(-20,20))@rot(b,random(-50,50))@set(mat, 2)@set(section, 0.08)@Path(flowerFoot)@FPath(1)@Leaf(randomList(flower1|flower1|flower2|flower3))]">
                    <Var name="u" type="sequence">1-4</Var>
                    <Var name="alpha" type="sequence" main="false">-90;90</Var>
                    <Var name="v" type="ratio">
                         <Param name="var">u</Param>
                         <Param name="random">30</Param>
                         <Param name="begin">0.15</Param>
                         <Param name="end">0.85</Param>
                    </Var>
               </Rule>
          </Lstring>
          <Lparent>
               <Param name="pos">0;0;0</Param>
               <Param name="rot">0;0;0</Param>
          </Lparent>
          <Lpattern type="process">
               <Param name="prefix">o1</Param>
               <Param name="process">pattern-branch</Param>
          </Lpattern>
     </Lsystem>
</Process>
pattern-branch process
<Process id="pattern-branch" type="3d">
     <Path name="branch$skeleton.index" type="point.list" create="true" active="equals(path, $skeleton.type)">
          <Param name="list">$skeleton.path</Param>
     </Path>
     <Object name="branch$skeleton.index" active="equals(path, $skeleton.type)">
          <Param name="sweep.circle">$skeleton.section</Param>
          <Param name="material">meditmaterials[$skeleton.mat]</Param>
     </Object>
     <Object name="leaf$skeleton.index" copy="$skeleton.leaf" active="equals(leaf, $skeleton.type)">
          <Param name="pos">$skeleton.pos</Param>
          <Param name="rot">$skeleton.rot</Param>
     </Object>
</Process>
orchid-render process
<Process id="orchid-render" type="3d">
     <Object name="camera">
          <Param name="target.pos">0;0;27</Param>
          <Motion coord="pos" frames="0-100/11">
               <Path type="circle">
                    <Param name="center">0;0;5</Param>
                    <Param name="axe">0;0;1</Param>
                    <Param name="radius">50</Param>
                    <Param name="begin">-20</Param>
                    <Param name="end">150</Param>
               </Path>
          </Motion>
     </Object>
     <Render active="true">
          <Param name="creationId">orchid-render</Param>
          <Param name="resolution">1920;1080</Param>
          <Param name="frames">0-100</Param>
          <Param name="camera">camera</Param>
     </Render>
</Process>