<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable id="9qK{46BEa[%JNof32beo">drawOptions</variable>
<variable id="`UBxs9A?N(Eple.[DQS^">text3d</variable>
<variable id="CcPj9{IDRaxvkk.a8)#:">charactersMesh</variable>
<variable id="5/%:eo19SOBSNA!-e.V}">characterMeshes</variable>
<variable id="T2J%evl-rz3f[Gdlea=%">characterCenterPoints</variable>
<variable id="sH2:hn]WtsBwZ#YV_4[7">timeElapsedFromPreviousFrame</variable>
<variable id="=(B2GJpx]4xG-_S?QIx|">index</variable>
<variable id="q!u?2#]An#5vQf^6.1z;">characterMesh</variable>
<variable id="G$UONlj.bXPO$-|R2h!=">currentPoint</variable>
</variables>
<block type="bitbybit.babylon.scene.drawPointLightNoReturn" id="NoK_z0B_jEt`LvYWXE[r" x="215" y="-297">
<value name="Position">
<block type="bitbybit.point.pointXYZ" id="}{@c/(xMqUpi`3J`*aj@">
<value name="X">
<block type="math_number" id=":tk-IQtF2|/nVPf3#ML9">
<field name="NUM">3</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="rm)=1Zx(+sWcM8hEv8J-">
<field name="NUM">3</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="XZbiwRjI6mXPk*HV3K7{">
<field name="NUM">-5</field>
</block>
</value>
</block>
</value>
<value name="Intensity">
<block type="math_number" id="_q;vl*L^B(B2,,uV1Tiv">
<field name="NUM">1000</field>
</block>
</value>
<value name="Diffuse">
<block type="colour_picker" id=".c_h-=^P}Uw:={`mms#3">
<field name="COLOUR">#ffffff</field>
</block>
</value>
<value name="Specular">
<block type="colour_picker" id=",F9ldas7Rs^:)9e3zEPn">
<field name="COLOUR">#ffffff</field>
</block>
</value>
<value name="Radius">
<block type="math_number" id="KdVUr8s,%f*_f7kSQg}N">
<field name="NUM">0</field>
</block>
</value>
<value name="ShadowGeneratorMapSize">
<block type="math_number" id="x!QasL;{eb;m=6Gr$/~8">
<field name="NUM">1024</field>
</block>
</value>
<value name="EnableShadows">
<block type="logic_boolean" id="%vOk`!u1fIH6k]Q8Npf3">
<field name="BOOL">TRUE</field>
</block>
</value>
<value name="ShadowDarkness">
<block type="math_number" id="qRjuVYI@rGsVfpF5{^s2">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="bitbybit.babylon.scene.drawPointLightNoReturn" id="0dCBd!FlYqZbv2E+}]Tl">
<value name="Position">
<block type="bitbybit.point.pointXYZ" id="~@@%)^qwQqfMn1Wx0;GD">
<value name="X">
<block type="math_number" id=".)|bi(fboCbo4O+$n/BT">
<field name="NUM">3</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="~lq_tqFAu]N_h:QK{11,">
<field name="NUM">3</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="CfMfR8.Soe1@UX}{=v+A">
<field name="NUM">5</field>
</block>
</value>
</block>
</value>
<value name="Intensity">
<block type="math_number" id="N7zmU7WZ-#+;AD3#Khxa">
<field name="NUM">1000</field>
</block>
</value>
<value name="Diffuse">
<block type="colour_picker" id=":orEs,uDj($b4P=0UQ9]">
<field name="COLOUR">#ffffff</field>
</block>
</value>
<value name="Specular">
<block type="colour_picker" id="?bXsNXb@tTMJtFCoDv8|">
<field name="COLOUR">#ffffff</field>
</block>
</value>
<value name="Radius">
<block type="math_number" id="KK~wXcaablu84SU?S9Cm">
<field name="NUM">0</field>
</block>
</value>
<value name="ShadowGeneratorMapSize">
<block type="math_number" id="`~_bDDO11|3ZGn9(yNX/">
<field name="NUM">1024</field>
</block>
</value>
<value name="EnableShadows">
<block type="logic_boolean" id="P!/rm|5[@{C0X}yv#A#%">
<field name="BOOL">TRUE</field>
</block>
</value>
<value name="ShadowDarkness">
<block type="math_number" id="[rsQmjyu$nTlnTmhBJh]">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="variables_set" id=")JYIGgB25DUBJ.m#kzHr">
<field name="VAR" id="9qK{46BEa[%JNof32beo">drawOptions</field>
<value name="VALUE">
<block type="bitbybit.draw.optionsOcctShapeSimple" id="Pj2S0MW_G[2):qK]VZB{">
<value name="Precision">
<block type="math_number" id="jow+Oy=EF.mGu+A=r[MH">
<field name="NUM">0.01</field>
</block>
</value>
<value name="DrawFaces">
<block type="logic_boolean" id="G[f~DHOyW%NZTrJEaEq@">
<field name="BOOL">TRUE</field>
</block>
</value>
<value name="FaceColour">
<block type="colour_picker" id="#(sc+=l80YI|9K2Q~?xu">
<field name="COLOUR">#ff9966</field>
</block>
</value>
<value name="DrawEdges">
<block type="logic_boolean" id="AQ)mytd!1BdX=L:?JnI~">
<field name="BOOL">TRUE</field>
</block>
</value>
<value name="EdgeColour">
<block type="colour_picker" id="0l$Xf?COaiZ8,y6-b}-,">
<field name="COLOUR">#ffffff</field>
</block>
</value>
<value name="EdgeWidth">
<block type="math_number" id="YCEqZKug3W?wh+:Q`ry]">
<field name="NUM">2</field>
</block>
</value>
</block>
</value>
<next>
<block type="bitbybit.babylon.scene.backgroundColour" id="7Bt)-?.Be%zwN#8SggtC">
<value name="Colour">
<block type="colour_picker" id="_cN]eU8m.-C}H?Hb}gJI">
<field name="COLOUR">#ffffff</field>
</block>
</value>
<next>
<block type="base_time_async_context" id="w9Dov,~W)P$gp?ui$^1K">
<statement name="Then">
<block type="bitbybit.draw.drawAnyAsyncNoReturn" id="a|y^3*{S!lK~a.y;R*EF">
<value name="Entity">
<block type="bitbybit.occt.shapes.face.createCircleFace" id="gLbVI{j}/r(%:?2N|X($">
<value name="Radius">
<block type="math_number" id="CkbCw(xu7%lRr]w}gU3w">
<field name="NUM">20</field>
</block>
</value>
<value name="Center">
<block type="bitbybit.point.pointXYZ" id="*rZx+a%(B]uu!5kzvNZ!">
<value name="X">
<block type="math_number" id="i{Tj]LG@~j8QKYyra6.8">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="%~eu2:*AV+H5$@_FcU2#">
<field name="NUM">-3</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="9Ifk^30a.Ie0[#uzJKz2">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<value name="Direction">
<block type="bitbybit.vector.vectorXYZ" id="DhkV%rV]6Gaq_Sy=a=nU">
<value name="X">
<block type="math_number" id="-mnslC^},G8NzL?kw^F4">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="akkZCs^bAN`_wBY!SSl(">
<field name="NUM">1</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="0n8T*cEntW+Ok3xog3DC">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="Options">
<block type="variables_get" id="Ot(~CX!Ov*DkA@I0xtEq">
<field name="VAR" id="9qK{46BEa[%JNof32beo">drawOptions</field>
</block>
</value>
<next>
<block type="variables_set" id=".uwkyaYB*mH-2ZDs`7-1">
<field name="VAR" id="`UBxs9A?N(Eple.[DQS^">text3d</field>
<value name="VALUE">
<block type="base_time_await_return" id="XWO{byVi|Y,R:a0/v^fQ">
<value name="Promise">
<block type="bitbybit.advanced.text3d.create" id="AqHY=K+Y`ddKL[g_|!?l">
<value name="Text">
<block type="text" id="oavF0H:Y|yB0*r{ieG$!">
<field name="TEXT">b i t b y b i t . d e v</field>
</block>
</value>
<value name="FontType">
<block type="bitbybit.advanced.text3d.fontsEnum" id="(z6,kx$kK[Le~G=M{xLQ">
<field name="bitbybit.advanced.text3d.fontsEnum">'Tektur'</field>
</block>
</value>
<value name="FontVariant">
<block type="bitbybit.advanced.text3d.fontVariantsEnum" id="Tz;)2Yzkg@=o*_NfL*H0">
<field name="bitbybit.advanced.text3d.fontVariantsEnum">'Regular'</field>
</block>
</value>
<value name="FontSize">
<block type="math_number" id="Xt@T-tzXXE.dnoAl*m4[">
<field name="NUM">2</field>
</block>
</value>
<value name="Height">
<block type="math_number" id="c*f;.=3_zoU2wG4%DT$T">
<field name="NUM">0.7</field>
</block>
</value>
<value name="Rotation">
<block type="math_number" id="Z%(4msks$0k%tJVJ:E)h">
<field name="NUM">-90</field>
</block>
</value>
<value name="Origin">
<block type="bitbybit.vector.vectorXYZ" id="W:w3wFgf92DJNXkAzmU2">
<value name="X">
<block type="math_number" id="iPV;Qy^+^U0}7.iW6Q1N">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="Cza@k.ba.g=i.Jg!{%%Q">
<field name="NUM">0</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="giBWu*lay@r_39N*8nr7">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<value name="Direction">
<block type="bitbybit.vector.vectorXYZ" id=",%+q}`+a#@45)P,dLVjj">
<value name="X">
<block type="math_number" id="(/Cr]WWHUAdWY2OEk^aN">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id=".7npkR!{A+9CZl7B#L#a">
<field name="NUM">0</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="J06xR+ts[933H=zPr;)W">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
<value name="OriginAlignment">
<block type="bitbybit.advanced.text3d.recAlignmentEnum" id="H#`+jSEze4CgVYsFd/ot">
<field name="bitbybit.advanced.text3d.recAlignmentEnum">'centerMiddle'</field>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id=":|{0Y^JG)|h]|D5K@`ZL">
<field name="VAR" id="CcPj9{IDRaxvkk.a8)#:">charactersMesh</field>
<value name="VALUE">
<block type="base_time_await_return" id="19]d52Vriv{D/c^n;!$Y">
<value name="Promise">
<block type="bitbybit.draw.drawAnyAsync" id="NKFz4C5pB3wkYQzM:rXJ">
<value name="Entity">
<block type="bitbybit.advanced.text3d.getCharacterShapes" id="{!dz+m/Oeu=?kE=jMJ6[">
<value name="Model">
<block type="variables_get" id="pp#(f,()mV?YjT6Q@#[^">
<field name="VAR" id="`UBxs9A?N(Eple.[DQS^">text3d</field>
</block>
</value>
</block>
</value>
<value name="Options">
<block type="variables_get" id="jj?zrU.SuanQ~eFg:@/p">
<field name="VAR" id="9qK{46BEa[%JNof32beo">drawOptions</field>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="mTcf~2GXGHRzn9hSU$T`">
<field name="VAR" id="5/%:eo19SOBSNA!-e.V}">characterMeshes</field>
<value name="VALUE">
<block type="bitbybit.babylon.mesh.getChildMeshes" id="6|e3bHCw{m,joj,K(ls@">
<value name="BabylonMesh">
<block type="variables_get" id=".}L8!iUJnCvJ8pf7-i9}">
<field name="VAR" id="CcPj9{IDRaxvkk.a8)#:">charactersMesh</field>
</block>
</value>
<value name="DirectDescendantsOnly">
<block type="logic_boolean" id="O3xo*]tTybl`y57%W,7`">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="9kNE+R#4ZY?@gaPV2-Q5">
<field name="VAR" id="T2J%evl-rz3f[Gdlea=%">characterCenterPoints</field>
<value name="VALUE">
<block type="bitbybit.advanced.text3d.getCharacterCenterCoordinates" id="9,e1#~qW#O4kksPE$-[q">
<value name="Model">
<block type="variables_get" id="4yo8ueI.Pu(o]z9]5v`b">
<field name="VAR" id="`UBxs9A?N(Eple.[DQS^">text3d</field>
</block>
</value>
</block>
</value>
<next>
<block type="base_time_update" id="p6OlA7OPq-omgl)::+2*">
<field name="TimePassedMs" id="sH2:hn]WtsBwZ#YV_4[7">timeElapsedFromPreviousFrame</field>
<statement name="Update">
<block type="variables_set" id="A(REyOQU(81%f!5{(cl(">
<field name="VAR" id="=(B2GJpx]4xG-_S?QIx|">index</field>
<value name="VALUE">
<block type="math_number" id="S1P}PO,.b-,bVj$Al$;`">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="controls_forEach" id="OSkDr+TVl;xUY/5SIU]f">
<field name="VAR" id="q!u?2#]An#5vQf^6.1z;">characterMesh</field>
<value name="LIST">
<block type="variables_get" id="He2I`PaVjq}9G!]73N}]">
<field name="VAR" id="5/%:eo19SOBSNA!-e.V}">characterMeshes</field>
</block>
</value>
<statement name="DO">
<block type="variables_set" id="GIm:c#^CAsIs~^ip~+:~">
<field name="VAR" id="G$UONlj.bXPO$-|R2h!=">currentPoint</field>
<value name="VALUE">
<block type="bitbybit.lists.getItem" id="A~o0,^_oDn[^;`Rvuj@]">
<value name="List">
<block type="variables_get" id="X#0L~?D9,UL_XH1i%;9E">
<field name="VAR" id="T2J%evl-rz3f[Gdlea=%">characterCenterPoints</field>
</block>
</value>
<value name="Index">
<block type="variables_get" id="C.@7FCPN9P|@65)%xpxq">
<field name="VAR" id="=(B2GJpx]4xG-_S?QIx|">index</field>
</block>
</value>
</block>
</value>
<next>
<block type="bitbybit.babylon.mesh.rotateAroundAxisWithPosition" id="5E);BmZ3S793hXrkPdNS">
<value name="Mesh">
<block type="variables_get" id="Oe*[2/D$RQ,zaSMrlL6;">
<field name="VAR" id="q!u?2#]An#5vQf^6.1z;">characterMesh</field>
</block>
</value>
<value name="Position">
<block type="variables_get" id="k2c`4._yyT,Y}a0o~!d1">
<field name="VAR" id="G$UONlj.bXPO$-|R2h!=">currentPoint</field>
</block>
</value>
<value name="Axis">
<block type="bitbybit.vector.vectorXYZ" id="Eh=Eo6Nml2|NR{2d%oR$">
<value name="X">
<block type="math_number" id="B+ZYdbN0m!~9p1|)0ue0">
<field name="NUM">0</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="L1(=PQ~1M?;,VP;TK0=s">
<field name="NUM">1</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="#]n/~f)G=BJ]=,h6;[gc">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<value name="Angle">
<block type="math_number" id="YBMY7PP]h#o[H9LXfo!z">
<field name="NUM">1</field>
</block>
</value>
<next>
<block type="bitbybit.babylon.mesh.rotateAroundAxisWithPosition" id="a7e.(#sjbqfGqrg4a*Hf">
<value name="Mesh">
<block type="variables_get" id="#Gd!w#[g+@097ORny@ie">
<field name="VAR" id="q!u?2#]An#5vQf^6.1z;">characterMesh</field>
</block>
</value>
<value name="Position">
<block type="variables_get" id="6whl#Bq1,9]J~R$#GGh1">
<field name="VAR" id="G$UONlj.bXPO$-|R2h!=">currentPoint</field>
</block>
</value>
<value name="Axis">
<block type="bitbybit.vector.vectorXYZ" id="SvP{Rb[,xC]=tI_^OO4X">
<value name="X">
<block type="math_number" id="GX~xBbHxqK5V!9@MB(AJ">
<field name="NUM">1</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="S-x?/}#w_#$)ykRkU;v9">
<field name="NUM">0</field>
</block>
</value>
<value name="Z">
<block type="math_number" id="3}5f9q]+nn4/64WP9^-R">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<value name="Angle">
<block type="math_number" id="+u?/UzXaSe$E2a7L=9W@">
<field name="NUM">-0.1</field>
</block>
</value>
<next>
<block type="math_change" id="p9|#2_gg)=z?!ByBrVy#">
<field name="VAR" id="=(B2GJpx]4xG-_S?QIx|">index</field>
<value name="DELTA">
<shadow type="math_number" id="E9pr~JBQ7dsFcMUMvWc!">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</xml>