Script: Flowers and a heart

Flowers and a heart picture
Type
Blockly logo indicatorblockly
Date Created
Jul 23, 2024, 11:48:52 AM
Last Edit Date
Oct 18, 2024, 11:37:21 AM

Project Information

3D Greetings card

View Full Project

Script Code

<xml xmlns="https://developers.google.com/blockly/xml">
 <variables>
  <variable id="W%VyM?WbBgr49`?[)ieN">scannedMesh</variable>
  <variable id="qgz32{%8teL/]{|4):a-">heartWire</variable>
  <variable id="rKNj:rG{A4Z]]XND{W|H">heartWireOffset</variable>
  <variable id="][Pwv0Oa+m@D%o$_sf*m">heartWireOffset2</variable>
  <variable id="i4tzw8G^?,V4.qZ@bYF4">heartFillet</variable>
  <variable id="uwsSA#K!y!if|;;ThqEw">heart</variable>
  <variable id="bV6]mw73~~RUC,gOVuX5">heartBase</variable>
  <variable id="TnE+}#9cf|WQHiEB6UZA">rotationSpeed</variable>
  <variable id="ZqZ0Bs!q.__WP=ku[XS=">timeElapsedFromPreviousFrame</variable>
 </variables>
 <block type="base_time_async_context" id="GS8=j/-oL3IiE|:xar-#" x="-814" y="-1486">
  <statement name="Then">
   <block type="bitbybit.babylon.scene.enableSkybox" id="hu/7E[35]c5SQ3M@wMRP">
    <value name="Skybox">
     <block type="bitbybit.babylon.enums.skyboxEnum" id=",1s$5o$=ud-hg{K4,5EH">
      <field name="bitbybit.babylon.enums.skyboxEnum">'clearSky'</field>
     </block>
    </value>
    <value name="Size">
     <block type="math_number" id="r!wVB[peZ9}G3XxR1Udh">
      <field name="NUM">1000</field>
     </block>
    </value>
    <value name="Blur">
     <block type="math_number" id="TKcq02T?8XV9p^.ycuX@">
      <field name="NUM">0.1</field>
     </block>
    </value>
    <value name="EnvironmentIntensity">
     <block type="math_number" id="ZkZ_D$K6_F;~C|c0gc=n">
      <field name="NUM">0.7</field>
     </block>
    </value>
    <next>
     <block type="bitbybit.babylon.scene.adjustActiveArcRotateCamera" id="VGGUO+360Bj%NLwqV`Ha">
      <value name="Position">
       <block type="bitbybit.point.pointXYZ" id=",c|_-JAqdt~{v%2VJ5E9">
        <value name="X">
         <block type="math_number" id="O-K_H72Js1B*87;3cu5q">
          <field name="NUM">3</field>
         </block>
        </value>
        <value name="Y">
         <block type="math_number" id="`vg@d*arSL-o/|fYp0(_">
          <field name="NUM">2</field>
         </block>
        </value>
        <value name="Z">
         <block type="math_number" id="8z03lnDR.$0usBUJEFqi">
          <field name="NUM">3</field>
         </block>
        </value>
       </block>
      </value>
      <value name="LookAt">
       <block type="bitbybit.point.pointXYZ" id="F|)yoKKR09twMEaaYDeo">
        <value name="X">
         <block type="math_number" id="L=GV^--6|j_fhRA5nN!.">
          <field name="NUM">0</field>
         </block>
        </value>
        <value name="Y">
         <block type="math_number" id="5i2~^2Gm__YasrAbPHfb">
          <field name="NUM">0.3</field>
         </block>
        </value>
        <value name="Z">
         <block type="math_number" id="And_EI*G}HV.,9_`F8#c">
          <field name="NUM">0</field>
         </block>
        </value>
       </block>
      </value>
      <value name="LowerBetaLimit">
       <block type="math_number" id="/fcEz/`jA]+~Vfv:dUD;">
        <field name="NUM">1</field>
       </block>
      </value>
      <value name="UpperBetaLimit">
       <block type="math_number" id="n6op`2NDGbVz0iDY76}`">
        <field name="NUM">179</field>
       </block>
      </value>
      <value name="AngularSensibilityX">
       <block type="math_number" id="A+[dFks][,wQY,[n*?5i">
        <field name="NUM">1000</field>
       </block>
      </value>
      <value name="AngularSensibilityY">
       <block type="math_number" id="2^8[s-@|?6Oz4g6+U8{{">
        <field name="NUM">1000</field>
       </block>
      </value>
      <value name="MaxZ">
       <block type="math_number" id="8VoP/?*W%tl,v8kzAn--">
        <field name="NUM">1000</field>
       </block>
      </value>
      <value name="PanningSensibility">
       <block type="math_number" id="=|_.cmtZ;=!]BJ1hZ+~S">
        <field name="NUM">1000</field>
       </block>
      </value>
      <value name="WheelPrecision">
       <block type="math_number" id="83/[N2!8Y~aD~*/lg+fb">
        <field name="NUM">3</field>
       </block>
      </value>
      <next>
       <block type="bitbybit.babylon.scene.drawDirectionalLightNoReturn" id=":}Y-)32.4qVkZ`s(n,1/">
        <value name="Direction">
         <block type="bitbybit.vector.vectorXYZ" id="oL+|JS@zF;lIBtcJVA=C">
          <value name="X">
           <block type="math_number" id="r_/Is1YlJN_2k%oht(GL">
            <field name="NUM">-100</field>
           </block>
          </value>
          <value name="Y">
           <block type="math_number" id="KfO|r{Vm,oo4K#kCRr*y">
            <field name="NUM">-100</field>
           </block>
          </value>
          <value name="Z">
           <block type="math_number" id="-1t:]h-a|3g-sIlxeewo">
            <field name="NUM">-100</field>
           </block>
          </value>
         </block>
        </value>
        <value name="Intensity">
         <block type="math_number" id="=tb0atSb)l2Q-,Yfy4x1">
          <field name="NUM">3</field>
         </block>
        </value>
        <value name="Diffuse">
         <block type="colour_picker" id="Ga]s~vO*e~]Js8oM;Al~">
          <field name="COLOUR">#ffffff</field>
         </block>
        </value>
        <value name="Specular">
         <block type="colour_picker" id="@i{HWOE/S?d3c$e4[9x5">
          <field name="COLOUR">#ffffff</field>
         </block>
        </value>
        <value name="ShadowGeneratorMapSize">
         <block type="math_number" id="#,M`v##J:wQSS$UjOe(F">
          <field name="NUM">1024</field>
         </block>
        </value>
        <value name="EnableShadows">
         <block type="logic_boolean" id="On+w1Kzm[`5bmM^zc@!J">
          <field name="BOOL">TRUE</field>
         </block>
        </value>
        <value name="ShadowDarkness">
         <block type="math_number" id="%M}2/:UErIyzPE!on=V!">
          <field name="NUM">0</field>
         </block>
        </value>
        <next>
         <block type="variables_set" id="+^0s/cgn:,JS-wV%@`c5">
          <field name="VAR" id="W%VyM?WbBgr49`?[)ieN">scannedMesh</field>
          <value name="VALUE">
           <block type="base_time_await_return" id="LFe39J$060Yze)NO[GIA">
            <value name="Promise">
             <block type="bitbybit.babylon.gaussianSplatting.create" id="/-r[M[jo7hj)w(eRrG,x">
              <value name="Url">
               <block type="text" id="!dHi+sy!Be2xoB~Difk1">
                <field name="TEXT">https://firebasestorage.googleapis.com/v0/b/bit-by-bit-prod.appspot.com/o/users%2FyVqNAFXmieX0iAkdP6wAz5BJ4X82%2Fprojects%2Fzc4uSjR0Xn3FHVV3IESh%2Fassets%2Fflowers.splat?alt=media&amp;token=72211175-0d81-426e-b076-d935c6b64af5</field>
               </block>
              </value>
             </block>
            </value>
           </block>
          </value>
          <next>
           <block type="variables_set" id="%3]-0Kd=(armSVI_2!6?">
            <field name="VAR" id="qgz32{%8teL/]{|4):a-">heartWire</field>
            <value name="VALUE">
             <block type="bitbybit.occt.shapes.wire.createHeartWire" id="UG}C9e,{g2?CMf?Yvakv">
              <value name="Center">
               <block type="bitbybit.point.pointXYZ" id="fp=P:0v^Jre.Au}BSs[I">
                <value name="X">
                 <block type="math_number" id="+?1a})}+]!WDT(1f[$^{">
                  <field name="NUM">0</field>
                 </block>
                </value>
                <value name="Y">
                 <block type="math_number" id="#+!U*^APzt6J,w~~qf(C">
                  <field name="NUM">0</field>
                 </block>
                </value>
                <value name="Z">
                 <block type="math_number" id="e5lj.Pq8V8i~#f)iNhV?">
                  <field name="NUM">0</field>
                 </block>
                </value>
               </block>
              </value>
              <value name="Direction">
               <block type="bitbybit.vector.vectorXYZ" id="Idy4A5ePw@hGE-[Mg7Ve">
                <value name="X">
                 <block type="math_number" id="i#_%n`WK%C[ekUgy|3vG">
                  <field name="NUM">0</field>
                 </block>
                </value>
                <value name="Y">
                 <block type="math_number" id="~?T=w]$bRuW+lIS0,mLI">
                  <field name="NUM">1</field>
                 </block>
                </value>
                <value name="Z">
                 <block type="math_number" id="JDk1$l*I-#`qg^[=F-as">
                  <field name="NUM">0</field>
                 </block>
                </value>
               </block>
              </value>
              <value name="Rotation">
               <block type="math_number" id="W3*30c@Qt9PSuA_Q9tLV">
                <field name="NUM">0</field>
               </block>
              </value>
              <value name="SizeApprox">
               <block type="math_number" id="WIt,%+Df?(m|M/ypR.4B">
                <field name="NUM">1.5</field>
               </block>
              </value>
             </block>
            </value>
            <next>
             <block type="variables_set" id="#xD{{PCE)$um;:#J-PgZ">
              <field name="VAR" id="rKNj:rG{A4Z]]XND{W|H">heartWireOffset</field>
              <value name="VALUE">
               <block type="bitbybit.occt.operations.offset" id="Z]Sh?)s8rJgeCFytb9m-">
                <value name="Shape">
                 <block type="variables_get" id="?{6;pBTQ{cWQPXP[rCI7">
                  <field name="VAR" id="qgz32{%8teL/]{|4):a-">heartWire</field>
                 </block>
                </value>
                <value name="Distance">
                 <block type="math_number" id="u9p_ikS7D9c`ssgdghaL">
                  <field name="NUM">0.2</field>
                 </block>
                </value>
                <value name="Tolerance">
                 <block type="math_number" id="hOIVEPfMGWu)gG)khic6">
                  <field name="NUM">0.1</field>
                 </block>
                </value>
               </block>
              </value>
              <next>
               <block type="variables_set" id="7:LOLbmVGiu(^0G=(/H%">
                <field name="VAR" id="][Pwv0Oa+m@D%o$_sf*m">heartWireOffset2</field>
                <value name="VALUE">
                 <block type="bitbybit.occt.operations.offset" id="Ua]#-|9)qptfa]qL5r})">
                  <value name="Shape">
                   <block type="variables_get" id="6%CiW|,J3qe0il^Y5OL]">
                    <field name="VAR" id="qgz32{%8teL/]{|4):a-">heartWire</field>
                   </block>
                  </value>
                  <value name="Distance">
                   <block type="math_number" id="fe/9)yqsE}#vnWjZ?72-">
                    <field name="NUM">0.3</field>
                   </block>
                  </value>
                  <value name="Tolerance">
                   <block type="math_number" id="7q5918[8%lgO6}Cr~dRP">
                    <field name="NUM">0.1</field>
                   </block>
                  </value>
                 </block>
                </value>
                <next>
                 <block type="variables_set" id="[+S*Aa|36xlJk:Sx[,sV">
                  <field name="VAR" id="i4tzw8G^?,V4.qZ@bYF4">heartFillet</field>
                  <value name="VALUE">
                   <block type="bitbybit.occt.fillets.filletEdges" id="!G5r[Qba:K*.(yuxL/v%">
                    <value name="Shape">
                     <block type="bitbybit.occt.operations.extrude" id="Vb:10cL7YvBu1sVhv|%2">
                      <value name="Shape">
                       <block type="bitbybit.occt.shapes.face.createFaceFromWires" id="I16H.;[0gs0*B)16kIR+">
                        <value name="Shapes">
                         <block type="lists_create_with" id="j2RfHMBSW4Xx[{BzL8(C">
                          <mutation items="2">
                          </mutation>
                          <value name="ADD0">
                           <block type="variables_get" id="Yd/dt=KHJL*NP+jx3by]">
                            <field name="VAR" id="rKNj:rG{A4Z]]XND{W|H">heartWireOffset</field>
                           </block>
                          </value>
                          <value name="ADD1">
                           <block type="bitbybit.occt.shapes.wire.reversedWire" id="_d{zlQ6.5pc$wB|^WzmA">
                            <value name="Shape">
                             <block type="variables_get" id="Z$Am*k(oUnURn.oA/0_4">
                              <field name="VAR" id="qgz32{%8teL/]{|4):a-">heartWire</field>
                             </block>
                            </value>
                           </block>
                          </value>
                         </block>
                        </value>
                        <value name="Planar">
                         <block type="logic_boolean" id="z;LX)8VUiEZ7)rp(?4a2">
                          <field name="BOOL">TRUE</field>
                         </block>
                        </value>
                       </block>
                      </value>
                      <value name="Direction">
                       <block type="bitbybit.vector.vectorXYZ" id="|=$aGO=EnqMUD}UTYKt]">
                        <value name="X">
                         <block type="math_number" id="roJ3Q/j[OHw7pA,tTS7|">
                          <field name="NUM">0</field>
                         </block>
                        </value>
                        <value name="Y">
                         <block type="math_number" id="|Dw){.T*@-E8?4`=(*CG">
                          <field name="NUM">0.2</field>
                         </block>
                        </value>
                        <value name="Z">
                         <block type="math_number" id="YK0r,Bi@AH0j*[Yd#HIe">
                          <field name="NUM">0</field>
                         </block>
                        </value>
                       </block>
                      </value>
                     </block>
                    </value>
                    <value name="Radius">
                     <block type="math_number" id="^K7F,Q)rL*_Hr=*3?8r#">
                      <field name="NUM">0.06</field>
                     </block>
                    </value>
                   </block>
                  </value>
                  <next>
                   <block type="variables_set" id="+c!L;Y1s?=K}OW`%W26Z">
                    <field name="VAR" id="uwsSA#K!y!if|;;ThqEw">heart</field>
                    <value name="VALUE">
                     <block type="base_time_await_return" id="rI^haxrw,RB$JHkcqaG:">
                      <value name="Promise">
                       <block type="bitbybit.draw.drawAnyAsync" id="x@e%1lUTX3`b;Lw}qEPa">
                        <value name="Entity">
                         <block type="variables_get" id="?FAKxHZ^5!,[e{YKmF[?">
                          <field name="VAR" id="i4tzw8G^?,V4.qZ@bYF4">heartFillet</field>
                         </block>
                        </value>
                        <value name="Options">
                         <block type="bitbybit.draw.optionsOcctShapeSimple" id="#*Fgdbyc{k(aGLqnPi$z">
                          <value name="Precision">
                           <block type="math_number" id="Q{_N!M8D:FI]Ns=^joxm">
                            <field name="NUM">0.002</field>
                           </block>
                          </value>
                          <value name="DrawFaces">
                           <block type="logic_boolean" id="M-h/[BWlC*~sl-,8$)aP">
                            <field name="BOOL">TRUE</field>
                           </block>
                          </value>
                          <value name="FaceColour">
                           <block type="colour_picker" id="hUet/.7og0a=T;5QkMdC">
                            <field name="COLOUR">#ff0000</field>
                           </block>
                          </value>
                          <value name="DrawEdges">
                           <block type="logic_boolean" id="qK%:_+0QR@|9)e%^z44Y">
                            <field name="BOOL">FALSE</field>
                           </block>
                          </value>
                          <value name="EdgeColour">
                           <block type="colour_picker" id="?nkRjB-${73c77TdSj;y">
                            <field name="COLOUR">#ffffff</field>
                           </block>
                          </value>
                          <value name="EdgeWidth">
                           <block type="math_number" id="gCqV3P|Z}X`.TW%F6`hC">
                            <field name="NUM">2</field>
                           </block>
                          </value>
                         </block>
                        </value>
                       </block>
                      </value>
                     </block>
                    </value>
                    <next>
                     <block type="variables_set" id="|PigQ8SXFIE3,H[6;gdz">
                      <field name="VAR" id="bV6]mw73~~RUC,gOVuX5">heartBase</field>
                      <value name="VALUE">
                       <block type="base_time_await_return" id="9@_k(U9y@xIVd[Y2=Fg$">
                        <value name="Promise">
                         <block type="bitbybit.draw.drawAnyAsync" id="c6DM(]pcEWoqo(1b,RZn">
                          <value name="Entity">
                           <block type="bitbybit.occt.shapes.face.createFaceFromWire" id="_Vn-9!`5GjuJEY6^D:WS">
                            <value name="Shape">
                             <block type="variables_get" id="SdUB6q_3.M(I.)?E7y+h">
                              <field name="VAR" id="][Pwv0Oa+m@D%o$_sf*m">heartWireOffset2</field>
                             </block>
                            </value>
                            <value name="Planar">
                             <block type="logic_boolean" id="GF{Wesl7.vI.x@l#WMkG">
                              <field name="BOOL">TRUE</field>
                             </block>
                            </value>
                           </block>
                          </value>
                          <value name="Options">
                           <block type="bitbybit.draw.optionsOcctShapeSimple" id="ZioJJ}Ufd6815d6L!dVR">
                            <value name="Precision">
                             <block type="math_number" id="Mzxfb`;aB5Qq])-_7VWN">
                              <field name="NUM">0.002</field>
                             </block>
                            </value>
                            <value name="DrawFaces">
                             <block type="logic_boolean" id="-i=hA8)(.5Ds5u=:J$/T">
                              <field name="BOOL">TRUE</field>
                             </block>
                            </value>
                            <value name="FaceColour">
                             <block type="colour_picker" id="87?$6NCo?31B*4lFb(Be">
                              <field name="COLOUR">#000000</field>
                             </block>
                            </value>
                            <value name="DrawEdges">
                             <block type="logic_boolean" id="g*6QTO4X!X^{cW9npZkx">
                              <field name="BOOL">FALSE</field>
                             </block>
                            </value>
                            <value name="EdgeColour">
                             <block type="colour_picker" id="gnk$k]wEwux3tOl+zAG2">
                              <field name="COLOUR">#ffffff</field>
                             </block>
                            </value>
                            <value name="EdgeWidth">
                             <block type="math_number" id="qJ9BbFk[Oh`npj@gt?~v">
                              <field name="NUM">2</field>
                             </block>
                            </value>
                           </block>
                          </value>
                         </block>
                        </value>
                       </block>
                      </value>
                      <next>
                       <block type="variables_set" id="ur%z}^PbU;y?/g2FwrpC">
                        <field name="VAR" id="TnE+}#9cf|WQHiEB6UZA">rotationSpeed</field>
                        <value name="VALUE">
                         <block type="math_number" id="q,ip0(G:.Ae~ycBnRjE#">
                          <field name="NUM">0.2</field>
                         </block>
                        </value>
                        <next>
                         <block type="base_time_update" id="NCv[^Xk^mXh`C;eG3`hR">
                          <field name="TimePassedMs" id="ZqZ0Bs!q.__WP=ku[XS=">timeElapsedFromPreviousFrame</field>
                          <statement name="Update">
                           <block type="bitbybit.babylon.mesh.yaw" id="bg$}Zj40F{n%pwpuI6cW">
                            <value name="BabylonMesh">
                             <block type="variables_get" id="Yq_/XR.U7HSzE#vfVgEC">
                              <field name="VAR" id="W%VyM?WbBgr49`?[)ieN">scannedMesh</field>
                             </block>
                            </value>
                            <value name="Rotate">
                             <block type="variables_get" id="cw)~4!Xl|40(MiL5^|Vt">
                              <field name="VAR" id="TnE+}#9cf|WQHiEB6UZA">rotationSpeed</field>
                             </block>
                            </value>
                            <next>
                             <block type="bitbybit.babylon.mesh.yaw" id="pG8dzcg~^d*4B/[}fm`[">
                              <value name="BabylonMesh">
                               <block type="variables_get" id="}^L414-rldPNtFqJV@DD">
                                <field name="VAR" id="uwsSA#K!y!if|;;ThqEw">heart</field>
                               </block>
                              </value>
                              <value name="Rotate">
                               <block type="variables_get" id="`3SJpAsXLn]8|SF8[[TD">
                                <field name="VAR" id="TnE+}#9cf|WQHiEB6UZA">rotationSpeed</field>
                               </block>
                              </value>
                              <next>
                               <block type="bitbybit.babylon.mesh.yaw" id="G)b!0W*Chm_dn|g3yJHS">
                                <value name="BabylonMesh">
                                 <block type="variables_get" id="|WVeI55iI%h5DWnu{,m*">
                                  <field name="VAR" id="bV6]mw73~~RUC,gOVuX5">heartBase</field>
                                 </block>
                                </value>
                                <value name="Rotate">
                                 <block type="variables_get" id="[laM-{R2]VW_{=,tCth)">
                                  <field name="VAR" id="TnE+}#9cf|WQHiEB6UZA">rotationSpeed</field>
                                 </block>
                                </value>
                               </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>
  </statement>
 </block>
</xml>