Script: Blockly 3D Game Laser Airplane

Blockly 3D Game Laser Airplane picture
Type
Blockly logo indicatorblockly
Author
matas
Date Created
Nov 12, 2022, 12:17:30 PM
Last Edit Date
Oct 2, 2025, 4:39:51 PM

Project Information

This is a 3D game programmed by using bitbybit's new interactive code blocks. The game can be used as a reference to check how things can be organised in your own scripts to create various interactive experiences with 3D mesh picking, mouse clicks, keyboard events, score counts and more. I used openly accessible babylonjs engine assets to give a game good looks. Game development is now possible!

View Full Project

Script Code

This script is large, so only its beginning is shown here. Open it in the editor to see all of it.

<xml xmlns="https://developers.google.com/blockly/xml">
 <variables>
  <variable id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</variable>
  <variable id="wdP2]qeqQ+RjpD3B;*h1">shouldStartTheGame</variable>
  <variable id=".zx|JB2gL|-5(=S3G2F|">shouldReplay</variable>
  <variable id="X,7}=g8X@8FQ7lkUEQ7J">cleanMeshOnStart</variable>
  <variable id="ozkOPC,(k5MXzTZLW??7">target1</variable>
  <variable id="/EEv2rdkFR(kTY!]$GXF">target2</variable>
  <variable id="HeR{U3@Of3E#?.N|WiIE">emptyListToFill1</variable>
  <variable id="2^RCzk}@44pn$4oKU!h8">emptyListToFill2</variable>
  <variable id="x,o(L}:en7~l`]VkNwJj">targetList</variable>
  <variable id=",NW+u:QXvv0ko/N8gwBk">restoreHit</variable>
  <variable id="$XN?nkp3eG*qvi`6ebC+">meshesToMove</variable>
  <variable id=")OGJ%%9UXX/|XR6_1]h`">plane</variable>
  <variable id="N55VA*wQ=JZ7)ZzC![e2">gameStarted</variable>
  <variable id="~d$PfCHmL3-(B`$Yx1-F">timerPaused</variable>
  <variable id="Ne13PA8xbZ|x~eAa9i6h">o</variable>
  <variable id="w]F3AtioA-ce0PoUY`(,">i</variable>
  <variable id="Sl/Sh}i.V2l`]!ci5At@">k</variable>
  <variable id="8Ksy1pExe?vRrMC0aiPt">widthMin</variable>
  <variable id="$/mds]S[E2a%g6Yc,BVE">secondsGiven</variable>
  <variable id="W{L4]JR8wmj_O^DxvM+7">resultingTextMesh</variable>
  <variable id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</variable>
  <variable id="QJFOWq0t.:dzCgiYPM*?">handlerTimer</variable>
  <variable id="E;.tH+kiH]AKdVRt|L(X">gamePaused</variable>
  <variable id=".=vhFsvO;q,.9b)-Qz3l">widthMax</variable>
  <variable id="XV`eXIBD(bu,LazqRwTT">widthStep</variable>
  <variable id="~MwI1K$/`cUlVri|vBBF">j</variable>
  <variable id="l;zV{Uv*k.k)m:5$l!+A">ray</variable>
  <variable id="Qcdx,zyv.,|5{Pv,efhl">hitCount</variable>
  <variable id="x1}?6sE~+;43`Nb.]z]P">hitCountPrevious</variable>
  <variable id="q=-Wo9Xf3alN@)LF_7A?">n</variable>
  <variable id="yzLz+vt0vD]TZq3U[UfX">lengthMin</variable>
  <variable id="2B%.f-FHZS.vmE}c/W@O">lengthMax</variable>
  <variable id="vjkw9@`MjdDpte=:F*?k">lengthStep</variable>
  <variable id="/|EITw%4+pw$GiW+E:=E">targetCopy1</variable>
  <variable id="$=~^tUkWXeKr,;u)TkB}">bubbleScale</variable>
  <variable id="Q`UnZN[AiZpg%1(P%F[7">xRotation</variable>
  <variable id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</variable>
  <variable id="F)w_7v5!Tavx+!ln:d[L">planeMesh</variable>
  <variable id="V8pA:KMfYFm%Mi-Cn;%3">drawnTextMeshes</variable>
  <variable id="vP8%K(.OV@=lS=`/Ep,e">matNotCollidedColor</variable>
  <variable id="GP;-F80W/DNm(uw8bX/E">matNotCollidedMetallic</variable>
  <variable id="R1GIHkyHWaMrR=#F^[m6">matNotCollidedRoughness</variable>
  <variable id="G0C?%a7j@H?e`8Aa77lE">matNotCollidedAlpha</variable>
  <variable id="{OXHIJ`_y(5[)T%xK}[f">resultTextMeshes</variable>
  <variable id="Ow^XX8)-OWW5Cwa=r!ck">targetCopy2</variable>
  <variable id="QQtWB.!bf|/Xj9,jPJ#+">speed</variable>
  <variable id="^0%.LXEQTuQf9^a1X[@7">position</variable>
  <variable id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</variable>
  <variable id="p5g0UQPeQRKZ=C6QX$!f">isPointerDown</variable>
  <variable id=",x|OVhpyoy8+r1.*WRTj">timeText</variable>
  <variable id="$SRhVP8-8gc/6!PDkc{P">topText</variable>
  <variable id="TX@@oa.EcQQv=/a/ylAv">zCoord</variable>
  <variable id="w-`jw_]`h4sSN7j6v%FG">zRotation</variable>
  <variable id="C$:Ym:z7US6]SXWDn22:">bottomText</variable>
  <variable id="i;cm5J?.TgpvRVfg!E6*">timeElapsedFromPreviousFrame</variable>
  <variable id="9yYuO^L^=eDN@I{PX._i">size</variable>
  <variable id="e[h3;!Y]$kwKjO8#sF(_">height</variable>
  <variable id="u8pzRT~Yq+ci$Pa(n{b1">materialHovered</variable>
  <variable id="L}.s3i)Ek7.f$`sMC`=I">materialNotSelected</variable>
  <variable id="tMWvaMdc|h|+z62Kp).3">startGameHitHppened</variable>
  <variable id="MZF66Jit8v(%L_G4Ppmo">materialSelected</variable>
  <variable id="M!3Bv!gbzYfWb$DnG;UC">xRand</variable>
  <variable id="J1-=DM*Lw~If0:K6AP#H">collisionCount</variable>
  <variable id=";5h%^BJh)`CAnK}F:xTC">obstacleInstances</variable>
  <variable id="Y1LKza4Qbw=?;i{Zju$7">yRand</variable>
  <variable id="w6!3dz$x.{owirB$Ucl_">zRand</variable>
  <variable id="i`?upbOhaXrYcEaiH^tC">r</variable>
  <variable id="42j0uXu*zxT#gWpBf|mU">collisionFound</variable>
  <variable id="?SfntWNDROXq7|uFzc=u">matCollidedColor</variable>
  <variable id="30#%0]L$:t6Ou}288YJ,">rayToCheck</variable>
  <variable id="^Fg{S%]^-Su#,dJ*jQ^~">matCollidedAlpha</variable>
  <variable id="@+:8_}NyQKSt3ZqRj)}z">pickResult</variable>
  <variable id="Z^6N%Qz;I1*UFFI1d]5M">rayStart</variable>
  <variable id="-Z2ex1M1~fOr(z`/x`!G">rayEnd</variable>
  <variable id=";63j/=~]1TvH[G7Z#h|+">loadingMesh</variable>
  <variable id=".UBM#mP(,U}f;{jf]Q5l">hitMesh</variable>
  <variable id="W,]`|.USpL!Gl7lG}w8$">material</variable>
  <variable id="cC?8ei#a5-1t_d*d#vk#">result</variable>
  <variable id=";S-l1atJ-^j6Dmyv9i2|">obstacle</variable>
  <variable id="FY|^#Zz#k.B4[{A_DFp]">checkPickMesh</variable>
  <variable id="wD(AH16(3Ob]=i+t(Evc">m</variable>
  <variable id="ETt77.7%q,y#[-0d?b]Y">countTimeMS</variable>
  <variable id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</variable>
 </variables>
 <block type="procedures_defnoreturn" id="fu(TG,/b~x/{LBw%(|]{" x="-1078" y="1272">
  <field name="NAME">environmentSetup</field>
  <comment pinned="false" h="80" w="160">Describe this function...</comment>
  <statement name="STACK">
   <block type="bitbybit.babylon.scene.enableSkybox" id="vaG7fw3}l#*`oOG@!WyG">
    <value name="Skybox">
     <block type="bitbybit.babylon.enums.skyboxEnum" id="Dr_uO^iV]y+P-eQ=QGDW">
      <field name="bitbybit.babylon.enums.skyboxEnum">'city'</field>
     </block>
    </value>
    <value name="Size">
     <block type="math_number" id="RpH=D=Sba%I0$qnYn.U=">
      <field name="NUM">2000</field>
     </block>
    </value>
    <value name="Blur">
     <block type="math_number" id=",z+Vr?~gC97`iaD4wSch">
      <field name="NUM">0.3</field>
     </block>
    </value>
    <value name="EnvironmentIntensity">
     <block type="math_number" id="SpiR)!/MW7Gq{tQU|%n=">
      <field name="NUM">0.8</field>
     </block>
    </value>
    <next>
     <block type="bitbybit.babylon.scene.fog" id="@~ugiPD-U0+w*EcPag,N">
      <value name="Mode">
       <block type="bitbybit.babylon.enums.fogModeEnum" id="Y(,.Nj1dcG4NHs]aBTNN">
        <field name="bitbybit.babylon.enums.fogModeEnum">'linear'</field>
       </block>
      </value>
      <value name="Color">
       <block type="colour_picker" id="2k~F.ZHpY5ypjNC}EAHB">
        <field name="COLOUR">#ffffff</field>
       </block>
      </value>
      <value name="Density">
       <block type="math_number" id="oL]veD|OuRBh6$.o/+`E">
        <field name="NUM">1</field>
       </block>
      </value>
      <value name="Start">
       <block type="math_number" id="_`?u`_)!P9^60hr=[tYZ">
        <field name="NUM">20</field>
       </block>
      </value>
      <value name="End">
       <block type="math_number" id="LG[4:nA)cZ*7B}5w.^Yh">
        <field name="NUM">6000</field>
       </block>
      </value>
      <next>
       <block type="bitbybit.babylon.scene.drawDirectionalLightNoReturn" id="wI:JX0A{/.CBl|OQxh7%">
        <value name="Direction">
         <block type="bitbybit.point.pointXYZ" id="+SuQH6a`e~E,iqO(DekG">
          <value name="X">
           <block type="math_number" id="-Sfe6laM@UxF}T1$:RoT">
            <field name="NUM">-100</field>
           </block>
          </value>
          <value name="Y">
           <block type="math_number" id="KA_|A.GZg2QH]_*Az,;7">
            <field name="NUM">-100</field>
           </block>
          </value>
          <value name="Z">
           <block type="math_number" id="*#O3!egPIo4-G!|UkCt`">
            <field name="NUM">-100</field>
           </block>
          </value>
         </block>
        </value>
        <value name="Intensity">
         <block type="math_number" id="b=qYglli1*T*E5%)Gm0k">
          <field name="NUM">1</field>
         </block>
        </value>
        <value name="Diffuse">
         <block type="colour_picker" id="Cr|)BzY`g~;!60tvd%H/">
          <field name="COLOUR">#ffffff</field>
         </block>
        </value>
        <value name="Specular">
         <block type="colour_picker" id="nbLs6PTqlaeZ7;*9);zs">
          <field name="COLOUR">#ffffff</field>
         </block>
        </value>
        <value name="ShadowGeneratorMapSize">
         <block type="math_number" id="E7R%ACDH^#G,TDYqaDnX">
          <field name="NUM">1024</field>
         </block>
        </value>
        <value name="EnableShadows">
         <block type="logic_boolean" id="NnF+t#wt+U:AEkbNx~em">
          <field name="BOOL">TRUE</field>
         </block>
        </value>
        <value name="ShadowDarkness">
         <block type="math_number" id="7}4HAcpx]gQzvA9[l~R3">
          <field name="NUM">0</field>
         </block>
        </value>
        <next>
         <block type="bitbybit.babylon.scene.activateCamera" id="ae#=g=%/[N52uB!A6Q:9">
          <value name="Camera">
           <block type="bitbybit.babylon.camera.target.create" id="FaK_MYpf!9ffBh:~K(gf">
            <value name="Position">
             <block type="bitbybit.point.pointXYZ" id="P^Ivipvi_[y,aFK^+O}v">
              <value name="X">
               <block type="math_number" id="qKSm[i6hZugCMC5q;8Z[">
                <field name="NUM">0</field>
               </block>
              </value>
              <value name="Y">
               <block type="math_number" id="dXo%yPVfBd|hV4y(/p]X">
                <field name="NUM">37</field>
               </block>
              </value>
              <value name="Z">
               <block type="math_number" id="XAk(uVO~`^9}@`^|lS?p">
                <field name="NUM">-70</field>
               </block>
              </value>
             </block>
            </value>
            <value name="Target">
             <block type="bitbybit.point.pointXYZ" id="8hgc*#ZgK;q]P6_NcOAN">
              <value name="X">
               <block type="math_number" id="u8}XaTJ/0kV4s77rCHsO">
                <field name="NUM">0</field>
               </block>
              </value>
              <value name="Y">
               <block type="math_number" id="0G;]O{oX,e%T`|;G3C!5">
                <field name="NUM">30</field>
               </block>
              </value>
              <value name="Z">
               <block type="math_number" id=")roLz{8^[3~ZWKYoTaTh">
                <field name="NUM">0</field>
               </block>
              </value>
             </block>
            </value>
           </block>
          </value>
         </block>
        </next>
       </block>
      </next>
     </block>
    </next>
   </block>
  </statement>
 </block>
 <block type="procedures_callnoreturn" id="_QiG0*83-%gl!g^b5z,u" x="-311" y="1274">
  <mutation name="environmentSetup">
  </mutation>
  <next>
   <block type="variables_set" id="gYbWlKL,CX%sVsAFEB=6">
    <field name="VAR" id="N55VA*wQ=JZ7)ZzC![e2">gameStarted</field>
    <value name="VALUE">
     <block type="logic_boolean" id="aAHw6M)jsChK57X2WBS]">
      <field name="BOOL">FALSE</field>
     </block>
    </value>
    <next>
     <block type="variables_set" id="MnePNY#jeTCneJx}WH#[">
      <field name="VAR" id="8Ksy1pExe?vRrMC0aiPt">widthMin</field>
      <value name="VALUE">
       <block type="math_number" id="a+~[*(C.??arYzq,[g4P">
        <field name="NUM">-300</field>
       </block>
      </value>
      <next>
       <block type="variables_set" id="Y]M~djDGE?%i2st,R{oI">
        <field name="VAR" id=".=vhFsvO;q,.9b)-Qz3l">widthMax</field>
        <value name="VALUE">
         <block type="math_number" id="x_A~a5i;PoONQ!pH.L!L">
          <field name="NUM">300</field>
         </block>
        </value>
        <next>
         <block type="variables_set" id="J2iN6|Z%tBX%Y`l,](k`">
          <field name="VAR" id="XV`eXIBD(bu,LazqRwTT">widthStep</field>
          <value name="VALUE">
           <block type="math_number" id="b1?Z!D/MaVs7xYr!UHiR">
            <field name="NUM">70</field>
           </block>
          </value>
          <next>
           <block type="variables_set" id=";R3ixFFjfQEAstT.rIn`">
            <field name="VAR" id="yzLz+vt0vD]TZq3U[UfX">lengthMin</field>
            <value name="VALUE">
             <block type="math_number" id="q70}T-2i?(T~N@Y=TJ#x">
              <field name="NUM">-300</field>
             </block>
            </value>
            <next>
             <block type="variables_set" id="_0iWM1%{L/dKlQ;6UOPP">
              <field name="VAR" id="2B%.f-FHZS.vmE}c/W@O">lengthMax</field>
              <value name="VALUE">
               <block type="math_number" id="CHcu_uep^?mA]#D=TggE">
                <field name="NUM">300</field>
               </block>
              </value>
              <next>
               <block type="variables_set" id="V]T}}cx#gag%:+Kh?36!">
                <field name="VAR" id="vjkw9@`MjdDpte=:F*?k">lengthStep</field>
                <value name="VALUE">
                 <block type="math_number" id="K];C1gwhGfgza7GU}YvF">
                  <field name="NUM">50</field>
                 </block>
                </value>
                <next>
                 <block type="variables_set" id="PC8@j$/Lbv9cO+q$[^,x">
                  <field name="VAR" id="e[h3;!Y]$kwKjO8#sF(_">height</field>
                  <value name="VALUE">
                   <block type="math_number" id="HP15jDjaa1.SN=MBlFKJ">
                    <field name="NUM">200</field>
                   </block>
                  </value>
                  <next>
                   <block type="variables_set" id="PbltNp,}V8+sJqbXLc{f">
                    <field name="VAR" id="QQtWB.!bf|/Xj9,jPJ#+">speed</field>
                    <value name="VALUE">
                     <block type="math_number" id="~_i@p7@dbl~tzvIew6pZ">
                      <field name="NUM">0.4</field>
                     </block>
                    </value>
                    <next>
                     <block type="variables_set" id="Mu1Z`;wmld|epg@DWZO(">
                      <field name="VAR" id="Gn+k:ablb+I@(!A@r~[u">rotationSpeed</field>
                      <value name="VALUE">
                       <block type="math_number" id="M.x0l}?bHxqTSe%;_nT-">
                        <field name="NUM">2</field>
                       </block>
                      </value>
                      <next>
                       <block type="variables_set" id="4/QtFiaOF;XTpPxC#bOL">
                        <field name="VAR" id="J1-=DM*Lw~If0:K6AP#H">collisionCount</field>
                        <value name="VALUE">
                         <block type="math_number" id="mCwKg[X[R`IHR}PV`rt[">
                          <field name="NUM">0</field>
                         </block>
                        </value>
                        <next>
                         <block type="variables_set" id="}r*C}9ijh/I|:|7=;[f6">
                          <field name="VAR" id="vP8%K(.OV@=lS=`/Ep,e">matNotCollidedColor</field>
                          <value name="VALUE">
                           <block type="colour_picker" id="rPj9c*$yud5;i3N}TcdO">
                            <field name="COLOUR">#0000ff</field>
                           </block>
                          </value>
                          <next>
                           <block type="variables_set" id="6gS}##V7(-tx0WHSo2D{">
                            <field name="VAR" id="GP;-F80W/DNm(uw8bX/E">matNotCollidedMetallic</field>
                            <value name="VALUE">
                             <block type="math_number" id="s`v!A!ch,M,|C2Nm*MbL">
                              <field name="NUM">0.6</field>
                             </block>
                            </value>
                            <next>
                             <block type="variables_set" id="65Fh$*B_EpYrkZWZP%XM">
                              <field name="VAR" id="R1GIHkyHWaMrR=#F^[m6">matNotCollidedRoughness</field>
                              <value name="VALUE">
                               <block type="math_number" id="tRxpR^eqv.Mj6ynb{EG;">
                                <field name="NUM">0.6</field>
                               </block>
                              </value>
                              <next>
                               <block type="variables_set" id="!!jTRFx2x6+R1|9#C20:">
                                <field name="VAR" id="G0C?%a7j@H?e`8Aa77lE">matNotCollidedAlpha</field>
                                <value name="VALUE">
                                 <block type="math_number" id="^ko-n(Xw3XMM{5lTiXbn">
                                  <field name="NUM">0.3</field>
                                 </block>
                                </value>
                                <next>
                                 <block type="variables_set" id="$.|;5jn0odf0zcOTlz9c">
                                  <field name="VAR" id="?SfntWNDROXq7|uFzc=u">matCollidedColor</field>
                                  <value name="VALUE">
                                   <block type="colour_picker" id="GHEr=@qx_]/9LMSELo2(">
                                    <field name="COLOUR">#6600cc</field>
                                   </block>
                                  </value>
                                  <next>
                                   <block type="variables_set" id="#aSK%DsFRn):1TVV57.q">
                                    <field name="VAR" id="^Fg{S%]^-Su#,dJ*jQ^~">matCollidedAlpha</field>
                                    <value name="VALUE">
                                     <block type="math_number" id="iu0Rd({DywFZ+}IK.;m.">
                                      <field name="NUM">0.6</field>
                                     </block>
                                    </value>
                                    <next>
                                     <block type="variables_set" id="F!nMdMn1P:e=}e*yJngZ">
                                      <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field>
                                      <value name="VALUE">
                                       <block type="math_number" id="U{HNk0sG)4{Yz^+NTo@f">
                                        <field name="NUM">0</field>
                                       </block>
                                      </value>
                                      <next>
                                       <block type="variables_set" id="FEi}2S/7[`:1!GXNBC^$">
                                        <field name="VAR" id="x1}?6sE~+;43`Nb.]z]P">hitCountPrevious</field>
                                        <value name="VALUE">
                                         <block type="math_number" id="DDhs7]$9+@XAFOEB-$,[">
                                          <field name="NUM">0</field>
                                         </block>
                                        </value>
                                        <next>
                                         <block type="variables_set" id="U^H~tqqaL0Z;psq.C{9#">
                                          <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field>
                                          <value name="VALUE">
                                           <block type="logic_boolean" id="%C5BXxI3/h}[$fu/o]ao">
                                            <field name="BOOL">TRUE</field>
                                           </block>
                                          </value>
                                          <next>
                                           <block type="base_time_then" id="Va=Z#{_169yI5_m5-q;-">
                                            <field name="Result" id=";63j/=~]1TvH[G7Z#h|+">loadingMesh</field>
                                            <value name="Promise">
                                             <block type="bitbybit.draw.drawAnyAsync" id="RROqR|6QW4,v*5kHt?^g">
                                              <value name="Entity">
                                               <block type="bitbybit.jscad.text.sphericalText" id="LM2m5$92][FcO3n|^dUc">
                                                <value name="Text">
                                                 <block type="text" id="_=sJKE$QkcVp)%AX~)X8">
                                                  <field name="TEXT">Loading...</field>
                                                 </block>
                                                </value>
                                                <value name="Radius">
                                                 <block type="math_number" id="6qVp51c`(Ee~]cy:#6mR">
                                                  <field name="NUM">1</field>
                                                 </block>
                                                </value>
                                                <value name="Segments">
                                                 <block type="math_number" id="p3*H7rTT1_YKY)OWD;9J">
                                                  <field name="NUM">10</field>
                                                 </block>
                                                </value>
                                                <value name="XOffset">
                                                 <block type="math_number" id="iR#Fx]V7)jL=/r!l{ya8">
                                                  <field name="NUM">0</field>
                                                 </block>
                                                </value>
                                                <value name="YOffset">
                                                 <block type="math_number" id="eYA.OuoLsYSLM!Ngx*uq">
                                                  <field name="NUM">0</field>
                                                 </block>
                                                </value>
                                                <value name="Height">
                                                 <block type="math_number" id="|ooO+h;IayDQVb~mibQ$">
                                                  <field name="NUM">4</field>
                                                 </block>
                                                </value>
                                                <value name="LineSpacing">
                                                 <block type="math_number" id="!0E!7z:2g~DuC.h-}@|#">
                                                  <field name="NUM">1.4</field>
                                                 </block>
                                                </value>
                                                <value name="LetterSpacing">
                                                 <block type="math_number" id="P%39?Lb9O*(B2*8:^-QG">
                                                  <field name="NUM">1</field>
                                                 </block>
                                                </value>
                                                <value name="Align">
                                                 <block type="bitbybit.jscad.enums.jscadTextAlignEnum" id="}5bn{`.#80Fh.U*#E4c:">
                                                  <field name="bitbybit.jscad.enums.jscadTextAlignEnum">'left'</field>
                                                 </block>
                                                </value>
                                                <value name="ExtrudeOffset">
                                                 <block type="math_number" id="e^=,ep6q{p$2]FKy{;A8">
                                                  <field name="NUM">0</field>
                                                 </block>
                                                </value>
                                               </block>
                                              </value>
                                              <value name="Options">
                                               <block type="bitbybit.draw.optionsSimple" id="X(ZHs0AB:?6,=XL^b0hv">
                                                <value name="Colours">
                                                 <block type="colour_picker" id="AKh$:~yNf%RIfs[j1ck{">
                                                  <field name="COLOUR">#ffcc00</field>
                                                 </block>
                                                </value>
                                                <value name="Size">
                                                 <block type="math_number" id="lBJEd2%m;G%C%pFux6;[">
                                                  <field name="NUM">3</field>
                                                 </block>
                                                </value>
                                                <value name="Opacity">
                                                 <block type="math_number" id="=vne?,/Qh=i_=]|m#L/z">
                                                  <field name="NUM">1</field>
                                                 </block>
                                                </value>
                                                <value name="Updatable">
                                                 <block type="logic_boolean" id="X5p6!GT`6$|jTgAKIC+B">
                                                  <field name="BOOL">FALSE</field>
                                                 </block>
                                                </value>
                                               </block>
                                              </value>
                                             </block>
                                            </value>
                                            <statement name="Then">
                                             <block type="bitbybit.babylon.mesh.moveUp" id=":SOp6roXfl)CEgDF51N^">
                                              <value name="BabylonMesh">
                                               <block type="variables_get" id="Wl^ia^.CtZ1W?PY^qdng">
                                                <field name="VAR" id=";63j/=~]1TvH[G7Z#h|+">loadingMesh</field>
                                               </block>
                                              </value>
                                              <value name="Distance">
                                               <block type="math_number" id="U/j!g,Sx=7/_8J@@iB(g">
                                                <field name="NUM">30</field>
                                               </block>
                                              </value>
                                              <next>
                                               <block type="base_time_then" id="OftV`:;k_wU;spZB$)^^">
                                                <field name="Result" id="cC?8ei#a5-1t_d*d#vk#">result</field>
                                                <value name="Promise">
                                                 <block type="lists_create_with" id="g2jf8*Ahcrc78x?Ig|Zo">
                                                  <mutation items="4">
                                                  </mutation>
                                                  <value name="ADD0">
                                                   <block type="bitbybit.babylon.io.loadAssetIntoSceneFromRootUrl" id="^$h_SnwBM(b;-y@Rltkl">
                                                    <value name="AssetFile">
                                                     <block type="text" id="R]Yl}I2Bauk!u!~*^Jww">
                                                      <field name="TEXT">aerobatic_plane.glb</field>
                                                     </block>
                                                    </value>
                                                    <value name="RootUrl">
                                                     <block type="text" id="p0`eAo(q})VduhqDp$JF">
                                                      <field name="TEXT">https://models.babylonjs.com/</field>
                                                     </block>
                                                    </value>
                                                   </block>
                                                  </value>
                                                  <value name="ADD1">
                                                   <block type="bitbybit.babylon.io.loadAssetIntoSceneFromRootUrl" id="Os7uHh[Ow|(c5IUZ6jTs">
                                                    <value name="AssetFile">
                                                     <block type="text" id="3!-s3^DD:NBq4{JF9Ea!">
                                                      <field name="TEXT">BabylonShaderBall_Simple.gltf</field>
                                                     </block>
                                                    </value>
                                                    <value name="RootUrl">
                                                     <block type="text" id="tLYQFq(P6i?cA9)T=ET2">
                                                      <field name="TEXT">https://models.babylonjs.com/shaderBall/</field>
                                                     </block>
                                                    </value>
                                                   </block>
                                                  </value>
                                                  <value name="ADD2">
                                                   <block type="bitbybit.draw.drawAnyAsync" id="}LR6q{j[b7J4B786qI0q">
                                                    <value name="Entity">
                                                     <block type="bitbybit.jscad.shapes.sphere" id="?`/3ridTk.Q.L}0[-3vc">
                                                      <value name="Center">
                                                       <block type="bitbybit.point.pointXYZ" id="/@]io@!nX(=zh[cK_3Z7">
                                                        <value name="X">
                                                         <block type="math_number" id="a,YlM5AgL4g8JMz-!%MG">
                                                          <field name="NUM">0</field>
                                                         </block>
                                                        </value>
                                                        <value name="Y">
                                                         <block type="math_number" id="|T;%W%v.Hu4P@.n^MnFR">
                                                          <field name="NUM">0</field>
                                                         </block>
                                                        </value>
                                                        <value name="Z">
                                                         <block type="math_number" id="B}R84NnL7BwQUgWWAw^^">
                                                          <field name="NUM">0</field>
                                                         </block>
                                                        </value>
                                                       </block>
                                                      </value>
                                                      <value name="Radius">
                                                       <block type="math_number" id="o*JNu%z6YrZ.?G)T=BUn">
                                                        <field name="NUM">2</field>
                                                       </block>
                                                      </value>
                                                      <value name="Segments">
                                                       <block type="math_number" id="oi7}6)Bs6_P=t*E,wAvB">
                                                        <field name="NUM">32</field>
                                                       </block>
                                                      </value>
                                                     </block>
                                                    </value>
                                                    <value name="Options">
                                                     <block type="bitbybit.draw.optionsSimple" id="P(l4N6[V|d*h,%27tFk3">
                                                      <value name="Colours">
                                                       <block type="colour_picker" id=":Fa|q#!Gmr0i{RA%g:M$">
                                                        <field name="COLOUR">#0000ff</field>
                                                       </block>
                                                      </value>
                                                      <value name="Size">
                                                       <block type="math_number" id="}$$~*pj`Y^t$gs$q7C^H">
                                                        <field name="NUM">3</field>
                                                       </block>
                                                      </value>
                                                      <value name="Opacity">
                                                       <block type="math_number" id="F}Q8_8W(NEqwnB/84^}6">
                                                        <field name="NUM">1</field>
                                                       </block>
                                                      </value>
                                                      <value name="Updatable">
                                                       <block type="logic_boolean" id="}9O`jwd.X3U7d.;4^h]o">
                                                        <field name="BOOL">FALSE</field>
                                                       </block>
                                                      </value>
                                                      <value name="Hidden">
                                                       <block type="logic_boolean" id="H??OO2IsCx+z;]mv]pLB">
                                                        <field name="BOOL">TRUE</field>
                                                       </block>
                                                      </value>
                                                     </block>
                                                    </value>
                                                   </block>
                                                  </value>
                                                  <value name="ADD3">
                                                   <block type="bitbybit.draw.drawAnyAsync" id="[1tiiE:,~0`M.8P31rM6">
                                                    <value name="Entity">
                                                     <block type="bitbybit.jscad.shapes.cuboid" id="^B3|1t20p(?Fu1jfvXen">
                                                      <value name="Center">
                                                       <block type="bitbybit.point.pointXYZ" id=",)v#:ECpqj=CPjd7rj)`">
                                                        <value name="X">
                                                         <block type="math_number" id="w!,UKg9KQb_2c?,+360#">
                                                          <field name="NUM">0</field>
                                                         </block>
                                                        </value>
                                                        <value name="Y">
                                                         <block type="math_number" id="n?16?+QEN1gsOL`g#A@5">
                                                          <field name="NUM">15</field>
                                                         </block>
                                                        </value>
                                                        <value name="Z">
                                                         <block type="math_number" id="NgS,z00wc76Kn=I+{rnp">
                                                          <field name="NUM">150</field>
                                                         </block>
                                                        </value>
                                                       </block>
                                                      </value>
                                                      <value name="Width">
                                                       <block type="math_number" id="za=3t_xnooGIF}D8Gi1R">
                                                        <field name="NUM">0.1</field>
                                                       </block>
                                                      </value>
                                                      <value name="Length">
                                                       <block type="math_number" id="!s{,//S;vKdB[)Od7Kn/">
                                                        <field name="NUM">200</field>
                                                       </block>
                                                      </value>
                                                      <value name="Height">
                                                       <block type="math_number" id="!V3~YwVQ,30xU%[)|OhS">
                                                        <field name="NUM">0.1</field>
                                                       </block>
                                                      </value>
                                                     </block>
                                                    </value>
                                                    <value name="Options">
                                                     <block type="bitbybit.draw.optionsSimple" id="Hco}4T~}~HrzRl%Rl/${">
                                                      <value name="Colours">
                                                       <block type="colour_picker" id="^~E2HnL`{q-mSKl%[ji/">
                                                        <field name="COLOUR">#ff6600</field>
                                                       </block>
                                                      </value>
                                                      <value name="Size">
                                                       <block type="math_number" id="UTl4kW*19Zxb4v!v@hRO">
                                                        <field name="NUM">3</field>
                                                       </block>
                                                      </value>
                                                      <value name="Opacity">
                                                       <block type="math_number" id="-l|2nY+EV-i-._;VkVH%">
                                                        <field name="NUM">1</field>
                                                       </block>
                                                      </value>
                                                      <value name="Updatable">
                                                       <block type="logic_boolean" id="{*M}AHxp$Y*R^ib^{n+a">
                                                        <field name="BOOL">FALSE</field>
                                                       </block>
                                                      </value>
                                                      <value name="Hidden">
                                                       <block type="logic_boolean" id="py_x8j7@;#%Qvu-[VhbF">
                                                        <field name="BOOL">TRUE</field>
                                                       </block>
                                                      </value>
                                                     </block>
                                                    </value>
                                                   </block>
                                                  </value>
                                                 </block>
                                                </value>
                                                <statement name="Then">
                                                 <block type="variables_set" id="BUYoBjso,h=u9*Ja-3av">
                                                  <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field>
                                                  <value name="VALUE">
                                                   <block type="lists_getIndex" id="]iy_P,PmUW.7iA^KsDC[">
                                                    <mutation statement="false" at="false">
                                                    </mutation>
                                                    <field name="MODE">GET</field>
                                                    <field name="WHERE">FIRST</field>
                                                    <value name="VALUE">
                                                     <block type="variables_get" id="|j-tJFe#.Rx1NhZzltem">
                                                      <field name="VAR" id="cC?8ei#a5-1t_d*d#vk#">result</field>
                                                     </block>
                                                    </value>
                                                   </block>
                                                  </value>
                                                  <next>
                                                   <block type="variables_set" id="X3#lCuUj/)58$4/?-QSh">
                                                    <field name="VAR" id=";S-l1atJ-^j6Dmyv9i2|">obstacle</field>
                                                    <value name="VALUE">
                                                     <block type="lists_getIndex" id="q5le?U2#|)ww/J$S^o6J">
                                                      <mutation statement="false" at="true">
                                                      </mutation>
                                                      <field name="MODE">GET</field>
                                                      <field name="WHERE">FROM_START</field>
                                                      <value name="VALUE">
                                                       <block type="variables_get" id="SYo4:DtVhwNDsn~kLDAB">
                                                        <field name="VAR" id="cC?8ei#a5-1t_d*d#vk#">result</field>
                                                       </block>
                                                      </value>
                                                      <value name="AT">
                                                       <block type="math_number" id="zYT9hYiS+Shlap3WEgg-">
                                                        <field name="NUM">2</field>
                                                       </block>
                                                      </value>
                                                     </block>
                                                    </value>
                                                    <next>
                                                     <block type="variables_set" id="y.]oD*p/BfpLV)wX#q.1">
                                                      <field name="VAR" id="FY|^#Zz#k.B4[{A_DFp]">checkPickMesh</field>
                                                      <value name="VALUE">
                                                       <block type="lists_getIndex" id="@Wn?!ln-PWcl[yB;#G*c">
                                                        <mutation statement="false" at="true">
                                                        </mutation>
                                                        <field name="MODE">GET</field>
                                                        <field name="WHERE">FROM_START</field>
                                                        <value name="VALUE">
                                                         <block type="variables_get" id="P!AZ$+v+Z4yVWw-eIQ:c">
                                                          <field name="VAR" id="cC?8ei#a5-1t_d*d#vk#">result</field>
                                                         </block>
                                                        </value>
                                                        <value name="AT">
                                                         <block type="math_number" id="88L4RW`YW3cWjkE7S|Z7">
                                                          <field name="NUM">3</field>
                                                         </block>
                                                        </value>
                                                       </block>
                                                      </value>
                                                      <next>
                                                       <block type="variables_set" id="].joN.6D!@#vf%9%.9YN">
                                                        <field name="VAR" id="l;zV{Uv*k.k)m:5$l!+A">ray</field>
                                                        <value name="VALUE">
                                                         <block type="lists_getIndex" id=".:n#s:9X.jAL/]AN.g}[">
                                                          <mutation statement="false" at="false">
                                                          </mutation>
                                                          <field name="MODE">GET</field>
                                                          <field name="WHERE">LAST</field>
                                                          <value name="VALUE">
                                                           <block type="variables_get" id="J@HJE2*`!ctuy0pu{X[I">
                                                            <field name="VAR" id="cC?8ei#a5-1t_d*d#vk#">result</field>
                                                           </block>
                                                          </value>
                                                         </block>
                                                        </value>
                                                        <next>
                                                         <block type="bitbybit.babylon.mesh.hide" id="!tq1.yQUt~TRR,38WqSG">
                                                          <value name="BabylonMesh">
                                                           <block type="variables_get" id="r.YnF*+tA!m%1--`4M:H">
                                                            <field name="VAR" id="l;zV{Uv*k.k)m:5$l!+A">ray</field>
                                                           </block>
                                                          </value>
                                                          <value name="IncludeChildren">
                                                           <block type="logic_boolean" id="PBJMOfLzyk??|GBf`Vs)">
                                                            <field name="BOOL">TRUE</field>
                                                           </block>
                                                          </value>
                                                          <next>
                                                           <block type="bitbybit.babylon.mesh.hide" id="R+`x|xHkqtx~80B$WxaQ">
                                                            <value name="BabylonMesh">
                                                             <block type="variables_get" id="T6Tvn#))aXiABODD,[^r">
                                                              <field name="VAR" id="FY|^#Zz#k.B4[{A_DFp]">checkPickMesh</field>
                                                             </block>
                                                            </value>
                                                            <value name="IncludeChildren">
                                                             <block type="logic_boolean" id="xSGjH*%#AlA4Yt/2,BWs">
                                                              <field name="BOOL">TRUE</field>
                                                             </block>
                                                            </value>
                                                            <next>
                                                             <block type="variables_set" id="Wb9;!sSr?c#!P7v_MmvM">
                                                              <field name="VAR" id="Z^6N%Qz;I1*UFFI1d]5M">rayStart</field>
                                                              <value name="VALUE">
                                                               <block type="bitbybit.draw.drawAny" id="xCj:u;Cw^z!dTVlFf#O+">
                                                                <value name="Entity">
                                                                 <block type="bitbybit.point.pointXYZ" id=")GKh=Q)4hCD0=^l;xNVF">
                                                                  <value name="X">
                                                                   <block type="math_number" id=",6fU#7o~}[75iMJ8JRlZ">
                                                                    <field name="NUM">0</field>
                                                                   </block>
                                                                  </value>
                                                                  <value name="Y">
                                                                   <block type="math_number" id="mVLpM28WJc6rU@h6yUGt">
                                                                    <field name="NUM">0</field>
                                                                   </block>
                                                                  </value>
                                                                  <value name="Z">
                                                                   <block type="math_number" id="x8`WuYUH[C?BRr9|]@nN">
                                                                    <field name="NUM">0</field>
                                                                   </block>
                                                                  </value>
                                                                 </block>
                                                                </value>
                                                                <value name="Options">
                                                                 <block type="bitbybit.draw.optionsSimple" id="PvZ*q/Z2kL_j71x0k)d4">
                                                                  <value name="Colours">
                                                                   <block type="colour_picker" id="S*dTx0f~ww7u~`[rQp@s">
                                                                    <field name="COLOUR">#ff6600</field>
                                                                   </block>
                                                                  </value>
                                                                  <value name="Size">
                                                                   <block type="math_number" id="l,urQU,zic9]jEi!~9yb">
                                                                    <field name="NUM">3</field>
                                                                   </block>
                                                                  </value>
                                                                  <value name="Opacity">
                                                                   <block type="math_number" id="kuJ^b*1W8Sch+BR8UJ;n">
                                                                    <field name="NUM">0</field>
                                                                   </block>
                                                                  </value>
                                                                  <value name="Updatable">
                                                                   <block type="logic_boolean" id="]{5M-7I!;Us5Y/rE6h_Q">
                                                                    <field name="BOOL">FALSE</field>
                                                                   </block>
                                                                  </value>
                                                                  <value name="Hidden">
                                                                   <block type="logic_boolean" id="Cb%MfT0iD$TxsY/irb=0">
                                                                    <field name="BOOL">TRUE</field>
                                                                   </block>
                                                                  </value>
                                                                 </block>
                                                                </value>
                                                               </block>
                                                              </value>
                                                              <next>
                                                               <block type="bitbybit.babylon.mesh.setPosition" id="5R~aoxX}w5HQ5pX8koDH">
                                                                <value name="BabylonMesh">
                                                                 <block type="variables_get" id="A3UN*rO?h=7U$thKg3V%">
                                                                  <field name="VAR" id="Z^6N%Qz;I1*UFFI1d]5M">rayStart</field>
                                                                 </block>
                                                                </value>
                                                                <value name="Position">
                                                                 <block type="bitbybit.point.pointXYZ" id="0ZE{;|-}p-cro~:)*:/@">
                                                                  <value name="X">
                                                                   <block type="math_number" id="$sxo$Owq[RIZW6yN6DkF">
                                                                    <field name="NUM">0</field>
                                                                   </block>
                                                                  </value>
                                                                  <value name="Y">
                                                                   <block type="math_number" id="n.7$26Jtk#!Iv1(RM;V2">
                                                                    <field name="NUM">15</field>
                                                                   </block>
                                                                  </value>
                                                                  <value name="Z">
                                                                   <block type="math_number" id="dba9Sf17e7WGn8~oNZs9">
                                                                    <field name="NUM">0</field>
                                                                   </block>
                                                                  </value>
                                                                 </block>
                                                                </value>
                                                                <next>
                                                                 <block type="bitbybit.babylon.mesh.setParent" id="=p6X_52vAp5nZfs.$ryk">
                                                                  <value name="BabylonMesh">
                                                                   <block type="variables_get" id="_o%4-X+OT#=CiFy;(r`G">
                                                                    <field name="VAR" id="Z^6N%Qz;I1*UFFI1d]5M">rayStart</field>
                                                                   </block>
                                                                  </value>
                                                                  <value name="ParentMesh">
                                                                   <block type="variables_get" id="^4D;-TCg2FILdy;Ek`0~">
                                                                    <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field>
                                                                   </block>
                                                                  </value>
                                                                  <next>
                                                                   <block type="variables_set" id="IK;O2B5)jO|.gMj|fOR}">
                                                                    <field name="VAR" id="-Z2ex1M1~fOr(z`/x`!G">rayEnd</field>
                                                                    <value name="VALUE">
                                                                     <block type="bitbybit.draw.drawAny" id="vF8*QOWtC]t[_BmO84KT">
                                                                      <value name="Entity">
                                                                       <block type="bitbybit.point.pointXYZ" id="tlJmNQ=nUqj*1or[h{{/">
                                                                        <value name="X">
                                                                         <block type="math_number" id="OAt;X([6$TvdGQZY0s|z">
                                                                          <field name="NUM">0</field>
                                                                         </block>
                                                                        </value>
                                                                        <value name="Y">
                                                                         <block type="math_number" id="h%c/8-CVHV5eO,l5[NK7">
                                                                          <field name="NUM">0</field>
                                                                         </block>
                                                                        </value>
                                                                        <value name="Z">
                                                                         <block type="math_number" id="%$FLm*PbJmc}iJ0#f-KT">
                                                                          <field name="NUM">0</field>
                                                                         </block>
                                                                        </value>
                                                                       </block>
                                                                      </value>
                                                                      <value name="Options">
                                                                       <block type="bitbybit.draw.optionsSimple" id="02#cz*ehdQ6m;{yPa.tw">
                                                                        <value name="Colours">
                                                                         <block type="colour_picker" id="Z5OP#r]A.H~ZQ2YduGOa">
                                                                          <field name="COLOUR">#ff6600</field>
                                                                         </block>
                                                                        </value>
                                                                        <value name="Size">
                                                                         <block type="math_number" id="1ra0FkL3y3)qE4Rtfs_1">
                                                                          <field name="NUM">3</field>
                                                                         </block>
                                                                        </value>
                                                                        <value name="Opacity">
                                                                         <block type="math_number" id="j#@Tec]hQg^LN8vqMflb">
                                                                          <field name="NUM">1</field>
                                                                         </block>
                                                                        </value>
                                                                        <value name="Updatable">
                                                                         <block type="logic_boolean" id="J{DGa.!|OV1lMuF1T(P7">
                                                                          <field name="BOOL">FALSE</field>
                                                                         </block>
                                                                        </value>
                                                                        <value name="Hidden">
                                                                         <block type="logic_boolean" id="_Q0(=@dt^)R21+P6(7-p">
                                                                          <field name="BOOL">TRUE</field>
                                                                         </block>
                                                                        </value>
                                                                       </block>
                                                                      </value>
                                                                     </block>
                                                                    </value>
                                                                    <next>
                                                                     <block type="bitbybit.babylon.mesh.setPosition" id="54;eM:)H_$T7%:]Qj-_H">
                                                                      <value name="BabylonMesh">
                                                                       <block type="variables_get" id="eO-us]n6]yj(.|[p_$gP">
                                                                        <field name="VAR" id="-Z2ex1M1~fOr(z`/x`!G">rayEnd</field>
                                                                       </block>
                                                                      </value>
                                                                      <value name="Position">
                                                                       <block type="bitbybit.point.pointXYZ" id="^gRs@C+=Qawy$aW1F[t`">
                                                                        <value name="X">
                                                                         <block type="math_number" id="LHbXg8zAI$,Ius6p1ul2">
                                                                          <field name="NUM">0</field>
                                                                         </block>
                                                                        </value>
                                                                        <value name="Y">
                                                                         <block type="math_number" id="{X.~Q;@.4Xib39BsGTs(">
                                                                          <field name="NUM">15</field>
                                                                         </block>
                                                                        </value>
                                                                        <value name="Z">
                                                                         <block type="math_number" id="~$L|g{KHabu=q@GpPzP/">
                                                                          <field name="NUM">350</field>
                                                                         </block>
                                                                        </value>
                                                                       </block>
                                                                      </value>
                                                                      <next>
                                                                       <block type="bitbybit.babylon.mesh.setParent" id="]8{hRsiF09RDP|O#@%bi">
                                                                        <value name="BabylonMesh">
                                                                         <block type="variables_get" id="jQQ{uc6^dp)KM4=~xM.j">
                                                                          <field name="VAR" id="-Z2ex1M1~fOr(z`/x`!G">rayEnd</field>
                                                                         </block>
                                                                        </value>
                                                                        <value name="ParentMesh">
                                                                         <block type="variables_get" id="k0Zr~]ghNtcLwm~tvLdx">
                                                                          <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field>
                                                                         </block>
                                                                        </value>
                                                                        <next>
                                                                         <block type="bitbybit.babylon.mesh.setParent" id="=GF-5C_RwB!lFeO^!{qo">
                                                                          <value name="BabylonMesh">
                                                                           <block type="variables_get" id="d.#wvFb,[0r3BJgv{V`(">
                                                                            <field name="VAR" id="l;zV{Uv*k.k)m:5$l!+A">ray</field>
                                                                           </block>
                                                                          </value>
                                                                          <value name="ParentMesh">
                                                                           <block type="variables_get" id="v/Qt%{eFcklA]_n,/JYH">
                                                                            <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field>
                                                                           </block>
                                                                          </value>
                                                                          <next>
                                                                           <block type="controls_forEach" id="k{lOE_OodFw0%YiuLdA-">
                                                                            <field name="VAR" id="wD(AH16(3Ob]=i+t(Evc">m</field>
                                                                            <value name="LIST">
                                                                             <block type="bitbybit.babylon.mesh.getChildMeshes" id=";cnlse(BE,QL.yUr3cqJ">
                                                                              <value name="BabylonMesh">
                                                                               <block type="variables_get" id="wm$~T|}{z4H@Gd]VKB5{">
                                                                                <field name="VAR" id=";S-l1atJ-^j6Dmyv9i2|">obstacle</field>
                                                                               </block>
                                                                              </value>
                                                                              <value name="DirectDescendantsOnly">
                                                                               <block type="logic_boolean" id=".a4PeN_.I!9pCjS3cv3W">
                                                                                <field name="BOOL">FALSE</field>
                                                                               </block>
                                                                              </value>
                                                                             </block>
                                                                            </value>
                                                                            <statement name="DO">
                                                                             <block type="bitbybit.babylon.mesh.setRotation" id="reJit-JlIPUpkmGJV38t">
                                                                              <value name="BabylonMesh">
                                                                               <block type="variables_get" id="^(~OcPlIguSm-P_sj;5{">
                                                                                <field name="VAR" id="wD(AH16(3Ob]=i+t(Evc">m</field>
                                                                               </block>
                                                                              </value>
                                                                              <value name="Rotation">
                                                                               <block type="bitbybit.point.pointXYZ" id="Pz[ZKX82x!-_]t*%U_34">
                                                                                <value name="X">
                                                                                 <block type="math_number" id="3X,qV.X4pDfW,e|0[*QL">
                                                                                  <field name="NUM">0</field>
                                                                                 </block>
                                                                                </value>
                                                                                <value name="Y">
                                                                                 <block type="math_number" id="@3:,6B|1`fH,p*(=/$o[">
                                                                                  <field name="NUM">120</field>
                                                                                 </block>
                                                                                </value>
                                                                                <value name="Z">
                                                                                 <block type="math_number" id="Llyenpx_L{gs-}X3*Xbr">
                                                                                  <field name="NUM">0</field>
                                                                                 </block>
                                                                                </value>
                                                                               </block>
                                                                              </value>
                                                                             </block>
                                                                            </statement>
                                                                            <next>
                                                                             <block type="variables_set" id="G-+.@$Gh)^nmx^Wj+!Yw">
                                                                              <field name="VAR" id="Q`UnZN[AiZpg%1(P%F[7">xRotation</field>
                                                                              <value name="VALUE">
                                                                               <block type="math_number" id="cd6aF(sY-CGXUVs#xIol">
                                                                                <field name="NUM">0</field>
                                                                               </block>
                                                                              </value>
                                                                              <next>
                                                                               <block type="variables_set" id="|DLFtjarczV7*d{:w9yb">
                                                                                <field name="VAR" id="w-`jw_]`h4sSN7j6v%FG">zRotation</field>
                                                                                <value name="VALUE">
                                                                                 <block type="math_number" id="V*TEYn-4Qrv/5+=%R-qJ">
                                                                                  <field name="NUM">0</field>
                                                                                 </block>
                                                                                </value>
                                                                                <next>
                                                                                 <block type="variables_set" id="RC}eb{4q4:@C]Yw-|t`r">
                                                                                  <field name="VAR" id=";5h%^BJh)`CAnK}F:xTC">obstacleInstances</field>
                                                                                  <value name="VALUE">
                                                                                   <block type="lists_create_with" id="mBY`^-K51Z1}FqqTg!q4">
                                                                                    <mutation items="0">
                                                                                    </mutation>
                                                                                   </block>
                                                                                  </value>
                                                                                  <next>
                                                                                   <block type="variables_set" id="~8vEL3@jM%l.1ta?+r)%">
                                                                                    <field name="VAR" id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</field>
                                                                                    <value name="VALUE">
                                                                                     <block type="lists_create_with" id="tu5^)#`!}j^36J}m+r_P">
                                                                                      <mutation items="0">
                                                                                      </mutation>
                                                                                     </block>
                                                                                    </value>
                                                                                    <next>
                                                                                     <block type="procedures_callnoreturn" id=")r9s[PCH*02rL$PHVJ[f">
                                                                                      <mutation name="putObstaclesInPositions">
                                                                                       <arg name="target1">
                                                                                       </arg>
                                                                                       <arg name="target2">
                                                                                       </arg>
                                                                                       <arg name="emptyListToFill1">
                                                                                       </arg>
                                                                                       <arg name="emptyListToFill2">
                                                                                       </arg>
                                                                                      </mutation>
                                                                                      <value name="ARG0">
                                                                                       <block type="variables_get" id="9r`MlLJH[J@!;m)a$+Br">
                                                                                        <field name="VAR" id="FY|^#Zz#k.B4[{A_DFp]">checkPickMesh</field>
                                                                                       </block>
                                                                                      </value>
                                                                                      <value name="ARG1">
                                                                                       <block type="variables_get" id="qDvso3h~M4QQ^83f=UHw">
                                                                                        <field name="VAR" id=";S-l1atJ-^j6Dmyv9i2|">obstacle</field>
                                                                                       </block>
                                                                                      </value>
                                                                                      <value name="ARG2">
                                                                                       <block type="variables_get" id="3h%px8VNYsYi{27qC`EP">
                                                                                        <field name="VAR" id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</field>
                                                                                       </block>
                                                                                      </value>
                                                                                      <value name="ARG3">
                                                                                       <block type="variables_get" id="/3GRc^-^H35Cw10Bjs~V">
                                                                                        <field name="VAR" id=";5h%^BJh)`CAnK}F:xTC">obstacleInstances</field>
                                                                                       </block>
                                                                                      </value>
                                                                                      <next>
                                                                                       <block type="bitbybit.babylon.mesh.hide" id="t^p,H=cz+k[v_!RVtSCs">
                                                                                        <value name="BabylonMesh">
                                                                                         <block type="variables_get" id="B6v|i:L_ogs~6W}=KGwa">
                                                                                          <field name="VAR" id="FY|^#Zz#k.B4[{A_DFp]">checkPickMesh</field>
                                                                                         </block>
                                                                                        </value>
                                                                                        <value name="IncludeChildren">
                                                                                         <block type="logic_boolean" id="CeKO*`J+}6Gz38s?Y{Y7">
                                                                                          <field name="BOOL">TRUE</field>
                                                                                         </block>
                                                                                        </value>
                                                                                        <next>
                                                                                         <block type="procedures_callnoreturn" id="g?,^Y{,uD!|Q?X@$/V-#">
                                                                                          <mutation name="assignSeparateMaterials">
                                                                                          </mutation>
                                                                                          <next>
                                                                                           <block type="variables_set" id="fNMB(~k[Nz7gy4d`!FB`">
                                                                                            <field name="VAR" id="ETt77.7%q,y#[-0d?b]Y">countTimeMS</field>
                                                                                            <value name="VALUE">
                                                                                             <block type="math_number" id="Uv4%a}:?D%vhNS@SZGHh">
                                                                                              <field name="NUM">0</field>
                                                                                             </block>
                                                                                            </value>
                                                                                            <next>
                                                                                             <block type="variables_set" id="`yNdoof.?bB~}`S@/}:A">
                                                                                              <field name="VAR" id="V8pA:KMfYFm%Mi-Cn;%3">drawnTextMeshes</field>
                                                                                              <value name="VALUE">
                                                                                               <block type="lists_create_with" id="~M4-^bO8XouGxxP};ztD">
                                                                                                <mutation items="0">
                                                                                                </mutation>
                                                                                               </block>
                                                                                              </value>
                                                                                              <next>
                                                                                               <block type="base_time_then" id="Yy:XhGbQ~l@%@-iv0,%7">
                                                                                                <field name="Result" id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</field>
                                                                                                <value name="Promise">
                                                                                                 <block type="bitbybit.draw.drawAnyAsync" id="g(CkE:`h[M+G)J*C[96}">
                                                                                                  <value name="Entity">
                                                                                                   <block type="bitbybit.jscad.text.sphericalText" id="Xc#D,dZAP6q:bn7m%`u|">
                                                                                                    <value name="Text">
                                                                                                     <block type="text" id="[^+Uo}8N5L^Xf5lS5hG7">
                                                                                                      <field name="TEXT">START THE GAME!</field>
                                                                                                     </block>
                                                                                                    </value>
                                                                                                    <value name="Radius">
                                                                                                     <block type="math_number" id="~Pd@G)w+2G?7]wB}L/H/">
                                                                                                      <field name="NUM">1</field>
                                                                                                     </block>
                                                                                                    </value>
                                                                                                    <value name="Segments">
                                                                                                     <block type="math_number" id="O+gS+!=d9)yEtKN3:uHo">
                                                                                                      <field name="NUM">10</field>
                                                                                                     </block>
                                                                                                    </value>
                                                                                                    <value name="XOffset">
                                                                                                     <block type="math_number" id="=deM]3PMQ[kdn[Ig%}?l">
                                                                                                      <field name="NUM">0</field>
                                                                                                     </block>
                                                                                                    </value>
                                                                                                    <value name="YOffset">
                                                                                                     <block type="math_number" id="v`IMOjvU0_+DbSle=RHY">
                                                                                                      <field name="NUM">0</field>
                                                                                                     </block>
                                                                                                    </value>
                                                                                                    <value name="Height">
                                                                                                     <block type="math_number" id="`ZiYQy0Y0WvVqLCR0oL4">
                                                                                                      <field name="NUM">4</field>
                                                                                                     </block>
                                                                                                    </value>
                                                                                                    <value name="LineSpacing">
                                                                                                     <block type="math_number" id="u9j|o}|_z!g$$)SQ;KD7">
                                                                                                      <field name="NUM">1.4</field>
                                                                                                     </block>
                                                                                                    </value>
                                                                                                    <value name="LetterSpacing">
                                                                                                     <block type="math_number" id="#lIL{0*{u=2,{3,xf9(^">
                                                                                                      <field name="NUM">1</field>
                                                                                                     </block>
                                                                                                    </value>
                                                                                                    <value name="Align">
                                                                                                     <block type="bitbybit.jscad.enums.jscadTextAlignEnum" id="J[7i2Od^%YeQEgRT~B-!">
                                                                                                      <field name="bitbybit.jscad.enums.jscadTextAlignEnum">'left'</field>
                                                                                                     </block>
                                                                                                    </value>
                                                                                                    <value name="ExtrudeOffset">
                                                                                                     <block type="math_number" id="7@XR^]#/N)tFB^]gR@pV">
                                                                                                      <field name="NUM">0</field>
                                                                                                     </block>
                                                                                                    </value>
                                                                                                   </block>
                                                                                                  </value>
                                                                                                 </block>
                                                                                                </value>
                                                                                                <statement name="Then">
                                                                                                 <block type="bitbybit.babylon.mesh.dispose" id="B3`~$Q%Hh1`9_|2Q~0ot">
                                                                                                  <value name="BabylonMesh">
                                                                                                   <block type="variables_get" id="ofRj(2mQuz44jLXft=Hm">
                                                                                                    <field name="VAR" id=";63j/=~]1TvH[G7Z#h|+">loadingMesh</field>
                                                                                                   </block>
                                                                                                  </value>
                                                                                                  <next>
                                                                                                   <block type="variables_set" id="E`|BjxE/6i.#TOrSP@;`">
                                                                                                    <field name="VAR" id="u8pzRT~Yq+ci$Pa(n{b1">materialHovered</field>
                                                                                                    <value name="VALUE">
                                                                                                     <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="i0C^F^ewKMV[g$C8rT?c">
                                                                                                      <value name="Name">
                                                                                                       <block type="text" id="-;be)+Tg*V{kBrxd#J]X">
                                                                                                        <field name="TEXT">Custom Name</field>
                                                                                                       </block>
                                                                                                      </value>
                                                                                                      <value name="BaseColor">
                                                                                                       <block type="colour_picker" id="dKelGy*J*r2q^g^jnhAi">
                                                                                                        <field name="COLOUR">#cc33cc</field>
                                                                                                       </block>
                                                                                                      </value>
                                                                                                      <value name="Metallic">
                                                                                                       <block type="math_number" id="PzK6QGXcqtE3T)mt![fb">
                                                                                                        <field name="NUM">0.6</field>
                                                                                                       </block>
                                                                                                      </value>
                                                                                                      <value name="Roughness">
                                                                                                       <block type="math_number" id="n#_)nsH00~Qt%54C`Mb`">
                                                                                                        <field name="NUM">0.6</field>
                                                                                                       </block>
                                                                                                      </value>
                                                                                                      <value name="Alpha">
                                                                                                       <block type="math_number" id="O;/YATj6=5Gf=z%vGzc.">
                                                                                                        <field name="NUM">1</field>
                                                                                                       </block>
                                                                                                      </value>
                                                                                                      <value name="BackFaceCulling">
                                                                                                       <block type="logic_boolean" id="S1!kXoJ:TjnC+mZN}@m9">
                                                                                                        <field name="BOOL">TRUE</field>
                                                                                                       </block>
                                                                                                      </value>
                                                                                                     </block>
                                                                                                    </value>
                                                                                                    <next>
                                                                                                     <block type="variables_set" id="CQ.PD.|GRhlD6.PrPAe+">
                                                                                                      <field name="VAR" id="L}.s3i)Ek7.f$`sMC`=I">materialNotSelected</field>
                                                                                                      <value name="VALUE">
                                                                                                       <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="}E7,x=b{=]Mi)uTY!{IM">
                                                                                                        <value name="Name">
                                                                                                         <block type="text" id="m4#FyN45aGL3_}Qz5|ak">
                                                                                                          <field name="TEXT">Custom Name</field>
                                                                                                         </block>
                                                                                                        </value>
                                                                                                        <value name="BaseColor">
                                                                                                         <block type="colour_picker" id="^~4%,AkB$.h82bia4Lzp">
                                                                                                          <field name="COLOUR">#333399</field>
                                                                                                         </block>
                                                                                                        </value>
                                                                                                        <value name="Metallic">
                                                                                                         <block type="math_number" id="L46o{L(?I|]:WUlyn0lS">
                                                                                                          <field name="NUM">0.6</field>
                                                                                                         </block>
                                                                                                        </value>
                                                                                                        <value name="Roughness">
                                                                                                         <block type="math_number" id="Ho43o}dzi$_te-DcH;=J">
                                                                                                          <field name="NUM">0.6</field>
                                                                                                         </block>
                                                                                                        </value>
                                                                                                        <value name="Alpha">
                                                                                                         <block type="math_number" id="poZrIjdN:G|q{wr])ews">
                                                                                                          <field name="NUM">1</field>
                                                                                                         </block>
                                                                                                        </value>
                                                                                                        <value name="BackFaceCulling">
                                                                                                         <block type="logic_boolean" id="+XE4N-Wpk23!3PEM!`S~">
                                                                                                          <field name="BOOL">TRUE</field>
                                                                                                         </block>
                                                                                                        </value>
                                                                                                       </block>
                                                                                                      </value>
                                                                                                      <next>
                                                                                                       <block type="variables_set" id="3sAIL{QLS?.Rzg[q:rtL">
                                                                                                        <field name="VAR" id="MZF66Jit8v(%L_G4Ppmo">materialSelected</field>
                                                                                                        <value name="VALUE">
                                                                                                         <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="h^n5h%`?uu--@y-1+bnO">
                                                                                                          <value name="Name">
                                                                                                           <block type="text" id="w2ljpg,W[8:|q0]xJ8^{">
                                                                                                            <field name="TEXT">Custom Name</field>
                                                                                                           </block>
                                                                                                          </value>
                                                                                                          <value name="BaseColor">
                                                                                                           <block type="colour_picker" id="xX05%K5pnj+U_2/uspLx">
                                                                                                            <field name="COLOUR">#ffcc33</field>
                                                                                                           </block>
                                                                                                          </value>
                                                                                                          <value name="Metallic">
                                                                                                           <block type="math_number" id="h3nD]I0:W=Lac{m2$Zgt">
                                                                                                            <field name="NUM">0.6</field>
                                                                                                           </block>
                                                                                                          </value>
                                                                                                          <value name="Roughness">
                                                                                                           <block type="math_number" id="d;4+{1SU9#gDujLu6vUk">
                                                                                                            <field name="NUM">0.6</field>
                                                                                                           </block>
                                                                                                          </value>
                                                                                                          <value name="Alpha">
                                                                                                           <block type="math_number" id="1-dJGD*lk%nWNAF1Xf63">
                                                                                                            <field name="NUM">1</field>
                                                                                                           </block>
                                                                                                          </value>
                                                                                                          <value name="BackFaceCulling">
                                                                                                           <block type="logic_boolean" id="rK_(|glZ{PX,4Ol/f50+">
                                                                                                            <field name="BOOL">TRUE</field>
                                                                                                           </block>
                                                                                                          </value>
                                                                                                         </block>
                                                                                                        </value>
                                                                                                        <next>
                                                                                                         <block type="bitbybit.babylon.mesh.setMaterial" id="fa[i6R[iJEd`]TOG`Cc|">
                                                                                                          <value name="BabylonMesh">
                                                                                                           <block type="variables_get" id="j$:m.[zSB1LB[mHRHsK`">
                                                                                                            <field name="VAR" id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</field>
                                                                                                           </block>
                                                                                                          </value>
                                                                                                          <value name="Material">
                                                                                                           <block type="variables_get" id="%.%C8m@B|NmID-aGA9Nw">
                                                                                                            <field name="VAR" id="L}.s3i)Ek7.f$`sMC`=I">materialNotSelected</field>
                                                                                                           </block>
                                                                                                          </value>
                                                                                                          <value name="IncludeChildren">
                                                                                                           <block type="logic_boolean" id="7~UJi?713(7Ib#3uZs+!">
                                                                                                            <field name="BOOL">TRUE</field>
                                                                                                           </block>
                                                                                                          </value>
                                                                                                          <next>
                                                                                                           <block type="bitbybit.babylon.mesh.moveUp" id="F4Hm[V@Mnu($1DuS=ewD">
                                                                                                            <value name="BabylonMesh">
                                                                                                             <block type="variables_get" id="p/@;;$!k{(ayJ]};j]S(">
                                                                                                              <field name="VAR" id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</field>
                                                                                                             </block>
                                                                                                            </value>
                                                                                                            <value name="Distance">
                                                                                                             <block type="math_number" id="Y-,TdIzJI*|UAB)*T?U!">
                                                                                                              <field name="NUM">30</field>
                                                                                                             </block>
                                                                                                            </value>
                                                                                                            <next>
                                                                                                             <block type="bitbybit.babylon.mesh.setPickable" id="sh=-a31VW4o[BwN5..lS">
                                                                                                              <value name="BabylonMesh">
                                                                                                               <block type="variables_get" id="+i~x.A`i~ccU[md;;XN{">
                                                                                                                <field name="VAR" id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</field>
                                                                                                               </block>
                                                                                                              </value>
                                                                                                              <value name="Pickable">
                                                                                                               <block type="logic_boolean" id="#%cO!Zh7r}te1#(Q;449">
                                                                                                                <field name="BOOL">TRUE</field>
                                                                                                               </block>
                                                                                                              </value>
                                                                                                              <value name="IncludeChildren">
                                                                                                               <block type="logic_boolean" id="{Ye0f9]rG=VI^2oVU8jv">
                                                                                                                <field name="BOOL">TRUE</field>
                                                                                                               </block>
                                                                                                              </value>
                                                                                                              <next>
                                                                                                               <block type="variables_set" id="xesCw53}}/:VB!~3rm^;">
                                                                                                                <field name="VAR" id="p5g0UQPeQRKZ=C6QX$!f">isPointerDown</field>
                                                                                                                <value name="VALUE">
                                                                                                                 <block type="logic_boolean" id="=#E-XVp;~f_N4w7FKWV3">
                                                                                                                  <field name="BOOL">FALSE</field>
                                                                                                                 </block>
                                                                                                                </value>
                                                                                                                <next>
                                                                                                                 <block type="variables_set" id="1t^yag4Qp!rbtIAM@B2-">
                                                                                                                  <field name="VAR" id="tMWvaMdc|h|+z62Kp).3">startGameHitHppened</field>
                                                                                                                  <value name="VALUE">
                                                                                                                   <block type="logic_boolean" id="?qJJP/ffXgy4pNIiU6=_">
                                                                                                                    <field name="BOOL">FALSE</field>
                                                                                                                   </block>
                                                                                                                  </value>
                                                                                                                  <next>
                                                                                                                   <block type="procedures_callnoreturn" id="E]FkxNe^^lr,CTT10O;R">
                                                                                                                    <mutation name="trackPointing">
                                                                                                                     <arg name="meshesToTrack">
                                                                                                                     </arg>
                                                                                                                     <arg name="shouldStartTheGame">
                                                                                                                     </arg>
                                                                                                                     <arg name="shouldReplay">
                                                                                                                     </arg>
                                                                                                                     <arg name="cleanMeshOnStart">
                                                                                                                     </arg>
                                                                                                                    </mutation>
                                                                                                                    <value name="ARG0">
                                                                                                                     <block type="variables_get" id="R{JE]yUO9PEK,63kk-F*">
                                                                                                                      <field name="VAR" id="qkHe%-0P-88[y=XZ4Yiw">startTheGameMesh</field>
                                                                                                                     </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG1">
                                                                                                                     <block type="logic_boolean" id="7)yM1I.L[Zu;(@G~Zmnz">
                                                                                                                      <field name="BOOL">TRUE</field>
                                                                                                                     </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG2">
                                                                                                                     <block type="logic_boolean" id="0f)-O,Q)DANiTrktXxQr">
                                                                                                                      <field name="BOOL">FALSE</field>
                                                                                                                     </block>
                                                                                                                    </value>
                                                                                                                   </block>
                                                                                                                  </next>
                                                                                                                 </block>
                                                                                                                </next>
                                                                                                               </block>
                                                                                                              </next>
                                                                                                             </block>
                                                                                                            </next>
                                                                                                           </block>
                                                                                                          </next>
                                                                                                         </block>
                                                                                                        </next>
                                                                                                       </block>
                                                                                                      </next>
                                                                                                     </block>
                                                                                                    </next>
                                                                                                   </block>
                                                                                                  </next>
                                                                                                 </block>
                                                                                                </statement>
                                                                                               </block>
                                                                                              </next>
                                                                                             </block>
                                                                                            </next>
                                                                                           </block>
                                                                                          </next>
                                                                                         </block>
                                                                                        </next>
                                                                                       </block>
                                                                                      </next>
                                                                                     </block>
                                                                                    </next>
                                                                                   </block>
                                                                                  </next>
                                                                                 </block>
                                                                                </next>
                                                                               </block>
                                                                              </next>
                                                                             </block>
                                                                            </next>
                                                                           </block>
                                                                          </next>
                                                                         </block>
                                                                        </next>
                                                                       </block>
                                                                      </next>
                                                                     </block>
                                                                    </next>
                                                                   </block>
                                                                  </next>
                                                                 </block>
                                                                </next>
                                                               </block>
                                                              </next>
                                                             </block>
                                                            </next>
                                                           </block>
                                                          </next>
                                                         </block>
                                                        </next>
                                                       </block>
                                                      </next>
                                                     </block>
                                                    </next>
                                                   </block>
                                                  </next>
                                                 </block>
                                                </statement>
                                               </block>
                                              </next>
                                             </block>
                                            </statement>
                                           </block>
                                          </next>
                                         </block>
                                        </next>
                                       </block>
                                      </next>
                                     </block>
                                    </next>
                                   </block>
                                  </next>
                                 </block>
                                </next>
                               </block>
                              </next>
                             </block>
                            </next>
                           </block>
                          </next>
                         </block>
                        </next>
                       </block>
                      </next>
                     </block>
                    </next>
                   </block>
                  </next>
                 </block>
                </next>
               </block>
              </next>
             </block>
            </next>
           </block>
          </next>
         </block>
        </next>
       </block>
      </next>
     </block>
    </next>
   </block>
  </next>
 </block>
 <block type="procedures_defnoreturn" id="1svwC2mU_X]xZpa7[Jbb" x="817" y="1375">
  <mutation>
   <arg name="meshesToTrack" varid="w;,D/nP)6x_3N,Xh+4CA">
   </arg>
   <arg name="shouldStartTheGame" varid="wdP2]qeqQ+RjpD3B;*h1">
   </arg>
   <arg name="shouldReplay" varid=".zx|JB2gL|-5(=S3G2F|">
   </arg>
   <arg name="cleanMeshOnStart" varid="X,7}=g8X@8FQ7lkUEQ7J">
   </arg>
  </mutation>
  <field name="NAME">trackPointing</field>
  <comment pinned="false" h="80" w="160">Describe this function...</comment>
  <statement name="STACK">
   <block type="bitbybit.babylon.mesh.setName" id="6xL,4GAz*]=@}QL)]mU$">
    <value name="BabylonMesh">
     <block type="variables_get" id="Md+gioa}U3_zbAzd*DAd">
      <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field>
     </block>
    </value>
    <value name="Name">
     <block type="text" id=",N.?MM%50)s9N7F)lYeI">
      <field name="TEXT">TrackedMesh</field>
     </block>
    </value>
    <value name="IncludeChildren">
     <block type="logic_boolean" id="o2c;L?=Y@SoTrHupb1Am">
      <field name="BOOL">TRUE</field>
     </block>
    </value>
    <next>
     <block type="base_time_on_pointer_move" id="`bOX[xahm]9qf#Wdz]mk">
      <statement name="Update">
       <block type="controls_if" id="cFVS4|(][$v;l9g%9S/t">
        <value name="IF0">
         <block type="variables_get" id="SAK%)Rf[+Uo=)}#sg`fk">
          <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field>
         </block>
        </value>
        <statement name="DO0">
         <block type="variables_set" id=",edUK=mp2pG;mbcH9`yX">
          <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field>
          <value name="VALUE">
           <block type="bitbybit.babylon.pick.pickWithPickingRay" id="dXGU-TA}?p)rkdlb~vj*">
           </block>
          </value>
          <next>
           <block type="controls_if" id="{2mQ=gibc2ai|S8sSlCv">
            <value name="IF0">
             <block type="logic_negate" id="wsRqR_arqj?hqPRPdLR7">
              <value name="BOOL">
               <block type="variables_get" id="*KNS4{4ORS4P_AWoMhKl">
                <field name="VAR" id="p5g0UQPeQRKZ=C6QX$!f">isPointerDown</field>
               </block>
              </value>
             </block>
            </value>
            <statement name="DO0">
             <block type="controls_if" id=";d?w(s6_Rzg5uwYIgu^Y">
              <mutation else="1">
              </mutation>
              <value name="IF0">
               <block type="logic_operation" id="VR0uxzDM{qpnF7r.j*({">
                <field name="OP">AND</field>
                <value name="A">
                 <block type="bitbybit.babylon.pick.hit" id="y-p}aOy!)`im%-M$_dy,">
                  <value name="PickInfo">
                   <block type="variables_get" id=":DLEzA7PW1,6yd=Z?{R1">
                    <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field>
                   </block>
                  </value>
                 </block>
                </value>
                <value name="B">
                 <block type="logic_compare" id="/x4krM7N[NY*m*|jyM:r">
                  <field name="OP">EQ</field>
                  <value name="A">
                   <block type="bitbybit.babylon.mesh.getName" id="?lWQ^XvAB!ob7;i)w^5/">
                    <value name="BabylonMesh">
                     <block type="bitbybit.babylon.pick.getPickedMesh" id="PC*i(o7UD7(x=@ncXP#h">
                      <value name="PickInfo">
                       <block type="variables_get" id="ev_92,{7Y]LP4INTW`Cw">
                        <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field>
                       </block>
                      </value>
                     </block>
                    </value>
                   </block>
                  </value>
                  <value name="B">
                   <block type="text" id="!hwel[(CXIf`)VPfLk0L">
                    <field name="TEXT">TrackedMesh</field>
                   </block>
                  </value>
                 </block>
                </value>
               </block>
              </value>
              <statement name="DO0">
               <block type="bitbybit.babylon.mesh.setMaterial" id="$6:azxj}N/MUrfx5%Y@#">
                <value name="BabylonMesh">
                 <block type="variables_get" id="g-_^P,]F,^?pylhZt[gU">
                  <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field>
                 </block>
                </value>
                <value name="Material">
                 <block type="variables_get" id="$$X:8L~#p3l!|DD.a@Q%">
                  <field name="VAR" id="u8pzRT~Yq+ci$Pa(n{b1">materialHovered</field>
                 </block>
                </value>
                <value name="IncludeChildren">
                 <block type="logic_boolean" id="ENJ`pk20s307xQDeY*i^">
                  <field name="BOOL">TRUE</field>
                 </block>
                </value>
               </block>
              </statement>
              <statement name="ELSE">
               <block type="bitbybit.babylon.mesh.setMaterial" id="@tiygT[1c=^v1wbn?B+O">
                <value name="BabylonMesh">
                 <block type="variables_get" id="XNBVU!Lvf-}pO8SbjUN%">
                  <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field>
                 </block>
                </value>
                <value name="Material">
                 <block type="variables_get" id="|OOP9VG3#N(yq3xRQ4nI">
                  <field name="VAR" id="L}.s3i)Ek7.f$`sMC`=I">materialNotSelected</field>
                 </block>
                </value>
                <value name="IncludeChildren">
                 <block type="logic_boolean" id="n7Qz-4w6bDsSRCpuVnRJ">
                  <field name="BOOL">TRUE</field>
                 </block>
                </value>
               </block>
              </statement>
             </block>
            </statement>
           </block>
          </next>
         </block>
        </statement>
       </block>
      </statement>
      <next>
       <block type="base_time_on_pointer_down" id="|uCZCJr*jpAY~[ReH7)[">
        <statement name="Update">
         <block type="controls_if" id="/BRZP0QDg5Lo4wHG0C3R">
          <value name="IF0">
           <block type="variables_get" id=":Q9%gR(G+kYCb[(@+?;P">
            <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field>
           </block>
          </value>
          <statement name="DO0">
           <block type="variables_set" id="w}q::.T_W0n!$1c1A!W/">
            <field name="VAR" id="p5g0UQPeQRKZ=C6QX$!f">isPointerDown</field>
            <value name="VALUE">
             <block type="logic_boolean" id="?r7e-~Z5*_h)Lx:*WHYz">
              <field name="BOOL">TRUE</field>
             </block>
            </value>
            <next>
             <block type="variables_set" id=".OY{Da6m2WYxd%0/QYQ7">
              <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field>
              <value name="VALUE">
               <block type="bitbybit.babylon.pick.pickWithPickingRay" id=":A]VzdP=CrD8W]5J#EUI">
               </block>
              </value>
              <next>
               <block type="controls_if" id="O03Me.ii]l0?}aF?T7b_">
                <value name="IF0">
                 <block type="logic_operation" id="!N._b1[NsZ1+n/!VUN=Q">
                  <field name="OP">AND</field>
                  <value name="A">
                   <block type="bitbybit.babylon.pick.hit" id="|BNj#puG=0[;RX]X[2e(">
                    <value name="PickInfo">
                     <block type="variables_get" id="@~|}80L^s#P]iMMrW^Nu">
                      <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field>
                     </block>
                    </value>
                   </block>
                  </value>
                  <value name="B">
                   <block type="logic_compare" id="HD$QEEFA^Z7IKf6IlBrB">
                    <field name="OP">EQ</field>
                    <value name="A">
                     <block type="bitbybit.babylon.mesh.getName" id="EE^;.;V,7tYJ=^^0ydHm">
                      <value name="BabylonMesh">
                       <block type="bitbybit.babylon.pick.getPickedMesh" id="aS?.WXA-03]OKC_Si+:8">
                        <value name="PickInfo">
                         <block type="variables_get" id="e]meOtwZ0t6?Y2b@qQ3N">
                          <field name="VAR" id="eCi)`F3cKkux=_YqV^mb">mousePickingResult</field>
                         </block>
                        </value>
                       </block>
                      </value>
                     </block>
                    </value>
                    <value name="B">
                     <block type="text" id="$2iFvqM_`,8Wu)s}FA{p">
                      <field name="TEXT">TrackedMesh</field>
                     </block>
                    </value>
                   </block>
                  </value>
                 </block>
                </value>
                <statement name="DO0">
                 <block type="bitbybit.babylon.mesh.setMaterial" id="Ew.i0+i^-qPcs+D|!7{4">
                  <value name="BabylonMesh">
                   <block type="variables_get" id="-dJ75QSx)|u{Pf+*ZGDv">
                    <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field>
                   </block>
                  </value>
                  <value name="Material">
                   <block type="variables_get" id="eQZ[Iwxz_X?L6W4GE-x1">
                    <field name="VAR" id="MZF66Jit8v(%L_G4Ppmo">materialSelected</field>
                   </block>
                  </value>
                  <value name="IncludeChildren">
                   <block type="logic_boolean" id="O~bVp_d%yy{,mm+#Sp6,">
                    <field name="BOOL">TRUE</field>
                   </block>
                  </value>
                  <next>
                   <block type="variables_set" id="B!g$E.}_1V38/-{_%_7Z">
                    <field name="VAR" id="tMWvaMdc|h|+z62Kp).3">startGameHitHppened</field>
                    <value name="VALUE">
                     <block type="logic_boolean" id="R^Ruc{j8(wNq@/SWRoFo">
                      <field name="BOOL">TRUE</field>
                     </block>
                    </value>
                   </block>
                  </next>
                 </block>
                </statement>
               </block>
              </next>
             </block>
            </next>
           </block>
          </statement>
         </block>
        </statement>
        <next>
         <block type="base_time_on_pointer_up" id="(72Yi68EOBbGpdT)7XB|">
          <statement name="Update">
           <block type="controls_if" id="3Fb]%YI~~Y/R?^AUg;7J">
            <value name="IF0">
             <block type="variables_get" id=",bZ:[6o^jm758JomCcOM">
              <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field>
             </block>
            </value>
            <statement name="DO0">
             <block type="variables_set" id="oZ6=f;7;DfVp{QHd5q*9">
              <field name="VAR" id="p5g0UQPeQRKZ=C6QX$!f">isPointerDown</field>
              <value name="VALUE">
               <block type="logic_boolean" id="NlHW|Yr;jRjyub[FE+Nz">
                <field name="BOOL">FALSE</field>
               </block>
              </value>
              <next>
               <block type="controls_if" id="y.8|fHuYeET_OWE0,Z(@">
                <value name="IF0">
                 <block type="variables_get" id="DYiDpMMW?0LCpyO!JnjV">
                  <field name="VAR" id="tMWvaMdc|h|+z62Kp).3">startGameHitHppened</field>
                 </block>
                </value>
                <statement name="DO0">
                 <block type="bitbybit.babylon.mesh.setMaterial" id="@1u0;F(G~kazVA${3$6M">
                  <value name="BabylonMesh">
                   <block type="variables_get" id="bu0Q6fx2+6DxrYp7U}r5">
                    <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field>
                   </block>
                  </value>
                  <value name="Material">
                   <block type="variables_get" id=")P9AD;_L*3gzah0y`(-/">
                    <field name="VAR" id="u8pzRT~Yq+ci$Pa(n{b1">materialHovered</field>
                   </block>
                  </value>
                  <value name="IncludeChildren">
                   <block type="logic_boolean" id="^g{K+}6|rKQHnACYn`=h">
                    <field name="BOOL">TRUE</field>
                   </block>
                  </value>
                  <next>
                   <block type="variables_set" id="1z$L|9Q8aqR7=}!D#fgd">
                    <field name="VAR" id="tMWvaMdc|h|+z62Kp).3">startGameHitHppened</field>
                    <value name="VALUE">
                     <block type="logic_boolean" id="3=0^jv!^U*8A8k:4wC.s">
                      <field name="BOOL">FALSE</field>
                     </block>
                    </value>
                    <next>
                     <block type="bitbybit.babylon.mesh.dispose" id="AB@uBbAOjm6u`1sjN|Aj">
                      <value name="BabylonMesh">
                       <block type="variables_get" id="iRF5pBlrZ@n7!mjJBZ1T">
                        <field name="VAR" id="w;,D/nP)6x_3N,Xh+4CA">meshesToTrack</field>
                       </block>
                      </value>
                      <next>
                       <block type="controls_if" id="Snt*(kw:*L`iEk0;,go~">
                        <value name="IF0">
                         <block type="variables_get" id="ch2Md^x/mNNY?wwiz||E">
                          <field name="VAR" id="wdP2]qeqQ+RjpD3B;*h1">shouldStartTheGame</field>
                         </block>
                        </value>
                        <statement name="DO0">
                         <block type="procedures_callnoreturn" id="~t8P]N$%,p7mXigNfNhV">
                          <mutation name="startTheGame">
                          </mutation>
                         </block>
                        </statement>
                        <next>
                         <block type="controls_if" id="GN-VL3*cDeDku(h9dDl,">
                          <value name="IF0">
                           <block type="variables_get" id="vz$9Q~0UH}~!xABADu0f">
                            <field name="VAR" id=".zx|JB2gL|-5(=S3G2F|">shouldReplay</field>
                           </block>
                          </value>
                          <statement name="DO0">
                           <block type="bitbybit.babylon.mesh.dispose" id=",dY$ntL$_pTjJ%[^g{4:">
                            <value name="BabylonMesh">
                             <block type="variables_get" id="lGk{DZGGZDoglEwF`[s0">
                              <field name="VAR" id="X,7}=g8X@8FQ7lkUEQ7J">cleanMeshOnStart</field>
                             </block>
                            </value>
                            <next>
                             <block type="controls_forEach" id="SB_~+S|NF:7lUtoKjW,P">
                              <field name="VAR" id="i`?upbOhaXrYcEaiH^tC">r</field>
                              <value name="LIST">
                               <block type="variables_get" id="hZMP|dg/8il{C9kpKBXf">
                                <field name="VAR" id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</field>
                               </block>
                              </value>
                              <statement name="DO">
                               <block type="bitbybit.babylon.mesh.show" id="hTA+75.lMS^-Vhu(A%b3">
                                <value name="BabylonMesh">
                                 <block type="variables_get" id="OGa##M/)qv@=Va=YD2/8">
                                  <field name="VAR" id="i`?upbOhaXrYcEaiH^tC">r</field>
                                 </block>
                                </value>
                                <value name="IncludeChildren">
                                 <block type="logic_boolean" id="i~N0,t*(4T{7K73W}gKG">
                                  <field name="BOOL">FALSE</field>
                                 </block>
                                </value>
                                <next>
                                 <block type="bitbybit.babylon.mesh.setPickable" id="0+-i,eFt-(36Ywd(FVj8">
                                  <value name="BabylonMesh">
                                   <block type="variables_get" id="uUZ^YyntVV|^wM=i8(9a">
                                    <field name="VAR" id="i`?upbOhaXrYcEaiH^tC">r</field>
                                   </block>
                                  </value>
                                  <value name="Pickable">
                                   <block type="logic_boolean" id="c,@z=/16;=!`-rW/z0pZ">
                                    <field name="BOOL">TRUE</field>
                                   </block>
                                  </value>
                                  <value name="IncludeChildren">
                                   <block type="logic_boolean" id="PSeV4ek/V%xq@-J/Gt1e">
                                    <field name="BOOL">FALSE</field>
                                   </block>
                                  </value>
                                 </block>
                                </next>
                               </block>
                              </statement>
                              <next>
                               <block type="variables_set" id="Wp;1Xu~4U8gf~Ag@CCr7">
                                <field name="VAR" id="$/mds]S[E2a%g6Yc,BVE">secondsGiven</field>
                                <value name="VALUE">
                                 <block type="math_number" id="t}YQzX0?f2VE+_]K@lto">
                                  <field name="NUM">20</field>
                                 </block>
                                </value>
                                <next>
                                 <block type="variables_set" id="eZOjxk85cEj!3p!:%pbn">
                                  <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field>
                                  <value name="VALUE">
                                   <block type="math_number" id="j$)L,j}{K4I6xwpr+^Eq">
                                    <field name="NUM">0</field>
                                   </block>
                                  </value>
                                  <next>
                                   <block type="variables_set" id="riJewz|tmw#i2,O3{Vp?">
                                    <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field>
                                    <value name="VALUE">
                                     <block type="logic_boolean" id="NIJ^-AiNQR@`{}P`$Mf2">
                                      <field name="BOOL">FALSE</field>
                                     </block>
                                    </value>
                                    <next>
                                     <block type="procedures_callnoreturn" id="Cg}1xUY9#L0BxEOvFKp}">
                                      <mutation name="startTimer">
                                      </mutation>
                                     </block>
                                    </next>
                                   </block>
                                  </next>
                                 </block>
                                </next>
                               </block>
                              </next>
                             </block>
                            </next>
                           </block>
                          </statement>
                         </block>
                        </next>
                       </block>
                      </next>
                     </block>
                    </next>
                   </block>
                  </next>
                 </block>
                </statement>
               </block>
              </next>
             </block>
            </statement>
           </block>
          </statement>
         </block>
        </next>
       </block>
      </next>
     </block>
    </next>
   </block>
  </statement>
 </block>
 <block type="procedures_defnoreturn" id="M5EE#pF:h#I#0u(VC=:V" x="2168" y="1356">
  <field name="NAME">startTheGame</field>
  <comment pinned="false" h="80" w="160">Describe this function...</comment>
  <statement name="STACK">
   <block type="variables_set" id="dQ~N:]rpA#_X.n1qf;!g">
    <field name="VAR" id="N55VA*wQ=JZ7)ZzC![e2">gameStarted</field>
    <value name="VALUE">
     <block type="logic_boolean" id="{IledY|^eOzWrcsi0;/H">
      <field name="BOOL">TRUE</field>
     </block>
    </value>
    <next>
     <block type="bitbybit.babylon.mesh.setVisibility" id="Tt3Vd@s^7nIy0xww/od/">
      <value name="BabylonMesh">
       <block type="variables_get" id="5|z^uFjgH$2`JPwfn~Mm">
        <field name="VAR" id="l;zV{Uv*k.k)m:5$l!+A">ray</field>
       </block>
      </value>
      <value name="Visibility">
       <block type="math_number" id="2S^Kvp4!D,+j]67X[zdP">
        <field name="NUM">1</field>
       </block>
      </value>
      <value name="IncludeChildren">
       <block type="logic_boolean" id="nmBI|*kXGUbHpO31Sx+^">
        <field name="BOOL">TRUE</field>
       </block>
      </value>
      <next>
       <block type="bitbybit.babylon.mesh.show" id="tAcZ~n#a8T01!mXWoP`z">
        <value name="BabylonMesh">
         <block type="variables_get" id="m:{73|f1a?J!x$nHMa%a">
          <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field>
         </block>
        </value>
        <value name="IncludeChildren">
         <block type="logic_boolean" id=")knqb@S%mP;Y@PfrGwh:">
          <field name="BOOL">TRUE</field>
         </block>
        </value>
        <next>
         <block type="bitbybit.babylon.mesh.show" id="[(H,4e/;U+%D7Q2=mD~f">
          <value name="BabylonMesh">
           <block type="variables_get" id="N)#2+-=}PP)C6N[f]ur{">
            <field name="VAR" id="l;zV{Uv*k.k)m:5$l!+A">ray</field>
           </block>
          </value>
          <value name="IncludeChildren">
           <block type="logic_boolean" id="[ttWYt0O~l[u]{9Sp[O-">
            <field name="BOOL">TRUE</field>
           </block>
          </value>
          <next>
           <block type="procedures_callnoreturn" id="6tc.:yRm#5!.@ig~9(tJ">
            <mutation name="startTimer">
            </mutation>
            <next>
             <block type="variables_set" id="r,{JE~[NR=^EE8lhPz5[">
              <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field>
              <value name="VALUE">
               <block type="logic_boolean" id="uM?xhpM8HzkzwP#{nj|y">
                <field name="BOOL">FALSE</field>
               </block>
              </value>
              <next>
               <block type="base_time_update" id="#wo+D8w*C-j(eDF/jRIy">
                <field name="TimePassedMs" id="i;cm5J?.TgpvRVfg!E6*">timeElapsedFromPreviousFrame</field>
                <statement name="Update">
                 <block type="controls_if" id="%,#3?.8UdZh(]F$#rHHV">
                  <value name="IF0">
                   <block type="logic_negate" id="N=_k/i+n6UQJK2nP:e19">
                    <value name="BOOL">
                     <block type="variables_get" id="Y~,G`r{qES{Ij8Q_iiU*">
                      <field name="VAR" id="E;.tH+kiH]AKdVRt|L(X">gamePaused</field>
                     </block>
                    </value>
                   </block>
                  </value>
                  <statement name="DO0">
                   <block type="procedures_callnoreturn" id="e_xn{A%,|_khgI]$jW6H">
                    <mutation name="controlForwardMovement">
                     <arg name="targetList">
                     </arg>
                     <arg name="restoreHit">
                     </arg>
                    </mutation>
                    <value name="ARG0">
                     <block type="variables_get" id=":f^NLAOe?P~*apt}Bzvk">
                      <field name="VAR" id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</field>
                     </block>
                    </value>
                    <value name="ARG1">
                     <block type="logic_boolean" id="sIhhWcYF$(3UllfmZ!3q">
                      <field name="BOOL">TRUE</field>
                     </block>
                    </value>
                    <next>
                     <block type="procedures_callnoreturn" id=":Lz%)}SKVPaQA1j_xle2">
                      <mutation name="controlForwardMovement">
                       <arg name="targetList">
                       </arg>
                       <arg name="restoreHit">
                       </arg>
                      </mutation>
                      <value name="ARG0">
                       <block type="variables_get" id="f9vDN%jiHA5mp|m42ON;">
                        <field name="VAR" id=";5h%^BJh)`CAnK}F:xTC">obstacleInstances</field>
                       </block>
                      </value>
                      <value name="ARG1">
                       <block type="logic_boolean" id=")~=-7dS/8~N208S;DldT">
                        <field name="BOOL">FALSE</field>
                       </block>
                      </value>
                      <next>
                       <block type="bitbybit.babylon.mesh.setRotation" id="0zgt=771`JI%pt{0sHk`">
                        <value name="BabylonMesh">
                         <block type="variables_get" id="bbz|(BaZUNFv1zjZ+V8-">
                          <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field>
                         </block>
                        </value>
                        <value name="Rotation">
                         <block type="bitbybit.point.pointXYZ" id="4/`B_z=ou`jgm0-c-Tfv">
                          <value name="X">
                           <block type="math_number" id="4@{FV[aadV+bQ(d+a-3T">
                            <field name="NUM">0</field>
                           </block>
                          </value>
                          <value name="Y">
                           <block type="math_number" id="5NwH(SHRBvquCa8BHxcw">
                            <field name="NUM">0</field>
                           </block>
                          </value>
                          <value name="Z">
                           <block type="math_number" id=";P4~9.0Ny1YN8uh`w-6*">
                            <field name="NUM">0</field>
                           </block>
                          </value>
                         </block>
                        </value>
                        <next>
                         <block type="procedures_callnoreturn" id="[u2@Zx3?]AvHw^M{iW2n">
                          <mutation name="controlObstacleMovement">
                           <arg name="meshesToMove">
                           </arg>
                          </mutation>
                          <value name="ARG0">
                           <block type="variables_get" id="9td2X:+#idm8p0;gJOji">
                            <field name="VAR" id=";5h%^BJh)`CAnK}F:xTC">obstacleInstances</field>
                           </block>
                          </value>
                          <next>
                           <block type="procedures_callnoreturn" id="2Bq,N|)o2:.Cobc7Q2=m">
                            <mutation name="controlObstacleMovement">
                             <arg name="meshesToMove">
                             </arg>
                            </mutation>
                            <value name="ARG0">
                             <block type="variables_get" id="R!Y(+.Z;gj~*NEHO$Z^-">
                              <field name="VAR" id=")FB(QiJelx*$9Er+`uG3">obstacleColMeshes</field>
                             </block>
                            </value>
                            <next>
                             <block type="procedures_callnoreturn" id="f(fTB}e%0=C@uDSPW*1c">
                              <mutation name="controlPlaneRotations">
                               <arg name="plane">
                               </arg>
                              </mutation>
                              <value name="ARG0">
                               <block type="variables_get" id="gcqFHLpLiJ)^rpW_U,XA">
                                <field name="VAR" id="F)w_7v5!Tavx+!ln:d[L">planeMesh</field>
                               </block>
                              </value>
                              <next>
                               <block type="variables_set" id="s*y7FZw,jI{}h6U)whO{">
                                <field name="VAR" id="42j0uXu*zxT#gWpBf|mU">collisionFound</field>
                                <value name="VALUE">
                                 <block type="logic_boolean" id=":S2[}$2(zCb9fGZCPa|,">
                                  <field name="BOOL">FALSE</field>
                                 </block>
                                </value>
                                <next>
                                 <block type="variables_set" id="8XkT%XS_9jG=FzrK)XNd">
                                  <field name="VAR" id="30#%0]L$:t6Ou}288YJ,">rayToCheck</field>
                                  <value name="VALUE">
                                   <block type="bitbybit.babylon.ray.createRayFromTo" id="xqI%TVs)9p[E7.;s,CXd">
                                    <value name="From">
                                     <block type="bitbybit.babylon.mesh.getAbsolutePosition" id="~1{pCsf9Ue!_!-j[KT]O">
                                      <value name="BabylonMesh">
                                       <block type="variables_get" id="G!Knp1u%kxp{K2ory5;$">
                                        <field name="VAR" id="Z^6N%Qz;I1*UFFI1d]5M">rayStart</field>
                                       </block>
                                      </value>
                                     </block>
                                    </value>
                                    <value name="To">
                                     <block type="bitbybit.babylon.mesh.getAbsolutePosition" id="]uprkPj:oEVXa=cPDv=5">
                                      <value name="BabylonMesh">
                                       <block type="variables_get" id="k8p)Q,m0u*#mC?N*,L.2">
                                        <field name="VAR" id="-Z2ex1M1~fOr(z`/x`!G">rayEnd</field>
                                       </block>
                                      </value>
                                     </block>
                                    </value>
                                   </block>
                                  </value>
                                  <next>
                                   <block type="variables_set" id="XOQs-/gpiB;CciSl7$(#">
                                    <field name="VAR" id="@+:8_}NyQKSt3ZqRj)}z">pickResult</field>
                                    <value name="VALUE">
                                     <block type="bitbybit.babylon.pick.pickWithRay" id="[N5AFx*6Ao,bf,Y++g|7">
                                      <value name="Ray">
                                       <block type="variables_get" id="t*lM(i7rWoTl%1xct)7@">
                                        <field name="VAR" id="30#%0]L$:t6Ou}288YJ,">rayToCheck</field>
                                       </block>
                                      </value>
                                     </block>
                                    </value>
                                    <next>
                                     <block type="controls_if" id="7dcijs5=0QSrFb]oZ8t{">
                                      <value name="IF0">
                                       <block type="bitbybit.babylon.pick.hit" id="z*{V3t(60uH10P.8)o+{">
                                        <value name="PickInfo">
                                         <block type="variables_get" id="ySU3wYD`rqck@8)_M{?b">
                                          <field name="VAR" id="@+:8_}NyQKSt3ZqRj)}z">pickResult</field>
                                         </block>
                                        </value>
                                       </block>
                                      </value>
                                      <statement name="DO0">
                                       <block type="variables_set" id="HkFLc#I0V|hHu,Vta:OH">
                                        <field name="VAR" id="x1}?6sE~+;43`Nb.]z]P">hitCountPrevious</field>
                                        <value name="VALUE">
                                         <block type="variables_get" id="`?CbaRU_?=rt]1g~mu,z">
                                          <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field>
                                         </block>
                                        </value>
                                        <next>
                                         <block type="math_change" id="yK7s%|E]q~^*]l(BUSgN">
                                          <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field>
                                          <value name="DELTA">
                                           <shadow type="math_number" id="lXa1(n7?p1%:+bFoYN/L">
                                            <field name="NUM">1</field>
                                           </shadow>
                                          </value>
                                          <next>
                                           <block type="variables_set" id="9C6ima4AFWY5Dy#l=dYR">
                                            <field name="VAR" id=".UBM#mP(,U}f;{jf]Q5l">hitMesh</field>
                                            <value name="VALUE">
                                             <block type="bitbybit.babylon.pick.getPickedMesh" id="27A%I9b`p($kcRa.x^/8">
                                              <value name="PickInfo">
                                               <block type="variables_get" id="-s[S+ccKv0Zu(k$bg}:A">
                                                <field name="VAR" id="@+:8_}NyQKSt3ZqRj)}z">pickResult</field>
                                               </block>
                                              </value>
                                             </block>
                                            </value>
                                            <next>
                                             <block type="variables_set" id="JaI+aqDNgixUFrNoY!eq">
                                              <field name="VAR" id="W,]`|.USpL!Gl7lG}w8$">material</field>
                                              <value name="VALUE">
                                               <block type="bitbybit.babylon.mesh.getMaterial" id="#giI3%|%cEaLn^$mdQ!u">
                                                <value name="BabylonMesh">
                                                 <block type="variables_get" id="Z$az44Jo,//}5Y:R!QCy">
                                                  <field name="VAR" id=".UBM#mP(,U}f;{jf]Q5l">hitMesh</field>
                                                 </block>
                                                </value>
                                               </block>
                                              </value>
                                              <next>
                                               <block type="bitbybit.babylon.mesh.setPickable" id="FYB(6%PAQh*ulq?BV*2`">
                                                <value name="BabylonMesh">
                                                 <block type="variables_get" id="2l3t5{|nWK75k%R_0jaH">
                                                  <field name="VAR" id=".UBM#mP(,U}f;{jf]Q5l">hitMesh</field>
                                                 </block>
                                                </value>
                                                <value name="Pickable">
                                                 <block type="logic_boolean" id="8]Oc/)v2=TmzPt:D,f~V">
                                                  <field name="BOOL">FALSE</field>
                                                 </block>
                                                </value>
                                                <value name="IncludeChildren">
                                                 <block type="logic_boolean" id="ndZ{P15w%RzyhGlgT.QN">
                                                  <field name="BOOL">FALSE</field>
                                                 </block>
                                                </value>
                                                <next>
                                                 <block type="bitbybit.babylon.mesh.hide" id="[:i`3b|3fYLu$+Z|[U6*">
                                                  <value name="BabylonMesh">
                                                   <block type="variables_get" id="hi1xY~dmW~n9J2dijXFn">
                                                    <field name="VAR" id=".UBM#mP(,U}f;{jf]Q5l">hitMesh</field>
                                                   </block>
                                                  </value>
                                                  <value name="IncludeChildren">
                                                   <block type="logic_boolean" id="6^o5HZG77]RThsN?*E@9">
                                                    <field name="BOOL">FALSE</field>
                                                   </block>
                                                  </value>
                                                  <next>
                                                   <block type="procedures_callnoreturn" id="PbGqX4b7!HjO42Y((Q9B">
                                                    <mutation name="textOfHitCount">
                                                    </mutation>
                                                   </block>
                                                  </next>
                                                 </block>
                                                </next>
                                               </block>
                                              </next>
                                             </block>
                                            </next>
                                           </block>
                                          </next>
                                         </block>
                                        </next>
                                       </block>
                                      </statement>
                                     </block>
                                    </next>
                                   </block>
                                  </next>
                                 </block>
                                </next>
                               </block>
                              </next>
                             </block>
                            </next>
                           </block>
                          </next>
                         </block>
                        </next>
                       </block>
                      </next>
                     </block>
                    </next>
                   </block>
                  </statement>
                 </block>
                </statement>
               </block>
              </next>
             </block>
            </next>
           </block>
          </next>
         </block>
        </next>
       </block>
      </next>
     </block>
    </next>
   </block>
  </statement>
 </block>
 <block type="procedures_defnoreturn" id="xbTGs3h|q}jKf*Z7;I@6" x="3146" y="1430">
  <field name="NAME">startTimer</field>
  <comment pinned="false" h="80" w="160">Describe this function...</comment>
  <statement name="STACK">
   <block type="variables_set" id="_aiB![BY3R!F0](%[Qsl">
    <field name="VAR" id="~d$PfCHmL3-(B`$Yx1-F">timerPaused</field>
    <value name="VALUE">
     <block type="logic_boolean" id="WFZxgv+8IRPx2A5Kq$Cl">
      <field name="BOOL">FALSE</field>
     </block>
    </value>
    <next>
     <block type="variables_set" id="5mKcr+0JMs_/jCpEQo*x">
      <field name="VAR" id="$/mds]S[E2a%g6Yc,BVE">secondsGiven</field>
      <value name="VALUE">
       <block type="math_number" id="L[N!FgcuB[!$tM}Jf(ac">
        <field name="NUM">20</field>
       </block>
      </value>
      <next>
       <block type="procedures_callnoreturn" id=",m9;oCQ+OW*{NPt*Kv=v">
        <mutation name="createTimerIndicator">
        </mutation>
        <next>
         <block type="variables_set" id=".bu!FUtE6~4Fg#3IW]MJ">
          <field name="VAR" id="QJFOWq0t.:dzCgiYPM*?">handlerTimer</field>
          <value name="VALUE">
           <block type="base_time_execute_at_interval_with_handler" id="2^=gqS#X(URo)kVp?mnS">
            <value name="Interval">
             <block type="math_number" id="W:l?UxCyoq2}dYSWZeDL">
              <field name="NUM">1</field>
             </block>
            </value>
            <statement name="Then">
             <block type="procedures_callnoreturn" id="^S?}wYK1z0TLH-yAGM~M">
              <mutation name="createTimerIndicator">
              </mutation>
             </block>
            </statement>
           </block>
          </value>
         </block>
        </next>
       </block>
      </next>
     </block>
    </next>
   </block>
  </statement>
 </block>
 <block type="procedures_defnoreturn" id="E}[ZDOhYEf#^Od3l%ZJj" x="4269" y="1425">
  <field name="NAME">textOfHitCount</field>
  <comment pinned="false" h="80" w="160">Describe this function...</comment>
  <statement name="STACK">
   <block type="controls_if" id="3jt{]^HwVJU_SwcE3LQ)">
    <value name="IF0">
     <block type="logic_compare" id="Q%L$1(MEJi1^I}8`0H$D">
      <field name="OP">GT</field>
      <value name="A">
       <block type="variables_get" id="$R`00Dz|cX@;]K}Ck8@x">
        <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field>
       </block>
      </value>
      <value name="B">
       <block type="variables_get" id=",Hq^P8][3W`F:*?MqE}d">
        <field name="VAR" id="x1}?6sE~+;43`Nb.]z]P">hitCountPrevious</field>
       </block>
      </value>
     </block>
    </value>
    <statement name="DO0">
     <block type="base_time_then" id="w;DvmzHpTSHI}swdZY5u">
      <field name="Result" id="W{L4]JR8wmj_O^DxvM+7">resultingTextMesh</field>
      <value name="Promise">
       <block type="bitbybit.draw.drawAnyAsync" id="Zl+A#HIW`*mJWJ3:ftP;">
        <value name="Entity">
         <block type="bitbybit.jscad.text.cylindricalText" id="e|WRE@FtGFT:pA5yME_g">
          <value name="Text">
           <block type="text_join" id="hVjp)ej$S8Brez!0I=n-">
            <mutation items="1">
            </mutation>
            <value name="ADD0">
             <block type="variables_get" id="ANy(fP0y09K*1/bEm*hk">
              <field name="VAR" id="Qcdx,zyv.,|5{Pv,efhl">hitCount</field>
             </block>
            </value>
           </block>
          </value>
          <value name="ExtrusionHeight">
           <block type="math_number" id="#2?DbV?]Ip9#e8/wxT9{">
            <field name="NUM">0.2</field>
           </block>
          </value>
          <value name="ExtrusionSize">
           <block type="math_number" id="w#gQI=#qWwg=v#~sjZG(">
            <field name="NUM">0.1</field>
           </block>
          </value>
          <value name="Segments">
           <block type="math_number" id="=@k%;GEDn5.BV[MFFs?`">
            <field name="NUM">12</field>
           </block>
          </value>
          <value name="XOffset">
           <block type="math_number" id="3U,LoosoJ`k2^Y4
Plans & Pricing

Choose Your Plan

Editor plans for 3D development, API keys for server-side CAD algorithms

B2B

ENTERPRISE

Custom pricing

Custom software development, dedicated servers & CAD automation at scale.

CAD Automation & Software
  • Custom software development
  • Cloud CAD automation pipelines
  • 3D configurators (STEP & GLTF)
  • Batch export jobs
  • Custom algorithms & deployment
Infrastructure & Support
  • Custom compute allocation
  • Dedicated / VPS server tenants
  • Long-running computation jobs
  • Custom upload limits & overage
  • SLA & premium support