<snapdata remixID="9002299"><project name='Ball Physics 2.1' app='Snap! 5.1, http://snap.berkeley.edu' version='1'>
  <notes>Now with gravity and squash &amp; stretch animation.
Click on the balls to drag them.

Based on this code: 
https://processing.org/examples/bouncybubbles.html</notes>
  <thumbnail>data:image/png;base64,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</thumbnail>
  <stage inheritance='true' id='1' volume='100' height='360' tempo='60' lines='round' width='480' sublistIDs='false' name='Stage' threadsafe='false' codify='false' color='255,255,255,1' scheduled='false' pan='0' ternary='false' costume='1'>
    <pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAACtUlEQVR4nO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bo3+AAF/RMkcAAAAAElFTkSuQmCC</pentrails>
    <costumes>
      <list id='2'>
        <item>
          <costume center-x='240' image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAFkUlEQVR4nO3VoQEAIAzAsH21/y+DL6ggIr6us7sHAHhr6gAA+JEBA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACF8kFrN5c2Jr0AAAAAElFTkSuQmCC' center-y='180' name='Untitled' id='3'/>
        </item>
      </list>
    </costumes>
    <sounds>
      <list id='4' struct='atomic'/>
    </sounds>
    <variables/>
    <blocks/>
    <scripts/>
    <sprites>
      <sprite x='27.812881154344723' pen='tip' id='9' y='-132.52566501343023' name='1' idx='1' volume='100' rotation='1' scale='1.4' heading='180' draggable='false' pan='0' color='80,80,80,1' costume='0'>
        <wear>
          <costume center-x='32.5' image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABBCAYAAACO98lFAAAEYUlEQVR4nO2cTW9VVRSGd7C3tmftQ4hhQCLRuYkYIEDUiD8EExhhIJowMSb+CgYkDkwc+xkdaSRKrSkp/Vh77bbWCdGBxgAt9ItCr4HyOLi3pR+03Lbnnn3pZSVv2uamybuerrPXPuvsU+dKiErkeDbCucy45I2+LKLemBajmkf+EqPqjeksMOSNvsy4lBnnM+NYGf6aE/CCGKclcFmMqhi3fGAiN1hWBF//3td/Xvm5hNrviLIgxk+inHGwJ3VqT43KCCd85FsJPPTG1KqkdyhvTImx6ANft2SFdAzyrigjuTJbZOIbKjArhnUETqbO3XUP80qpya+VMitGcD0cTALgReWCBO6L8SgJgKW1w3gkyoIPfFgqAK/0e2UyZfLr1ozAZB642vzs/+BVb9wR5WHqpJ9YFcpDidxykZebkn9liMO5MZ860YZgBO7JAG8US+A6e/OCW14JmnLX2VtI/pUhDvvQWtd/o/LGnc5RXt8ZgWsczEOi9lec5mScA9tmsG6r+4xKIje2ByDSL8qD1AkUAkF54I2+LQHoMj7xxt3U5ouUN+5K5OOGAOTD7BdlIbXpplSEUXU97Hv6ZRD4NbXZpkGobaZ+2RRAR+Bkq22Hi5ZXJruNtzaEIBFNbbIUBQafCKAywolkt8Tlay4b5ej6tcD4rgXMlSYf+WY1gdpMcDG1sbK1ei0wTrfRpVCTMtulnGqLtriZRFe0S4lUUxtKAiFwv9YVIsdzYzq1oUSargxzxGUjnBNr00qoPQE76zLj89RmUskb+MinLo8MpzaTDEKEXOl3YoylNpOyEsQw55XZtQ9D20rKjBPjP5/aSNpKqDpR/k5tJqkifz6vBKP6fE1QZpwoo8mNpKqECJlhLg8MpjaTEkKu9Dsf+Cy1mWQQrL5jzIzzEtrz3iE35pfuHY7lykwLGCpfymxliMNLk6W2rATR+jyhDqEntaEkECI/P4agnGm7GaMx1xV5b+W0eU/bT5vrw9bvU5sqU2J8uQ5CZhzbBadSGlNkbrkrrI1c22bKNPBEAM4516G8I8qNFjDZNIlxszvw5oYQ6u3ySmqjTQSwKIHLmwJwzjk3zksSd+lJlUi14bONony0284sZYH5buVCQwCWIg9c3VWn15TftgRguSIC/6ZOoBAIxj/bAuCcczLOgdyYS53EDjWfD7N/2xCcc65zjEPeuNMCyWxZ3pjqvMZrOwKwHM/iKffAjBvHFwOgHp1jHJLAveTJNSBRFoqrgDUh4xxo9WP/Ytzc8RrQSHijzyu3Uye8Ul657QO9TU9+FYjIBxJZaIm34SLVzDhfKoDl6GGfV3oTvxd5pbDXfHYS3b/zthghL2tPEZkTRTc9o5wqslGOeuOr3Go9utBrvn64TJQvNhyItFp0Kady5UcJ3PPKpA9M1J/4rH5bfuXX+PhzH5iod6L5PPDD6qHoMxiVYY5kQ7wvykWv9GaBQR+YklD//wmBqg9MZcaAV3pFuZhHzpb1F/8fn2ZfJFdCQmIAAAAASUVORK5CYII=' center-y='32.5' name='costume1' id='10'/>
        </wear>
        <costumes>
          <list id='11'>
            <item>
              <costume center-x='32.5' image='data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSBtZWV0IiB2aWV3Qm94PSI2OTIuNSAyNDQuNSA2NSA2NSIgd2lkdGg9IjY1IiBoZWlnaHQ9IjY1Ij48ZWxsaXBzZSBzdHJva2U9InJnYigxMywyMDcsMjU1KSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJyZ2IoMTMsMjA3LDI1NSkiIHByb3RvdHlwZT0iVmVjdG9yRWxsaXBzZSIgY3g9IjcyNSIgY3k9IjI3NyIgcng9IjMyIiByeT0iMzIiLz48L3N2Zz4=' center-y='32.5' name='costume1' id='12'/>
            </item>
          </list>
        </costumes>
        <sounds>
          <list id='13' struct='atomic'/>
        </sounds>
        <blocks/>
        <variables>
          <variable name='radius'>
            <l>45.50000000000001</l>
          </variable>
          <variable name='where clicked x'>
            <l>0.02500000000009095</l>
          </variable>
          <variable name='where clicked y'>
            <l>17.024999999999977</l>
          </variable>
          <variable name='vx'>
            <l>8.339043284846554</l>
          </variable>
          <variable name='vy'>
            <l>1.9743349865697697</l>
          </variable>
        </variables>
        <scripts>
          <script x='30' y='17'>
            <block s='receiveGo'/>
            <block s='doStopThis'>
              <l>
                <option>all but this script</option>
              </l>
            </block>
            <block s='doSwitchToCostume'>
              <block s='reportNewCostumeStretched'>
                <l>costume1</l>
                <l>100</l>
                <l>100</l>
              </block>
            </block>
            <block s='clearEffects'/>
            <block s='setEffect'>
              <l>
                <option>color</option>
              </l>
              <block s='reportRandom'>
                <l>-100</l>
                <l>100</l>
              </block>
            </block>
            <block s='doDeleteFromList'>
              <l>
                <option>all</option>
              </l>
              <block s='reportGet'>
                <l>
                  <option>clones</option>
                </l>
              </block>
            </block>
            <block s='doSetVar'>
              <l>vx</l>
              <l>0</l>
            </block>
            <block s='doSetVar'>
              <l>vy</l>
              <l>0</l>
            </block>
            <block s='doGotoObject'>
              <l>
                <option>center</option>
              </l>
            </block>
            <block s='setScale'>
              <l>200</l>
            </block>
            <block s='doSetVar'>
              <l>numBalls</l>
              <l>2</l>
            </block>
            <block s='doBroadcast'>
              <l>start</l>
            </block>
          </script>
          <script x='298' y='269'>
            <block s='receiveInteraction'>
              <l>
                <option>pressed</option>
              </l>
            </block>
            <block s='goToLayer'>
              <l>
                <option>front</option>
              </l>
            </block>
            <block s='doSetVar'>
              <l>where clicked x</l>
              <block s='reportDifference'>
                <block s='xPosition'/>
                <block s='reportMouseX'/>
              </block>
            </block>
            <block s='doSetVar'>
              <l>where clicked y</l>
              <block s='reportDifference'>
                <block s='yPosition'/>
                <block s='reportMouseY'/>
              </block>
            </block>
            <block s='doUntil'>
              <block s='reportNot'>
                <block s='reportMouseDown'/>
              </block>
              <script>
                <block s='setXPosition'>
                  <block s='reportSum'>
                    <block s='reportMouseX'/>
                    <block var='where clicked x'/>
                  </block>
                </block>
                <block s='setYPosition'>
                  <block s='reportSum'>
                    <block s='reportMouseY'/>
                    <block var='where clicked y'/>
                  </block>
                </block>
                <block s='doSetVar'>
                  <l>vy</l>
                  <l>0</l>
                </block>
                <block s='doSetVar'>
                  <l>vx</l>
                  <l>0</l>
                </block>
              </script>
            </block>
          </script>
          <script x='70' y='343'>
            <block s='receiveMessage'>
              <l>start</l>
            </block>
            <custom-block s='initialize'/>
            <block s='doRepeat'>
              <block var='numBalls'/>
              <script>
                <block s='createClone'>
                  <l>
                    <option>myself</option>
                  </l>
                </block>
              </script>
            </block>
            <block s='doForever'>
              <script>
                <custom-block s='move %s %s'>
                  <block var='gravity'/>
                  <block var='friction'/>
                </custom-block>
                <custom-block s='collide %s'>
                  <block var='spring'/>
                </custom-block>
                <custom-block s='stretch'/>
              </script>
            </block>
          </script>
          <script x='408' y='30'>
            <block s='receiveOnClone'/>
            <custom-block s='initialize'/>
            <block s='setEffect'>
              <l>
                <option>color</option>
              </l>
              <block s='reportRandom'>
                <l>-100</l>
                <l>100</l>
              </block>
            </block>
            <block s='doForever'>
              <script>
                <custom-block s='move %s %s'>
                  <block var='gravity'/>
                  <block var='friction'/>
                </custom-block>
                <custom-block s='collide %s'>
                  <block var='spring'/>
                </custom-block>
                <custom-block s='stretch'/>
              </script>
            </block>
          </script>
          <script x='243' y='177'>
            <block s='reportGet'>
              <l>
                <option>other sprites</option>
              </l>
            </block>
          </script>
          <script x='176' y='14'>
            <block s='doSetVar'>
              <l>gravity toggle</l>
              <block s='reportBoolean'>
                <l>
                  <bool>true</bool>
                </l>
              </block>
            </block>
          </script>
        </scripts>
      </sprite>
      <watcher hidden='true' x='10' color='243,118,29' style='normal' y='52.00000399999996' var='radius' scope='1'/>
      <watcher x='10' color='243,118,29' style='normal' hidden='true' y='73.00000600000003' var='numBalls'/>
      <watcher hidden='true' x='10' color='243,118,29' style='normal' y='94.000008' var='where clicked x' scope='1'/>
      <watcher hidden='true' x='10' color='243,118,29' style='normal' y='115.00001000000003' var='where clicked y' scope='1'/>
      <watcher hidden='true' x='10' color='243,118,29' style='normal' y='136.00001200000003' var='vx' scope='1'/>
      <watcher hidden='true' x='10' color='243,118,29' style='normal' y='157.00001399999994' var='vy' scope='1'/>
      <watcher hidden='true' x='10' s='direction' style='normal' color='74,108,212' y='42.000017999999926' scope='1'/>
      <watcher max='10' x='7' color='243,118,29' style='slider' y='44.00001599999996' min='1' var='spring'/>
      <watcher max='9' x='4' var='friction' min='1' color='243,118,29' style='slider' hidden='true' y='80.00001599999997'/>
      <watcher max='10' x='4' color='243,118,29' style='slider' y='9.000017999999962' min='-10' var='gravity'/>
    </sprites>
  </stage>
  <hidden/>
  <headers/>
  <code/>
  <blocks>
    <block-definition s='get radius' category='sensing' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doReport'>
          <block s='reportProduct'>
            <block s='reportQuotient'>
              <block s='reportGetImageAttribute'>
                <l>
                  <option>width</option>
                </l>
                <l>costume1</l>
              </block>
              <l>2</l>
            </block>
            <block s='reportProduct'>
              <block s='getScale'/>
              <l>0.01</l>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='others radius %&apos;clone&apos;' category='sensing' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportAskFor'>
            <block s='reportListItem'>
              <block var='clone'/>
              <block s='reportGet'>
                <l>
                  <option>clones</option>
                </l>
              </block>
            </block>
            <block s='reifyReporter'>
              <autolambda>
                <custom-block s='get radius'/>
              </autolambda>
              <list/>
            </block>
            <list/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='overlap %&apos;clone&apos;' category='sensing' type='reporter'>
      <comment x='0' w='90' collapsed='false' y='0'>distance - radius - others radius</comment>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportDifference'>
            <block s='reportDifference'>
              <block s='reportRelationTo'>
                <l>
                  <option>distance</option>
                </l>
                <block s='reportListItem'>
                  <block var='clone'/>
                  <block s='reportGet'>
                    <l>
                      <option>other sprites</option>
                    </l>
                  </block>
                </block>
              </block>
              <block s='reportAskFor'>
                <block s='reportListItem'>
                  <block var='clone'/>
                  <block s='reportGet'>
                    <l>
                      <option>other sprites</option>
                    </l>
                  </block>
                </block>
                <block s='reifyReporter'>
                  <autolambda>
                    <custom-block s='get radius'/>
                  </autolambda>
                  <list/>
                </block>
                <list/>
              </block>
            </block>
            <block var='radius'/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='others x %&apos;clone&apos;' category='sensing' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportAskFor'>
            <block s='reportListItem'>
              <block var='clone'/>
              <block s='reportGet'>
                <l>
                  <option>other sprites</option>
                </l>
              </block>
            </block>
            <block s='reifyReporter'>
              <autolambda>
                <block s='xPosition'/>
              </autolambda>
              <list/>
            </block>
            <list/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='others y %&apos;clone&apos;' category='sensing' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportAskFor'>
            <block s='reportListItem'>
              <block var='clone'/>
              <block s='reportGet'>
                <l>
                  <option>other sprites</option>
                </l>
              </block>
            </block>
            <block s='reifyReporter'>
              <autolambda>
                <block s='yPosition'/>
              </autolambda>
              <list/>
            </block>
            <list/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='push other balls %&apos;numBalls&apos;' category='sensing' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doWarp'>
          <script>
            <block s='doFor'>
              <l>i</l>
              <l>1</l>
              <block var='numBalls'/>
              <script>
                <block s='doIf'>
                  <block s='reportTouchingObject'>
                    <block s='reportListItem'>
                      <block var='i'/>
                      <block s='reportGet'>
                        <l>
                          <option>other sprites</option>
                        </l>
                      </block>
                    </block>
                  </block>
                  <script>
                    <block s='changeXPosition'>
                      <block s='reportQuotient'>
                        <block s='reportProduct'>
                          <block s='reportQuotient'>
                            <custom-block s='overlap %s'>
                              <block var='i'/>
                            </custom-block>
                            <l>-2</l>
                          </block>
                          <block s='reportDifference'>
                            <block s='xPosition'/>
                            <custom-block s='others x %s'>
                              <block var='i'/>
                            </custom-block>
                          </block>
                        </block>
                        <block s='reportRelationTo'>
                          <l>
                            <option>distance</option>
                          </l>
                          <block s='reportListItem'>
                            <block var='i'/>
                            <block s='reportGet'>
                              <l>
                                <option>other sprites</option>
                              </l>
                            </block>
                          </block>
                        </block>
                      </block>
                    </block>
                    <block s='changeYPosition'>
                      <block s='reportQuotient'>
                        <block s='reportProduct'>
                          <block s='reportQuotient'>
                            <custom-block s='overlap %s'>
                              <block var='i'/>
                            </custom-block>
                            <l>-2</l>
                          </block>
                          <block s='reportDifference'>
                            <block s='yPosition'/>
                            <custom-block s='others y %s'>
                              <block var='i'/>
                            </custom-block>
                          </block>
                        </block>
                        <block s='reportRelationTo'>
                          <l>
                            <option>distance</option>
                          </l>
                          <block s='reportListItem'>
                            <block var='i'/>
                            <block s='reportGet'>
                              <l>
                                <option>other sprites</option>
                              </l>
                            </block>
                          </block>
                        </block>
                      </block>
                    </block>
                  </script>
                </block>
              </script>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='check boundaries' category='sensing' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doIf'>
          <block s='reportGreaterThan'>
            <block s='xPosition'/>
            <block s='reportDifference'>
              <l>240</l>
              <block var='radius'/>
            </block>
          </block>
          <script>
            <block s='setXPosition'>
              <block s='reportDifference'>
                <l>240</l>
                <block var='radius'/>
              </block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportLessThan'>
            <block s='xPosition'/>
            <block s='reportSum'>
              <l>-240</l>
              <block var='radius'/>
            </block>
          </block>
          <script>
            <block s='setXPosition'>
              <block s='reportSum'>
                <l>-240</l>
                <block var='radius'/>
              </block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportGreaterThan'>
            <block s='yPosition'/>
            <block s='reportDifference'>
              <l>180</l>
              <block var='radius'/>
            </block>
          </block>
          <script>
            <block s='setYPosition'>
              <block s='reportDifference'>
                <l>180</l>
                <block var='radius'/>
              </block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportLessThan'>
            <block s='yPosition'/>
            <block s='reportSum'>
              <l>-180</l>
              <block var='radius'/>
            </block>
          </block>
          <script>
            <block s='setYPosition'>
              <block s='reportSum'>
                <l>-180</l>
                <block var='radius'/>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='atan2 x: %&apos;x&apos; y: %&apos;y&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportSum'>
            <block s='reportMonadic'>
              <l>
                <option>atan</option>
              </l>
              <block s='reportQuotient'>
                <block s='reportDifference'>
                  <block var='x'/>
                  <block s='xPosition'/>
                </block>
                <block s='reportDifference'>
                  <block var='y'/>
                  <block s='yPosition'/>
                </block>
              </block>
            </block>
            <block s='reportProduct'>
              <l>180</l>
              <block s='reportLessThan'>
                <block var='y'/>
                <block s='yPosition'/>
              </block>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='move %&apos;gravity&apos; %&apos;friction&apos;' category='motion' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doChangeVar'>
          <l>vy</l>
          <block s='reportProduct'>
            <block var='gravity'/>
            <l>-0.1</l>
          </block>
        </block>
        <block s='changeXPosition'>
          <block var='vx'/>
        </block>
        <block s='changeYPosition'>
          <block var='vy'/>
        </block>
        <block s='doIf'>
          <block s='reportGreaterThan'>
            <block s='xPosition'/>
            <block s='reportDifference'>
              <l>240</l>
              <block var='radius'/>
            </block>
          </block>
          <script>
            <block s='setXPosition'>
              <block s='reportDifference'>
                <l>240</l>
                <block var='radius'/>
              </block>
            </block>
            <block s='doSetVar'>
              <l>vx</l>
              <block s='reportQuotient'>
                <block var='vx'/>
                <block s='reportProduct'>
                  <block var='friction'/>
                  <l>-1</l>
                </block>
              </block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportLessThan'>
            <block s='xPosition'/>
            <block s='reportSum'>
              <l>-240</l>
              <block var='radius'/>
            </block>
          </block>
          <script>
            <block s='setXPosition'>
              <block s='reportSum'>
                <l>-240</l>
                <block var='radius'/>
              </block>
            </block>
            <block s='doSetVar'>
              <l>vx</l>
              <block s='reportQuotient'>
                <block var='vx'/>
                <block s='reportProduct'>
                  <block var='friction'/>
                  <l>-1</l>
                </block>
              </block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportGreaterThan'>
            <block s='yPosition'/>
            <block s='reportDifference'>
              <l>180</l>
              <block var='radius'/>
            </block>
          </block>
          <script>
            <block s='setYPosition'>
              <block s='reportDifference'>
                <l>180</l>
                <block var='radius'/>
              </block>
            </block>
            <block s='doSetVar'>
              <l>vy</l>
              <block s='reportQuotient'>
                <block var='vy'/>
                <block s='reportProduct'>
                  <block var='friction'/>
                  <l>-1</l>
                </block>
              </block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportLessThan'>
            <block s='yPosition'/>
            <block s='reportSum'>
              <l>-180</l>
              <block var='radius'/>
            </block>
          </block>
          <script>
            <block s='setHeading'>
              <l>180</l>
            </block>
            <block s='doSwitchToCostume'>
              <block s='reportNewCostumeStretched'>
                <l>costume1</l>
                <block s='reportDifference'>
                  <l>100</l>
                  <block s='reportQuotient'>
                    <block s='reportMonadic'>
                      <l>
                        <option>abs</option>
                      </l>
                      <block var='vy'/>
                    </block>
                    <l>4</l>
                  </block>
                </block>
                <block s='reportSum'>
                  <l>100</l>
                  <block s='reportQuotient'>
                    <block s='reportMonadic'>
                      <l>
                        <option>abs</option>
                      </l>
                      <block var='vy'/>
                    </block>
                    <l>4</l>
                  </block>
                </block>
              </block>
            </block>
            <block s='setYPosition'>
              <block s='reportDifference'>
                <block s='reportSum'>
                  <l>-180</l>
                  <block var='radius'/>
                </block>
                <block s='reportQuotient'>
                  <block s='reportMonadic'>
                    <l>
                      <option>abs</option>
                    </l>
                    <block var='vy'/>
                  </block>
                  <l>4</l>
                </block>
              </block>
            </block>
            <block s='doWait'>
              <l>0.05</l>
            </block>
            <block s='changeXPosition'>
              <block var='vx'/>
            </block>
            <block s='doSwitchToCostume'>
              <block s='reportNewCostumeStretched'>
                <l>costume1</l>
                <block s='reportDifference'>
                  <l>100</l>
                  <block s='reportQuotient'>
                    <block s='reportMonadic'>
                      <l>
                        <option>abs</option>
                      </l>
                      <block var='vy'/>
                    </block>
                    <l>1</l>
                  </block>
                </block>
                <block s='reportSum'>
                  <l>100</l>
                  <block s='reportQuotient'>
                    <block s='reportMonadic'>
                      <l>
                        <option>abs</option>
                      </l>
                      <block var='vy'/>
                    </block>
                    <l>1</l>
                  </block>
                </block>
              </block>
            </block>
            <block s='setYPosition'>
              <block s='reportDifference'>
                <block s='reportSum'>
                  <l>-180</l>
                  <block var='radius'/>
                </block>
                <block s='reportQuotient'>
                  <block s='reportMonadic'>
                    <l>
                      <option>abs</option>
                    </l>
                    <block var='vy'/>
                  </block>
                  <l>1</l>
                </block>
              </block>
            </block>
            <block s='doWait'>
              <l>0.05</l>
            </block>
            <block s='changeXPosition'>
              <block var='vx'/>
            </block>
            <block s='setYPosition'>
              <block s='reportSum'>
                <l>-180</l>
                <block var='radius'/>
              </block>
            </block>
            <block s='doSetVar'>
              <l>vy</l>
              <block s='reportQuotient'>
                <block var='vy'/>
                <block s='reportProduct'>
                  <block var='friction'/>
                  <l>-1</l>
                </block>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='collide %&apos;spring&apos;' category='sensing' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doWarp'>
          <script>
            <block s='doIf'>
              <block s='reportGreaterThan'>
                <block var='numBalls'/>
                <l>0</l>
              </block>
              <script>
                <block s='doFor'>
                  <l>i</l>
                  <l>1</l>
                  <block var='numBalls'/>
                  <script>
                    <block s='doDeclareVariables'>
                      <list>
                        <l>minDist</l>
                        <l>ang</l>
                        <l>targX</l>
                        <l>targY</l>
                        <l>ax</l>
                        <l>ay</l>
                      </list>
                    </block>
                    <block s='doSetVar'>
                      <l>minDist</l>
                      <block s='reportSum'>
                        <block var='radius'/>
                        <block s='reportAskFor'>
                          <block s='reportListItem'>
                            <block var='i'/>
                            <block s='reportGet'>
                              <l>
                                <option>other sprites</option>
                              </l>
                            </block>
                          </block>
                          <block s='reifyReporter'>
                            <autolambda>
                              <custom-block s='get radius'/>
                            </autolambda>
                            <list/>
                          </block>
                          <list/>
                        </block>
                      </block>
                    </block>
                    <block s='doIfElse'>
                      <block s='reportLessThan'>
                        <block s='reportRelationTo'>
                          <l>
                            <option>distance</option>
                          </l>
                          <block s='reportListItem'>
                            <block var='i'/>
                            <block s='reportGet'>
                              <l>
                                <option>other sprites</option>
                              </l>
                            </block>
                          </block>
                        </block>
                        <block var='minDist'/>
                      </block>
                      <script>
                        <block s='doSetVar'>
                          <l>ang</l>
                          <custom-block s='atan2 x: %s y: %s'>
                            <block s='reportAskFor'>
                              <block s='reportListItem'>
                                <block var='i'/>
                                <block s='reportGet'>
                                  <l>
                                    <option>other sprites</option>
                                  </l>
                                </block>
                              </block>
                              <block s='reifyReporter'>
                                <autolambda>
                                  <block s='xPosition'/>
                                </autolambda>
                                <list/>
                              </block>
                              <list/>
                            </block>
                            <block s='reportAskFor'>
                              <block s='reportListItem'>
                                <block var='i'/>
                                <block s='reportGet'>
                                  <l>
                                    <option>other sprites</option>
                                  </l>
                                </block>
                              </block>
                              <block s='reifyReporter'>
                                <autolambda>
                                  <block s='yPosition'/>
                                </autolambda>
                                <list/>
                              </block>
                              <list/>
                            </block>
                          </custom-block>
                        </block>
                        <block s='doSetVar'>
                          <l>targX</l>
                          <block s='reportSum'>
                            <block s='xPosition'/>
                            <block s='reportProduct'>
                              <block s='reportMonadic'>
                                <l>
                                  <option>cos</option>
                                </l>
                                <block var='ang'/>
                              </block>
                              <block var='minDist'/>
                            </block>
                          </block>
                        </block>
                        <block s='doSetVar'>
                          <l>targY</l>
                          <block s='reportSum'>
                            <block s='yPosition'/>
                            <block s='reportProduct'>
                              <block s='reportMonadic'>
                                <l>
                                  <option>sin</option>
                                </l>
                                <block var='ang'/>
                              </block>
                              <block var='minDist'/>
                            </block>
                          </block>
                        </block>
                        <block s='doSetVar'>
                          <l>ax</l>
                          <block s='reportProduct'>
                            <block s='reportDifference'>
                              <block s='xPosition'/>
                              <block s='reportAskFor'>
                                <block s='reportListItem'>
                                  <block var='i'/>
                                  <block s='reportGet'>
                                    <l>
                                      <option>other sprites</option>
                                    </l>
                                  </block>
                                </block>
                                <block s='reifyReporter'>
                                  <autolambda>
                                    <block s='xPosition'/>
                                  </autolambda>
                                  <list/>
                                </block>
                                <list/>
                              </block>
                            </block>
                            <block s='reportProduct'>
                              <block var='spring'/>
                              <l>0.01</l>
                            </block>
                          </block>
                        </block>
                        <block s='doSetVar'>
                          <l>ay</l>
                          <block s='reportProduct'>
                            <block s='reportDifference'>
                              <block s='yPosition'/>
                              <block s='reportAskFor'>
                                <block s='reportListItem'>
                                  <block var='i'/>
                                  <block s='reportGet'>
                                    <l>
                                      <option>other sprites</option>
                                    </l>
                                  </block>
                                </block>
                                <block s='reifyReporter'>
                                  <autolambda>
                                    <block s='yPosition'/>
                                  </autolambda>
                                  <list/>
                                </block>
                                <list/>
                              </block>
                            </block>
                            <block s='reportProduct'>
                              <block var='spring'/>
                              <l>0.01</l>
                            </block>
                          </block>
                        </block>
                        <block s='doSetVar'>
                          <l>vx</l>
                          <block s='reportProduct'>
                            <block s='reportSum'>
                              <block var='vx'/>
                              <block var='ax'/>
                            </block>
                            <l>0.9</l>
                          </block>
                        </block>
                        <block s='doSetVar'>
                          <l>vy</l>
                          <block s='reportProduct'>
                            <block s='reportSum'>
                              <block var='vy'/>
                              <block var='ay'/>
                            </block>
                            <l>0.9</l>
                          </block>
                        </block>
                        <block s='doTellTo'>
                          <block s='reportListItem'>
                            <block var='i'/>
                            <block s='reportGet'>
                              <l>
                                <option>other sprites</option>
                              </l>
                            </block>
                          </block>
                          <block s='reifyScript'>
                            <script>
                              <custom-block s='set vel x: %s y: %s'>
                                <l/>
                                <l/>
                              </custom-block>
                            </script>
                            <list/>
                          </block>
                          <list>
                            <block s='reportProduct'>
                              <block s='reportDifference'>
                                <block s='reportAttributeOf'>
                                  <l>vx</l>
                                  <block s='reportListItem'>
                                    <block var='i'/>
                                    <block s='reportGet'>
                                      <l>
                                        <option>other sprites</option>
                                      </l>
                                    </block>
                                  </block>
                                </block>
                                <block var='ax'/>
                              </block>
                              <l>0.9</l>
                            </block>
                            <block s='reportProduct'>
                              <block s='reportDifference'>
                                <block s='reportAttributeOf'>
                                  <l>vy</l>
                                  <block s='reportListItem'>
                                    <block var='i'/>
                                    <block s='reportGet'>
                                      <l>
                                        <option>other sprites</option>
                                      </l>
                                    </block>
                                  </block>
                                </block>
                                <block var='ay'/>
                              </block>
                              <l>0.9</l>
                            </block>
                          </list>
                        </block>
                      </script>
                      <script/>
                    </block>
                  </script>
                </block>
              </script>
            </block>
          </script>
        </block>
      </script>
      <scripts>
        <script x='544.000004' y='539.8333373333332'>
          <block s='doFaceTowards'>
            <block s='reportListItem'>
              <block var='i'/>
              <block s='reportGet'>
                <l>
                  <option>other sprites</option>
                </l>
              </block>
            </block>
            <comment collapsed='false' w='90'>tried to make the balls squish when they hit each other but it was too laggy and unreliable</comment>
          </block>
          <block s='doSwitchToCostume'>
            <block s='reportNewCostumeStretched'>
              <l>costume1</l>
              <block s='reportDifference'>
                <l>100</l>
                <block s='reportDifference'>
                  <block var='minDist'/>
                  <block s='reportRelationTo'>
                    <l>
                      <option>distance</option>
                    </l>
                    <block s='reportListItem'>
                      <block var='i'/>
                      <block s='reportGet'>
                        <l>
                          <option>other sprites</option>
                        </l>
                      </block>
                    </block>
                  </block>
                </block>
              </block>
              <l>100</l>
            </block>
          </block>
        </script>
        <script x='549.000004' y='694.6666706666666'>
          <block s='doSwitchToCostume'>
            <block s='reportNewCostumeStretched'>
              <l>costume1</l>
              <l>100</l>
              <l>100</l>
            </block>
          </block>
        </script>
      </scripts>
    </block-definition>
    <block-definition s='set vel x: %&apos;x&apos; y: %&apos;y&apos;' category='motion' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doSetVar'>
          <l>vx</l>
          <block var='x'/>
        </block>
        <block s='doSetVar'>
          <l>vy</l>
          <block var='y'/>
        </block>
      </script>
    </block-definition>
    <block-definition s='initialize' category='control' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doSetVar'>
          <l>vx</l>
          <block s='reportRandom'>
            <l>-5</l>
            <l>5</l>
          </block>
        </block>
        <block s='doSetVar'>
          <l>vy</l>
          <block s='reportRandom'>
            <l>-5</l>
            <l>5</l>
          </block>
        </block>
        <block s='setScale'>
          <block s='reportRandom'>
            <l>75</l>
            <l>150</l>
          </block>
        </block>
        <block s='doGotoObject'>
          <l>
            <option>random position</option>
          </l>
        </block>
        <block s='doSetVar'>
          <l>radius</l>
          <custom-block s='get radius'/>
        </block>
      </script>
    </block-definition>
    <block-definition s='drag' category='sensing' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='goToLayer'>
          <l>
            <option>front</option>
          </l>
        </block>
        <block s='doSetVar'>
          <l>where clicked x</l>
          <block s='reportDifference'>
            <block s='xPosition'/>
            <block s='reportMouseX'/>
          </block>
        </block>
        <block s='doSetVar'>
          <l>where clicked y</l>
          <block s='reportDifference'>
            <block s='yPosition'/>
            <block s='reportMouseY'/>
          </block>
        </block>
        <block s='doUntil'>
          <block s='reportNot'>
            <block s='reportMouseDown'/>
          </block>
          <script>
            <block s='setXPosition'>
              <block s='reportSum'>
                <block s='reportMouseX'/>
                <block var='where clicked x'/>
              </block>
            </block>
            <block s='setYPosition'>
              <block s='reportSum'>
                <block s='reportMouseY'/>
                <block var='where clicked y'/>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition category='motion' s='gravity' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
    </block-definition>
    <block-definition s='squish' category='sensing' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doWarp'>
          <script>
            <block s='doFor'>
              <l>i</l>
              <l>1</l>
              <block var='numBalls'/>
              <script>
                <block s='doDeclareVariables'>
                  <list>
                    <l>minDist</l>
                  </list>
                </block>
                <block s='doSetVar'>
                  <l>minDist</l>
                  <block s='reportSum'>
                    <block var='radius'/>
                    <block s='reportAskFor'>
                      <block s='reportListItem'>
                        <block var='i'/>
                        <block s='reportGet'>
                          <l>
                            <option>other sprites</option>
                          </l>
                        </block>
                      </block>
                      <block s='reifyReporter'>
                        <autolambda>
                          <custom-block s='get radius'/>
                        </autolambda>
                        <list/>
                      </block>
                      <list/>
                    </block>
                  </block>
                </block>
                <block s='doIfElse'>
                  <block s='reportLessThan'>
                    <block s='reportRelationTo'>
                      <l>
                        <option>distance</option>
                      </l>
                      <block s='reportListItem'>
                        <block var='i'/>
                        <block s='reportGet'>
                          <l>
                            <option>other sprites</option>
                          </l>
                        </block>
                      </block>
                    </block>
                    <block var='minDist'/>
                  </block>
                  <script/>
                  <script/>
                </block>
              </script>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='stretch' category='motion' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doIf'>
          <block s='reportNot'>
            <block s='reportEquals'>
              <block var='gravity'/>
              <l>0</l>
            </block>
          </block>
          <script>
            <block s='doIfElse'>
              <block s='reportGreaterThan'>
                <block s='reportMonadic'>
                  <l>
                    <option>abs</option>
                  </l>
                  <block var='vy'/>
                </block>
                <l>5</l>
              </block>
              <script>
                <block s='setHeading'>
                  <block s='reportMonadic'>
                    <l>
                      <option>atan</option>
                    </l>
                    <block s='reportQuotient'>
                      <block var='vx'/>
                      <block var='vy'/>
                    </block>
                  </block>
                </block>
                <block s='doSwitchToCostume'>
                  <block s='reportNewCostumeStretched'>
                    <l>costume1</l>
                    <block s='reportSum'>
                      <l>100</l>
                      <block s='reportQuotient'>
                        <block s='reportSum'>
                          <block s='reportMonadic'>
                            <l>
                              <option>abs</option>
                            </l>
                            <block var='vx'/>
                          </block>
                          <block s='reportMonadic'>
                            <l>
                              <option>abs</option>
                            </l>
                            <block var='vy'/>
                          </block>
                        </block>
                        <l>4</l>
                      </block>
                    </block>
                    <block s='reportDifference'>
                      <l>100</l>
                      <block s='reportQuotient'>
                        <block s='reportSum'>
                          <block s='reportMonadic'>
                            <l>
                              <option>abs</option>
                            </l>
                            <block var='vx'/>
                          </block>
                          <block s='reportMonadic'>
                            <l>
                              <option>abs</option>
                            </l>
                            <block var='vy'/>
                          </block>
                        </block>
                        <l>4</l>
                      </block>
                    </block>
                  </block>
                </block>
              </script>
              <script>
                <block s='doSwitchToCostume'>
                  <block s='reportNewCostumeStretched'>
                    <l>costume1</l>
                    <l>100</l>
                    <l>100</l>
                  </block>
                </block>
              </script>
            </block>
          </script>
        </block>
      </script>
      <scripts>
        <script x='148.000001' y='22.000002999999992'>
          <block s='reportQuotient'>
            <block s='reportSum'>
              <block s='reportMonadic'>
                <l>
                  <option>abs</option>
                </l>
                <block var='vx'/>
              </block>
              <l/>
            </block>
            <l>2</l>
          </block>
        </script>
      </scripts>
    </block-definition>
  </blocks>
  <variables>
    <variable name='numBalls'>
      <l>2</l>
    </variable>
    <variable name='spring'>
      <l>5</l>
    </variable>
    <variable name='gravity'>
      <l>5</l>
    </variable>
    <variable name='friction'>
      <l>1</l>
    </variable>
  </variables>
</project><media name="Ball Physics 2.1" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>