<snapdata remixID="14242997"><project name="Physics simulation" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes>This is an attempt at a physics engine in snap, but its a huge mess, but i still think this is better than most physics engines you&apos;ll find here on snap. feel free to improve upon it.&#xD;&#xD;press edit to find out more&#xD;&#xD;To Start press the flag icon. press 0 to summon a block&#xD;&#xD;press space to infinently throw the blocks around.&#xD;&#xD;to remove and stop everything press the stop button</notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Physics simulation"><notes>This is an attempt at a physics engine in snap, but its a huge mess, but i still think this is better than most physics engines you&apos;ll find here on snap. feel free to improve upon it.&#xD;&#xD;press edit to find out more&#xD;&#xD;To Start press the flag icon. press 0 to summon a block&#xD;&#xD;press space to infinently throw the blocks around.&#xD;&#xD;to remove and stop everything press the stop button</notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="lean if clone is touching %&apos;item&apos; in %&apos;list&apos;" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doForEach"><l>item1</l><block var="list"/><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>x position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="item1"/></block><l>53</l></list></block></list></block><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>x position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="item1"/></block><l>-53</l></list></block></list></block><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item1"/></block><l>53</l></list></block></list></block><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item1"/></block><l>-53</l></list></block></list></block></list></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicIsIdentical"><list><block s="reportEnvironment"><l><option>object</option></l></block><block var="item1"/></list></block></block><script><block s="doSetVar"><l>item</l><block var="item1"/></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><list></list></block></script></block><block s="doSetVar"><l>item</l><l>0</l></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="whos touching me" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="List of Objects"/><script><block s="doIf"><block s="reportTouchingObject"><block var="item"/></block><script><block s="doReport"><block s="reportListIndex"><block var="item"/><block var="List of Objects"/></block></block></script><list></list></block></script></block></script></block></script></block-definition><block-definition s="better edge bounce" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="xPosition"></block><l>210</l></list></block><script><block s="setXPosition"><l>200</l></block><block s="doSetVar"><l>X Speed</l><block s="reportVariadicProduct"><list><block var="X Speed"/><l>-1</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="xPosition"></block><l>-210</l></list></block><script><block s="setXPosition"><l>-200</l></block><block s="doSetVar"><l>X Speed</l><block s="reportVariadicProduct"><list><block var="X Speed"/><l>-1</l></list></block></block></script><list></list></block></script></block-definition></blocks><primitives><block-definition s="if on edge, bounce" type="command" category="motion" selector="bounceOffEdge" primitive="bounceOffEdge"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>bounceOffEdge</l></block><block s="doIf"><block s="reportTouchingObject"><l><option>edge</option></l></block><script><block s="doDeclareVariables"><list><l>get bounds</l><l>bounds</l><l>center</l><l>stage bounds</l><l>dir x</l><l>dir y</l><l>delta x</l><l>delta y</l></list></block><block s="doSetVar"><l>get bounds</l><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportVariadicMin"><block s="reportCONS"><block s="reportNewList"><list><block s="reportGet"><l><option>left</option></l></block><block s="reportGet"><l><option>bottom</option></l></block></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>left</option></l><l></l></block><block s="reportAttributeOf"><l><option>bottom</option></l><l></l></block></list></block></autolambda><list></list></block><block s="reportGet"><l><option>parts</option></l></block></block></block></block><block s="reportVariadicMax"><block s="reportCONS"><block s="reportNewList"><list><block s="reportGet"><l><option>right</option></l></block><block s="reportGet"><l><option>top</option></l></block></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>right</option></l><l></l></block><block s="reportAttributeOf"><l><option>top</option></l><l></l></block></list></block></autolambda><list></list></block><block s="reportGet"><l><option>parts</option></l></block></block></block></block></list></block></autolambda><list></list></block></block><block s="doSetVar"><l>bounds</l><block s="evaluate"><block var="get bounds"/><list></list></block></block><block s="doSetVar"><l>center</l><block s="reportQuotient"><block s="reportVariadicSum"><block var="bounds"/></block><l>2</l></block></block><block s="doSetVar"><l>stage bounds</l><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportGet"><l><option>left</option></l></block><block s="reportGet"><l><option>bottom</option></l></block></list></block><block s="reportNewList"><list><block s="reportGet"><l><option>right</option></l></block><block s="reportGet"><l><option>top</option></l></block></list></block></list></block></autolambda><list></list></block><list></list></block></block><block s="doSetVar"><l>dir x</l><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block></block><block s="doSetVar"><l>dir y</l><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="bounds"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="stage bounds"/></block></block></list></block><script><block s="doSetVar"><l>dir x</l><block s="reportMonadic"><l><option>abs</option></l><block var="dir x"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="bounds"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="stage bounds"/></block></block></list></block><script><block s="doSetVar"><l>dir x</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportMonadic"><l><option>abs</option></l><block var="dir x"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="bounds"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="stage bounds"/></block></block></list></block><script><block s="doSetVar"><l>dir y</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportMonadic"><l><option>abs</option></l><block var="dir y"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="bounds"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="stage bounds"/></block></block></list></block><script><block s="doSetVar"><l>dir y</l><block s="reportMonadic"><l><option>abs</option></l><block var="dir y"/></block></block></script><list></list></block><block s="setHeading"><block s="reportAtan2"><block var="dir x"/><block var="dir y"/></block></block><block s="doSetVar"><l>bounds</l><block s="evaluate"><block var="get bounds"/><list></list></block></block><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block s="reportDifference"><block var="center"/><block s="reportQuotient"><block s="reportVariadicSum"><block var="bounds"/></block><l>2</l></block></block></list></block></block><block s="doSetVar"><l>bounds</l><block s="evaluate"><block var="get bounds"/><list></list></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="bounds"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="stage bounds"/></block></block></list></block><script><block s="doSetVar"><l>delta x</l><block s="reportDifference"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="stage bounds"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="bounds"/></block></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="bounds"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="stage bounds"/></block></block></list></block><script><block s="doSetVar"><l>delta y</l><block s="reportDifference"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="stage bounds"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="bounds"/></block></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="bounds"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="stage bounds"/></block></block></list></block><script><block s="doSetVar"><l>delta x</l><block s="reportDifference"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="stage bounds"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="bounds"/></block></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="bounds"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="stage bounds"/></block></block></list></block><script><block s="doSetVar"><l>delta y</l><block s="reportDifference"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="stage bounds"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="bounds"/></block></block></block></block></script><list></list></block><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block s="reportNewList"><list><block var="delta x"/><block var="delta y"/></list></block></list></block></block></script><list></list></block></script></block-definition></primitives><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="708"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="709"></list></costumes><sounds><list struct="atomic" id="710"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="265.53746671738304" y="156.71852415367064" heading="0" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="715"><costumes><list id="716"><item><ref mediaID="Physics simulation_Sprite_cst_Square"></ref></item></list></costumes><sounds><list struct="atomic" id="717"></list></sounds><blocks></blocks><variables><variable name="Acceleration"><l>-1</l></variable><variable name="Mass"><l>20</l></variable><variable name="R Left"><l>0</l></variable><variable name="X Speed"><l>0</l></variable><variable name="Y Speed"><l>0</l></variable><variable name="R right"><l>0</l></variable><variable name="New Collision"><bool>true</bool></variable><variable name="Momentum"><l>0</l></variable></variables><scripts><script x="30" y="52.08333333333212"><block s="receiveOnClone"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doAddToList"><block s="reportEnvironment"><l><option>object</option></l></block><block var="List of Objects"/></block><block s="doSetVar"><l>Acceleration</l><l>-1</l></block><block s="doAsk"><l>Input mass. answer has to be an integer</l></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block></block><script><block s="doSayFor"><l>Non integer character detected setting mass to default value (20)</l><l>2</l></block></script><list></list></block><block s="doSetVar"><l>Mass</l><block s="reportIfElse"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><block s="getLastAnswer"></block><l>20</l></block></block><block s="setEffect"><l><option>brightness</option></l><block s="reportDifference"><l>20</l><block var="Mass"/></block></block><block s="doSetVar"><l>R right</l><l>0</l></block><block s="doSetVar"><l>R Left</l><l>0</l></block><block s="doSetVar"><l>Y Speed</l><l>0</l></block><block s="doSetVar"><l>X Speed</l><l>0</l></block><block s="doSetVar"><l>New Collision</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doForever"><script><custom-block s="better edge bounce"></custom-block><block s="doIf"><block s="reportNot"><custom-block s="lean if clone is touching %upvar in %l"><l>item</l><block var="List of Objects"/></custom-block></block><script><block s="doSetVar"><l>New Collision</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>-149</l></list></block><block s="reportVariadicAnd"><list><custom-block s="lean if clone is touching %upvar in %l"><l>item</l><block var="List of Objects"/></custom-block><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>x position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><l>27</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block></list></block></list></block><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>x position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><l>-27</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block></list></block></list></block><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block></list></block></list></block></list></block><script><custom-block s="better edge bounce"></custom-block><block s="changeYPosition"><block var="Y Speed"/></block><block s="changeXPosition"><block var="X Speed"/></block><block s="turn"><block var="R right"/></block><block s="turnLeft"><block var="R Left"/></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="Y Speed"/><block s="reportDifference"><l>0</l><block var="Mass"/></block></list></block><script><block s="doChangeVar"><l>Y Speed</l><block var="Acceleration"/></block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="lean if clone is touching %upvar in %l"><l>item</l><block var="List of Objects"/></custom-block></block><script><block s="doSetVar"><l>New Collision</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>27</l></list></block></list></block><custom-block s="lean if clone is touching %upvar in %l"><l>item</l><block var="List of Objects"/></custom-block><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>x position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block><l>27</l></list></block></list></block></list></block><script><block s="setYPosition"><block s="reportVariadicSum"><list><l>52</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block></list></block></block><block s="doSetVar"><l>X Speed</l><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>abs</option></l><block var="Y Speed"/></block><block s="reportMonadic"><l><option>tan</option></l><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportDifference"><block s="reportRelationTo"><l><option>direction</option></l><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block><l>27</l></list></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>27</l></list></block></list><comment w="90" collapsed="false">Right Side</comment></block></block><l>180</l></block><l>45</l></list></block><l>45</l><block s="reportDifference"><block s="reportRelationTo"><l><option>direction</option></l><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block><l>27</l></list></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>27</l></list></block></list><comment w="90" collapsed="false">Right Side</comment></block></block><l>180</l></block></block></block></list></block></block><block s="doSetVar"><l>R right</l><block s="reportQuotient"><block s="reportMonadic"><l><option>abs</option></l><block s="reportVariadicSum"><list><block s="reportDifference"><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block><block s="reportAttributeOf"><l><option>x position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block></block><l>27</l></list></block></block><l>2</l></block></block><block s="doChangeVar"><l>Y Speed</l><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>abs</option></l><block var="Y Speed"/></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportRelationTo"><l><option>direction</option></l><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block><l>27</l></list></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>27</l></list></block></list><comment w="90" collapsed="false">Right Side</comment></block></block><l>180</l></block><block s="reportQuotient"><l>3.14</l><l>180</l></block></list></block></list></block></block></script><list></list><comment w="90" collapsed="false">Right Side</comment></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>27</l></list></block></list></block><custom-block s="lean if clone is touching %upvar in %l"><l>item</l><block var="List of Objects"/></custom-block><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>x position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block><l>27</l></block></list></block></list></block><script><block s="setYPosition"><block s="reportVariadicSum"><list><l>52</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block></list></block></block><block s="doSetVar"><l>X Speed</l><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>abs</option></l><block var="Y Speed"/></block><block s="reportMonadic"><l><option>tan</option></l><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportDifference"><block s="reportRelationTo"><l><option>direction</option></l><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block><l>-27</l></list></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>27</l></list></block></list></block></block><l>180</l></block><l>-45</l></list></block><l>-45</l><block s="reportDifference"><block s="reportRelationTo"><l><option>direction</option></l><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block><l>-27</l></list></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>27</l></list></block></list></block></block><l>180</l></block></block></block></list></block></block><block s="doSetVar"><l>R Left</l><block s="reportQuotient"><block s="reportMonadic"><l><option>abs</option></l><block s="reportVariadicSum"><list><block s="reportDifference"><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block><block s="reportAttributeOf"><l><option>x position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block></block><l>-27</l></list></block></block><l>2</l></block></block><block s="doChangeVar"><l>Y Speed</l><block s="reportVariadicProduct"><list><block var="Y Speed"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportRelationTo"><l><option>direction</option></l><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="item"/></block><l>-27</l></list></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>27</l></list></block></list><comment w="90" collapsed="false">Right Side</comment></block></block><l>180</l></block><block s="reportQuotient"><l>3.14</l><l>180</l></block></list></block></list></block></block></script><list></list><comment w="90" collapsed="false">Left Side</comment></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="New Collision"/><custom-block s="lean if clone is touching %upvar in %l"><l>item</l><block var="List of Objects"/></custom-block></list></block><script><block s="doSetVar"><l>New Collision</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>Momentum</l><block s="reportVariadicProduct"><list><block var="X Speed"/><block var="Mass"/></list></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="Momentum"/><block s="reportAttributeOf"><l>Momentum</l><block var="item"/></block></list></block><script><block s="doWait"><l>0.01</l></block><block s="doSetVar"><l>X Speed</l><block s="reportVariadicProduct"><list><block s="reportIfElse"><block s="reportVariadicGreaterThanOrEquals"><list><block var="Mass"/><block s="reportAttributeOf"><l>Mass</l><block var="item"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><l>1</l><block s="reportQuotient"><block s="reportAttributeOf"><l>Mass</l><block var="item"/></block><block var="Mass"/></block></block><block s="reportVariadicSum"><list><block var="X Speed"/><block s="reportAttributeOf"><l>X Speed</l><block var="item"/></block></list></block></list></block><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><l>1</l><block s="reportQuotient"><block var="Mass"/><block s="reportAttributeOf"><l>Mass</l><block var="item"/></block></block></block><block s="reportVariadicSum"><list><block var="X Speed"/><block s="reportAttributeOf"><l>X Speed</l><block var="item"/></block></list></block></list></block><l>-1</l></list></block></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>30</l></list></block></list></block><l>1</l><l>-1</l></block></list></block></block></script><script><block s="doSetVar"><l>X Speed</l><block s="reportVariadicProduct"><list><block s="reportIfElse"><block s="reportVariadicGreaterThanOrEquals"><list><block var="Mass"/><block s="reportAttributeOf"><l>Mass</l><block var="item"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportAttributeOf"><l>Mass</l><block var="item"/></block><block var="Mass"/></block><block s="reportVariadicSum"><list><block var="X Speed"/><block s="reportAttributeOf"><l>X Speed</l><block var="item"/></block></list></block></list></block><block s="reportVariadicSum"><list><block var="X Speed"/><block s="reportAttributeOf"><l>X Speed</l><block var="item"/></block></list></block></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>30</l></list></block></list></block><l>1</l><l>-1</l></block></list></block></block></script></block></script><list></list></block></script></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="New Collision"/><custom-block s="lean if clone is touching %upvar in %l"><l>item</l><block var="List of Objects"/></custom-block></list></block><script><block s="doSetVar"><l>New Collision</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>Momentum</l><block s="reportVariadicProduct"><list><block var="X Speed"/><block var="Mass"/></list></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="Momentum"/><block s="reportAttributeOf"><l>Momentum</l><block var="item"/></block></list></block><script><block s="doWait"><l>0.01</l></block><block s="doSetVar"><l>X Speed</l><block s="reportVariadicProduct"><list><block s="reportIfElse"><block s="reportVariadicGreaterThanOrEquals"><list><block var="Mass"/><block s="reportAttributeOf"><l>Mass</l><block var="item"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><l>1</l><block s="reportQuotient"><block s="reportAttributeOf"><l>Mass</l><block var="item"/></block><block var="Mass"/></block></block><block s="reportVariadicSum"><list><block var="X Speed"/><block s="reportAttributeOf"><l>X Speed</l><block var="item"/></block></list></block></list></block><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><l>1</l><block s="reportQuotient"><block var="Mass"/><block s="reportAttributeOf"><l>Mass</l><block var="item"/></block></block></block><block s="reportVariadicSum"><list><block var="X Speed"/><block s="reportAttributeOf"><l>X Speed</l><block var="item"/></block></list></block></list></block><l>-1</l></list></block></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>30</l></list></block></list></block><l>1</l><l>-1</l></block></list></block></block></script><script><block s="doSetVar"><l>X Speed</l><block s="reportVariadicProduct"><list><block s="reportIfElse"><block s="reportVariadicGreaterThanOrEquals"><list><block var="Mass"/><block s="reportAttributeOf"><l>Mass</l><block var="item"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportAttributeOf"><l>Mass</l><block var="item"/></block><block var="Mass"/></block><block s="reportVariadicSum"><list><block var="X Speed"/><block s="reportAttributeOf"><l>X Speed</l><block var="item"/></block></list></block></list></block><block s="reportVariadicSum"><list><block var="X Speed"/><block s="reportAttributeOf"><l>X Speed</l><block var="item"/></block></list></block></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>30</l></list></block></list></block><l>1</l><l>-1</l></block></list></block></block></script></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><custom-block s="lean if clone is touching %upvar in %l"><l>item</l><block var="List of Objects"/></custom-block><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block><l>30</l></list></block></list></block></list></block><script><block s="setYPosition"><block s="reportVariadicSum"><list><l>52</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="item"/></block></list></block></block><block s="changeXPosition"><block var="X Speed"/></block><block s="doSetVar"><l>R right</l><l>0</l></block><block s="doSetVar"><l>R Left</l><l>0</l></block><block s="doSetVar"><l>Y Speed</l><block s="reportDifference"><block var="Y Speed"/><block var="Y Speed"/></block></block><block s="doChangeVar"><l>X Speed</l><block s="reportIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><block var="X Speed"/><l>2</l></list></block><block s="reportVariadicGreaterThan"><list><block var="X Speed"/><l>-2</l></list></block></list></block><block s="reportQuotient"><block var="X Speed"/><l>-1</l></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="X Speed"/><l>0</l></list></block><block s="reportQuotient"><block var="Mass"/><l>20</l></block><block s="reportQuotient"><block var="Mass"/><l>-20</l></block></block></block><comment w="90" collapsed="false">Friction</comment></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>315</l></list></block><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>45</l></list></block></list></block><script><block s="setHeading"><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>45</l></list></block><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>135</l></list></block></list></block><script><block s="setHeading"><l>90</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>135</l></list></block><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>225</l></list></block></list></block><script><block s="setHeading"><l>180</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>225</l></list></block><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>315</l></list></block></list></block><script><block s="setHeading"><l>270</l></block></script><list></list></block></script><script><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>-149</l></list></block><script><block s="setYPosition"><l>-150</l></block><block s="changeXPosition"><block var="X Speed"/></block><block s="doSetVar"><l>R right</l><l>0</l></block><block s="doSetVar"><l>R Left</l><l>0</l></block><block s="doSetVar"><l>Y Speed</l><block s="reportDifference"><block var="Y Speed"/><block var="Y Speed"/></block></block><block s="doChangeVar"><l>X Speed</l><block s="reportIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><block var="X Speed"/><l>2</l></list></block><block s="reportVariadicGreaterThan"><list><block var="X Speed"/><l>-2</l></list></block></list></block><block s="reportQuotient"><block var="X Speed"/><l>-1</l></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="X Speed"/><l>0</l></list></block><block s="reportQuotient"><block var="Mass"/><l>20</l></block><block s="reportQuotient"><block var="Mass"/><l>-20</l></block></block></block><comment w="90" collapsed="false">Friction</comment></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>315</l></list></block><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>45</l></list></block></list></block><script><block s="setHeading"><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>45</l></list></block><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>135</l></list></block></list></block><script><block s="setHeading"><l>90</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>135</l></list></block><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>225</l></list></block></list></block><script><block s="setHeading"><l>180</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>225</l></list></block><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>direction</option></l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>315</l></list></block></list></block><script><block s="setHeading"><l>270</l></block></script><list></list></block></script><list></list></block></script></block></script></block></script><script x="559.8081705729162" y="301.16666666666606"><block s="receiveGo"></block><block s="doSetVar"><l>List of Objects</l><block s="reportNewList"><list></list></block></block><block s="doForever"><script><block s="doIf"><block s="reportKeyPressed"><l><option>0</option></l></block><script><block s="createClone"><l><option>myself</option></l></block><block s="doWaitUntil"><block s="reportNot"><block s="reportKeyPressed"><l><option>0</option></l></block></block></block></script><list></list></block></script></block></script><script x="552.4012695312495" y="496.33333333333303"><block s="receiveKey"><l><option>space</option></l><list></list></block><block s="doForever"><script><block s="doTellTo"><block s="reportListItem"><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="List of Objects"/></block></block><block var="List of Objects"/></block><block s="reifyScript"><script><block s="changeYPosition"><l>10</l></block><block s="doWait"><l>0.1</l></block><block s="doSetVar"><l>X Speed</l><block s="reportRandom"><l>-20</l><l>20</l></block></block><block s="doSetVar"><l>Y Speed</l><block s="reportRandom"><l>10</l><l>20</l></block></block></script><list></list></block><list></list></block><block s="doWait"><l>5</l></block></script></block></script><comment x="493.41005859374945" y="14.16666666666606" w="90" collapsed="false">To Start press the flag icon. press 0 to summon a block&#xD;&#xD;press space to infinently throw the blocks around.&#xD;&#xD;to remove and stop everything press the stop button&#xD;&#xD;&#xD;&#xD;feel free to improve upon this.&#xD;&#xD;though it&apos;s very messy</comment></scripts></sprite><watcher var="List of Objects" style="normal" x="10.000000000000227" y="10" color="243,118,29" extX="80" extY="70"/><watcher var="debugging" style="normal" x="116.99999999999955" y="10" color="243,118,29" hidden="true"/><watcher scope="Sprite" var="Acceleration" style="normal" x="10.000000000000227" y="10" color="243,118,29" hidden="true"/><watcher scope="Sprite" var="Mass" style="normal" x="10.000000000000227" y="31.000001999999967" color="243,118,29" hidden="true"/><watcher scope="Sprite" var="R Left" style="normal" x="10.000000000000227" y="52.00000399999995" color="243,118,29" hidden="true"/><watcher scope="Sprite" var="X Speed" style="normal" x="10.000000000000227" y="94.00000799999987" color="243,118,29" hidden="true"/><watcher scope="Sprite" var="Y Speed" style="normal" x="10.000000000000227" y="115.00000999999986" color="243,118,29" hidden="true"/><watcher scope="Sprite" var="R right" style="normal" x="9.039548022598865" y="9.039548022598865" color="243,118,29" hidden="true"/><watcher scope="Sprite" var="New Collision" style="normal" x="9.039548022598865" y="28.022600677966096" color="243,118,29" hidden="true"/><watcher scope="Sprite" var="Momentum" style="normal" x="10" y="10" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="List of Objects"><list struct="atomic" id="2257"></list></variable><variable name="debugging"><l>0</l></variable></variables></scene></scenes></project><media name="Physics simulation" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><costume name="Square" center-x="28" center-y="27" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI1NS42NTY4NSIgaGVpZ2h0PSI1My43NzQxNSIgdmlld0JveD0iMCwwLDU1LjY1Njg1LDUzLjc3NDE1Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjEyLjE3MTU4LC0xNTMuMTEyOTIpIj48ZyBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpc1BhaW50aW5nTGF5ZXImcXVvdDs6dHJ1ZX0iIGZpbGw9IiM5OTY2ZmYiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48cGF0aCBkPSJNMjEzLjE3MTU4LDIwNS44ODcwOHYtNTEuNzc0MTVoNTMuNjU2ODV2NTEuNzc0MTV6Ii8+PC9nPjwvZz48L3N2Zz4=" mediaID="Physics simulation_Sprite_cst_Square"/></media></snapdata>