<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>FarseerPhysics Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/Wiki/View.aspx?ProjectName=FarseerPhysics&amp;title=Home</link><description>FarseerPhysics Wiki Rss Description</description><item><title>New Comment on "Screenshots"</title><link>http://farseerphysics.codeplex.com/wikipage?title=Screenshots&amp;ANCHOR#C14167</link><description>Tried your engine yestarday, greatest physics engine I have ever come upon for free, thanx&amp;#33;</description><author>theaegd</author><pubDate>Tue, 10 Nov 2009 13:11:35 GMT</pubDate><guid isPermaLink="false">New Comment on "Screenshots" 20091110011135P</guid></item><item><title>New Comment on "Screenshots"</title><link>http://farseerphysics.codeplex.com/wikipage?title=Screenshots&amp;ANCHOR#C14138</link><description>Intresting, I will test out your engine tonight, But for these pics, are these made by the engine, or games using the engine&amp;#63;</description><author>Theaegd</author><pubDate>Thu, 05 Nov 2009 13:02:04 GMT</pubDate><guid isPermaLink="false">New Comment on "Screenshots" 20091105010204P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://farseerphysics.codeplex.com/documentation?version=54</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Farseer Physics Engine Manual &lt;/h1&gt;
&lt;h1&gt;&lt;b&gt;Warning&lt;/b&gt;&lt;/h1&gt;This manual is not up to date. Use &lt;a href="http://www.physicspoweredgames.com/FarseerPhysics/Manual2.1.htm" class="externalLink"&gt;http://www.physicspoweredgames.com/FarseerPhysics/Manual2.1.htm&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; instead.&lt;br /&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;The Farseer Physics Engine is an easy to use 2D physics engine designed for Microsoft’s XNA and Silverlight platforms. The Farseer Physics Engine focuses on simplicity, useful features, and enabling the creation of fun, dynamic games.&lt;br /&gt;
&lt;h2&gt;Overview&lt;/h2&gt;Getting right to the nut, the Farseer Physics Engine is designed to control the position and rotation of game entities over time. &lt;br /&gt;&lt;br /&gt;In the real world, things move and spin due to applied forces and torques. In Farseer, the same is true. Objects called bodies represent the real world things.  As forces and torques are applied, the bodies react according to the laws of 2D physics. The position and rotation of these bodies are then used to update game entities.&lt;br /&gt;&lt;br /&gt;In the very simplest outline it works like this:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Create Body object&lt;/li&gt;
&lt;li&gt;Add Body object to simulator.&lt;/li&gt;
&lt;li&gt;Begin Game Loop
&lt;ul&gt;&lt;li&gt;Apply forces and torques to Body.&lt;/li&gt;
&lt;li&gt;Update the simulator&lt;/li&gt;
&lt;li&gt;Set sprite position and rotation equal to Body position and rotation.&lt;/li&gt;
&lt;li&gt;Draw game sprite&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;End Game Loop&lt;/li&gt;&lt;/ul&gt;
Bodies, by design, have no geometry in the 2D world and therefore have no concept of collisions. &lt;br /&gt;&lt;br /&gt;For collision, Farseer has the Geometry object. Geometry objects are represented as 2D polygons and can be either concave or convex. They are defined by a set of vertices.  One or more geometries are attached to a body in order to give the body geometrical awareness. This allows the body to participate in collisions with other bodies(actually other geometries attached to other bodies, but you get the picture.)&lt;br /&gt;&lt;br /&gt;&amp;lt;todo: talk about joints, spring, and controllers&amp;gt;&lt;br /&gt;
&lt;h2&gt;Quick Start Sample&lt;/h2&gt;The following is all the code for creating 2 simple bodies with geometry and attaching them with a single revolute joint.  This simple sample shows the basics of using Farseer. The rest is really just details. The actual sample can be found in the XNA samples download.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=19561" alt="QuickStartSample1.png" title="QuickStartSample1.png" /&gt; &lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=19562" alt="QuickStartSample2.png" title="QuickStartSample2.png" /&gt; &lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=19563" alt="QuickStartSample3.png" title="QuickStartSample3.png" /&gt; &lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=19564" alt="QuickStartSample4.png" title="QuickStartSample4.png" /&gt; &lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=19565" alt="QuickStartSample5.png" title="QuickStartSample5.png" /&gt; &lt;br /&gt;
&lt;h2&gt;Dynamics&lt;/h2&gt;&lt;h3&gt;&lt;u&gt;PhysicsSimulator&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;The physics simulator manages all physics objects while the simulation is running. It controls the update loop for the simulation.
&lt;h4&gt;Public Properties&lt;/h4&gt;&lt;h5&gt;-GeometryList&lt;/h5&gt;The list of geometries that are part of the simulation.&lt;br /&gt;NOTE: This list should be treated as read-only.  Items should not be added or removed directly from this list. Use PhysicsSimulator.Add(...) for that.
&lt;h5&gt;-BodyList&lt;/h5&gt;The list of bodies that are part of the simulation.&lt;br /&gt;NOTE: This list should be treated as read-only.  Items should not be added or removed directly from this list. Use PhysicsSimulator.Add(...) for that.
&lt;h5&gt;-JointList&lt;/h5&gt;The list of joints that are part of the simulation.&lt;br /&gt;NOTE: This list should be treated as read-only.  Items should not be added or removed directly from this list. Use PhysicsSimulator.Add(...) for that.
&lt;h5&gt;-ControllerList&lt;/h5&gt;The list of controllers that are part of the simulation.&lt;br /&gt;NOTE: This list should be treated as read-only.  Items should not be added or removed directly from this list. Use PhysicsSimulator.Add(...) for that.
&lt;h5&gt;-Vector2 Gravity&lt;/h5&gt;The gravity currently applied to objects in the simulation
&lt;h5&gt;-int Iterations&lt;/h5&gt;The number of internal iterations that will be used to reconscile collision and joint errors.  The more iterations used the more stable the collision resolution and joints, however, there is a performance penalty that comes with  larger number of iterations.&lt;br /&gt;&lt;br /&gt;The default value is 5. If you need more stability for stacking or other situations try 10.&lt;br /&gt;&lt;br /&gt;For more info on this property see Erin Catto's &lt;a href="http://www.gphysics.com/files/GDC2007_ErinCatto.zip" class="externalLink"&gt;paper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;
&lt;h5&gt;-float AllowedPenetration&lt;/h5&gt;When two bodies collide some degree of penatration is allowed. This helps decrease oscillations and increases stability, especially of stacked bodies.  This value sets the penetration that is allowed.&lt;br /&gt;&lt;br /&gt;The default value is .01 and shouldn't need to be changed in normal operation of the engine.&lt;br /&gt;&lt;br /&gt;For more info on this property see Erin Catto's &lt;a href="http://www.gphysics.com/files/GDC2007_ErinCatto.zip" class="externalLink"&gt;paper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;
&lt;h5&gt;-float BiasFactor&lt;/h5&gt;This is a more advanced property.  It controls how quick the collision error or joint error between bodies is corrected.  Lower values make things a bit softer but more stable while higher values make things more rigid but prone to jitter.&lt;br /&gt;&lt;br /&gt;This propety should always be between 0 and 1.&lt;br /&gt;&lt;br /&gt;The default value is .8. If you need to decrease jitter, try something less than .8. .2 tends to work well.&lt;br /&gt;&lt;br /&gt;For more info on this property see Erin Catto's &lt;a href="http://www.gphysics.com/files/GDC2007_ErinCatto.zip" class="externalLink"&gt;paper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;
&lt;h5&gt;-int MaxContactsToDetect&lt;/h5&gt;When two geometries collide, the vertices of their geometries overlap eachother. Some vertices of geometry1 are inside geometry2 and vice-versa.  Calculating all the vertecies that overlap takes cpu time.  This property sets a maximum on the number of overlapping vertices to find. Essentially it provides a way to short-circuit the collision detection between two bodies in order it increase performance.&lt;br /&gt;&lt;br /&gt;The default value is 5.  It should not need to be changed for most situations.
&lt;h5&gt;-int MaxContactsToResolve&lt;/h5&gt;Once all collision points between two bodies are found they need to be resolved with impulses.  Farseer sorts the list of collisions detected (limited by MaxContactsToDetect) by penetration depth so that it can resolve the deepest collisions first.&lt;br /&gt;This property sets a maximum on the number of collision to resolve. &lt;br /&gt;The default value is 2 and should be enough for most situations.  Some stacking situations may require a higher value
&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h5&gt;-Add(Geometry)&lt;/h5&gt;Adds a Geometry to the simulation
&lt;h5&gt;-Add(Body)&lt;/h5&gt;Adds a Body to the simulation
&lt;h5&gt;-Add(Controller)&lt;/h5&gt;Adds a Controller to the simulation
&lt;h5&gt;-Add(Joint)&lt;/h5&gt;Adds a Joint to the simulation
&lt;h5&gt;-Clear()&lt;/h5&gt;Clears all physics objects from the simulation.  More specifically, it clears Bodies, Geometries, Joints, Controllers, and the internal Arbiters.
&lt;h5&gt;-Geometry Collide(Vector2 point)&lt;/h5&gt;Checks to see if a given point collides with any geometries in the simulation. If it does, the geometry is returned.  If it doesen't, null is returned.&lt;br /&gt;This method is very helpful for mouse picking. Just send the mouse click position to this method and if the click collides with a geometry, the geometry will be returned and the geometry has a reference to the underlying Body.&lt;br /&gt;&lt;br /&gt;Here is a small example: (point represents the mouse cursor position&lt;br /&gt;&lt;pre&gt;
Geometry pickedGeometry = physicsSimulator.Collide(point);
if (pickedGeometry != null) {
     LinearSpring mousePickSpring = ControllerFactory.Instance.CreateFixedLinearSpring(physicsSimulator, 
                                                      pickedGeometry.Body, pickedGeometry.Body.GetLocalPosition(point), 
                                                      point, 20, 10);
}
&lt;/pre&gt;
&lt;h5&gt;-Geometry Collide(X,Y)&lt;/h5&gt;Overload for above method
&lt;h5&gt;-PhysicsSimulator()&lt;/h5&gt;Constructor that defaults to zero gravity
&lt;h5&gt;-PhysicsSimulator(Vector2 gravity)&lt;/h5&gt;Constructor with gravity
&lt;h5&gt;-Remove(Geometry)&lt;/h5&gt;Removes a Geometry from the simulation
&lt;h5&gt;-Remove(Body)&lt;/h5&gt;Removes a Body from the simulation
&lt;h5&gt;-Remove(Controller)&lt;/h5&gt;Removes a Controller from the simulation
&lt;h5&gt;-Remove(Joint)&lt;/h5&gt;Removes a Joint from the simulation
&lt;h5&gt;-Update(float dt)&lt;/h5&gt;&lt;i&gt;dt&lt;/i&gt; is the time in seconds.&lt;br /&gt;&lt;br /&gt;This method steps the simulation forward in time. It should be called continuously in an update loop while the game is running.&lt;br /&gt; &lt;br /&gt;This method assumes a fixed time step (dt).  This means the value of dt should be the same each update call and it should be called with a frequency equal to dt. &lt;br /&gt; &lt;br /&gt;For example, if you want to update the simulation at 100 frames per second,  you would call update every 10 milleseconds and pass .01 (10ms converted to seconds) as your value for dt.&lt;br /&gt;&lt;br /&gt;Example (assumes XNA):&lt;br /&gt;In the Game class:&lt;br /&gt;&lt;pre&gt;
this.TargetElapsedTime = new TimeSpan(0, 0, 0, 0, 10);  //represents 10ms
this.IsFixedTimeStep = true;
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In the Update&lt;br /&gt;&lt;pre&gt;
protected override void Update(GameTime gameTime) {
physicsSimulator.Update(gameTime.ElapsedGameTime.Milliseconds * .001f); //convert from ms to seconds
}
&lt;/pre&gt;
&lt;h3&gt;&lt;u&gt;Body&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;Bodies are the core physics objects in Farseer.  Forces, torques, and impulses are applied to bodies and the bodies react by moving realistically.  Bodies do not contain any form of collision geometry by themselves. 
&lt;h4&gt;Public Properties&lt;/h4&gt;&lt;h5&gt;-AngularVelocity&lt;/h5&gt;The rate at which a body is rotating
&lt;h5&gt;-Enabled&lt;/h5&gt;Sets whether or not the body will take part in the simulation. If not enabled, the body will remain in the internal list of bodies but it will not be updated.
&lt;h5&gt;-Force &lt;/h5&gt;The total amount of force that will be applied to the body in the upcoming loop. The Force is cleared at the end of every update call, so this value should only be called just prior to calling update.&lt;br /&gt;&lt;br /&gt;This property is read-only.
&lt;h5&gt;-Torque&lt;/h5&gt;The total amount of torque that will be applied to the body in the upcoming loop. The Torque is cleared at the end of every update call, so this value should only be called just prior to calling update.&lt;br /&gt;&lt;br /&gt;Torque can be thought of as the rotational analog of a force.&lt;br /&gt;&lt;br /&gt;This property is read-only.
&lt;h5&gt;-TotalRotation&lt;/h5&gt;Returns the total rotation of a body. If a body spins around 10 times then TotalRotation wold return 2 * Pi * 10.  This property is mostly intended for internal use by the angle joints and springs but it could be useful in some situataions for game related things.&lt;br /&gt;&lt;br /&gt;This property is read-only
&lt;h5&gt;-XVectorInWorldCoordinates&lt;/h5&gt;Returns a unit vector that represents the local X direction of a body converted to world coordinates.&lt;br /&gt;&lt;br /&gt;This property is read-only
&lt;h5&gt;-YVectorInWorldCoordinates&lt;/h5&gt;Returns a unit vector that represents the local Y direction of a body converted to world coordinates.&lt;br /&gt;&lt;br /&gt;This property is read-only&lt;br /&gt;
&lt;h4&gt;Public Methods&lt;/h4&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;&lt;u&gt;BodyFactory&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;Arbiter&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;
&lt;h2&gt;Joints&lt;/h2&gt;&lt;h3&gt;&lt;u&gt;AngleJoint&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;FixedAngleJoint&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;AngleLimitJoint&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;FixedAngleLimitJoint&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;RevoluteJoint&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;FixedRevoluteJoint&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;PinJoint&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;SliderJoint&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;Joint&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;JointFactory&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;
&lt;h2&gt;Controllers&lt;/h2&gt;&lt;h3&gt;&lt;u&gt;AngleSpring&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;FixedAngleSpring&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;LinearSpring&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;FixedLinearSpring&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;Controller&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;ControllerFactory&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;
&lt;h2&gt;Collision&lt;/h2&gt;&lt;h3&gt;&lt;u&gt;Geometry&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;GeometryFactory&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;Vertices&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;AABB&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;Grid&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;Contact&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;&lt;u&gt;Feature&lt;/u&gt;&lt;/h3&gt;&lt;h4&gt;Overview&lt;/h4&gt;&lt;h4&gt;Public Methods&lt;/h4&gt;&lt;h3&gt;Example Code Snippets&lt;/h3&gt;
Here is an old document on how Farseer Collision Detection works: &lt;a href="javascript:window.location.href='http://farseerphysics.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=24894';"&gt;FarseerPhysicsDocumentation.pdf&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Mon, 26 Oct 2009 17:51:09 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20091026055109P</guid></item><item><title>Updated Wiki: Tutorials</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Tutorials&amp;version=11</link><description>&lt;div class="wikidoc"&gt;Here is a list of tutorials and FAQ created by the community:
&lt;h2&gt;Tutorials&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.xnatutorial.com/?p=62" class="externalLink"&gt;Video introduction to Farseer Physics Engine&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nerg4l.ne.funpic.de/doku.php/wiki:tutorials:nergal:quickstartsample" class="externalLink"&gt;C# quickstart sample&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.andybeaulieu.com/Home/tabid/67/EntryID/89/Default.aspx" class="externalLink"&gt;Getting Started with Farseer Physics and Silverlight&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.flatredball.com/frb/docs/index.php?title=FlatRedBallXna:Tutorials:Farseer" class="externalLink"&gt;Using Farseer Physics Engine with FlatRedBall Game Engine&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Wiki/View.aspx?title=DifferentPhases&amp;referringTitle=Home"&gt;What is a narrow and a broad phase&amp;#63;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Tunneling&amp;referringTitle=Home"&gt;What is tunneling&amp;#63;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=59948" class="externalLink"&gt;Can I use my game for commercial use?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=56162" class="externalLink"&gt;Check if a geometry is NOT colliding with anything&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=56165" class="externalLink"&gt;Handle only enter collision events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=44960" class="externalLink"&gt;Detect if a character stands on ground or jumps/falls&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=56417" class="externalLink"&gt;Why is drawing or collision off center? (Centroids CreatePolygonBody CreatePolygonGeom)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Tue, 13 Oct 2009 21:07:20 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Tutorials 20091013090720P</guid></item><item><title>Updated Wiki: EngineUsage</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=EngineUsage&amp;version=18</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Games or libraries that uses Farseer Physics&lt;/h1&gt;Here is a list of games and libraries that uses or somehow relates to Farseer Physics.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;XNA Games&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.specop.se/" class="externalLink"&gt;Superspace&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=NhnqvywXdXk" class="externalLink"&gt;36 Chambers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=phMS3B3U5Tk" class="externalLink"&gt;Square Off (Video only so far)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://upstudiodp.com/wp-content/themes/folioelements/ajax/pageloader.php?postnum=52" class="externalLink"&gt;Ninjics (Video only so far)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://walaber.com/index.php?action=showitem&amp;amp;id=18" class="externalLink"&gt;Gymnast&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=447058" class="externalLink"&gt;Bennu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://trashbash.codeplex.com/" class="externalLink"&gt;TrashBash&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.occasionalgamer.com/page/Gum-Drop-Celestial-Frontier.aspx" class="externalLink"&gt;Operation Gum Drop&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://theonegame.net/" class="externalLink"&gt;The One Game&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wrestlersretrogame.codeplex.com/" class="externalLink"&gt;The Wrestlers Retro Game&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Silverlight Games&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://silvertower.codeplex.com/" class="externalLink"&gt;SilverTower&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wearebugs.codeplex.com/" class="externalLink"&gt;We Are Bugs (A Silverlight Game)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseergames.com/Games/Diver/Diver.aspx" class="externalLink"&gt;Diver&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseergames.com/Games/TireStorm/TireStorm.aspx" class="externalLink"&gt;Tire Storm&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/bosslaunch/bosslaunch.htm" class="externalLink"&gt;Boss Launch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/hookshot/spritehandhookshot.htm" class="externalLink"&gt;Hook Shot&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/sortthefoobars/testpage.html" class="externalLink"&gt;Sort the Foobars&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.privateasteroid.com/games/diw/Default.aspx" class="externalLink"&gt;Drop It Well&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bishoylabib.blogspot.com/2009/04/construction.html" class="externalLink"&gt;Construction&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.silverarcade.com/Games/mouk79/Bojambo-Pop" class="externalLink"&gt;Bojambo Pop&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Libaries&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://dengine.codeplex.com/" class="externalLink"&gt;DEngine - C# XNA 2D Game Engine&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://physicshelper.codeplex.com/" class="externalLink"&gt;Physics Helper for Silverlight, Blend, and Farseer&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://silversprite.codeplex.com/" class="externalLink"&gt;SilverSprite&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Others&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://simpleseer.codeplex.com/" class="externalLink"&gt;SimpleSeer&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseersimplesamples.codeplex.com/" class="externalLink"&gt;Farseer Physics Engine Simple Samples&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Sat, 26 Sep 2009 15:49:43 GMT</pubDate><guid isPermaLink="false">Updated Wiki: EngineUsage 20090926034943P</guid></item><item><title>New Comment on "Donations"</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Donations&amp;ANCHOR#C13652</link><description>Did you get the Xbox yet&amp;#63;</description><author>fixitchris</author><pubDate>Tue, 25 Aug 2009 03:57:48 GMT</pubDate><guid isPermaLink="false">New Comment on "Donations" 20090825035748A</guid></item><item><title>Updated Wiki: Donations</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Donations&amp;version=10</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Donations&lt;/h1&gt;This is a list of people who have donated to our project. We would like to thank each and every one of you who donated. It is very much appreciated.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Daniel Gimenez     - $50.00 USD&lt;/li&gt;
&lt;li&gt;Aranda Morrison  - $50.00 USD&lt;/li&gt;
&lt;li&gt;Dan Wellman        - $15.00 USD&lt;/li&gt;
&lt;li&gt;David Fleming       - $30.00 USD&lt;/li&gt;
&lt;li&gt;Chris Misztur        - $5.00 USD + 60GB Xbox360 harddrive&lt;/li&gt;
&lt;li&gt;Alex Hogan           - $50.00 USD&lt;/li&gt;
&lt;li&gt;Jonas Andersson   - $20.00 USD&lt;/li&gt;
&lt;li&gt;Daniel Armstrong   - $100.00 USD&lt;/li&gt;
&lt;li&gt;Kevin Small            - $20.00 USD&lt;/li&gt;
&lt;li&gt;Nicol&amp;#225;s Hormaz&amp;#225;bal - $20.00 USD&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Sun, 16 Aug 2009 22:33:23 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Donations 20090816103323P</guid></item><item><title>Updated Wiki: Donations</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Donations&amp;version=9</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Donations&lt;/h1&gt;This is a list of people who have donated to our project. We would like to thank each and every one of you who donated. It is very much appreciated.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Daniel Gimenez     - $50.00 USD&lt;/li&gt;
&lt;li&gt;Aranda Morrison  - $50.00 USD&lt;/li&gt;
&lt;li&gt;Dan Wellman        - $15.00 USD&lt;/li&gt;
&lt;li&gt;David Fleming       - $30.00 USD&lt;/li&gt;
&lt;li&gt;Chris Misztur        - $5.00 USD + 60GB Xbox360 harddrive&lt;/li&gt;
&lt;li&gt;Alex Hogan           - $50.00 USD&lt;/li&gt;
&lt;li&gt;Jonas Andersson   - $20.00 USD&lt;/li&gt;
&lt;li&gt;Daniel Armstrong   - $100.00 USD&lt;/li&gt;
&lt;li&gt;Kevin Small            - $20.00 USD&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Sat, 15 Aug 2009 14:00:58 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Donations 20090815020058P</guid></item><item><title>Updated Wiki: EngineUsage</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=EngineUsage&amp;version=17</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Games or libraries that uses Farseer Physics&lt;/h1&gt;Here is a list of games and libraries that uses or somehow relates to Farseer Physics.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;XNA Games&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.specop.se/" class="externalLink"&gt;Superspace&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=NhnqvywXdXk" class="externalLink"&gt;36 Chambers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=phMS3B3U5Tk" class="externalLink"&gt;Square Off (Video only so far)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://upstudiodp.com/wp-content/themes/folioelements/ajax/pageloader.php?postnum=52" class="externalLink"&gt;Ninjics (Video only so far)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://walaber.com/index.php?action=showitem&amp;amp;id=18" class="externalLink"&gt;Gymnast&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=447058" class="externalLink"&gt;Bennu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://trashbash.codeplex.com/" class="externalLink"&gt;TrashBash&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.occasionalgamer.com/page/Gum-Drop-Celestial-Frontier.aspx" class="externalLink"&gt;Operation Gum Drop&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://theonegame.net/" class="externalLink"&gt;The One Game&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Silverlight Games&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://silvertower.codeplex.com/" class="externalLink"&gt;SilverTower&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wearebugs.codeplex.com/" class="externalLink"&gt;We Are Bugs (A Silverlight Game)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseergames.com/Games/Diver/Diver.aspx" class="externalLink"&gt;Diver&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseergames.com/Games/TireStorm/TireStorm.aspx" class="externalLink"&gt;Tire Storm&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/bosslaunch/bosslaunch.htm" class="externalLink"&gt;Boss Launch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/hookshot/spritehandhookshot.htm" class="externalLink"&gt;Hook Shot&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/sortthefoobars/testpage.html" class="externalLink"&gt;Sort the Foobars&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.privateasteroid.com/games/diw/Default.aspx" class="externalLink"&gt;Drop It Well&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bishoylabib.blogspot.com/2009/04/construction.html" class="externalLink"&gt;Construction&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.silverarcade.com/Games/mouk79/Bojambo-Pop" class="externalLink"&gt;Bojambo Pop&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Libaries&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://dengine.codeplex.com/" class="externalLink"&gt;DEngine - C# XNA 2D Game Engine&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://physicshelper.codeplex.com/" class="externalLink"&gt;Physics Helper for Silverlight, Blend, and Farseer&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://silversprite.codeplex.com/" class="externalLink"&gt;SilverSprite&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Others&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://simpleseer.codeplex.com/" class="externalLink"&gt;SimpleSeer&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseersimplesamples.codeplex.com/" class="externalLink"&gt;Farseer Physics Engine Simple Samples&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Fri, 14 Aug 2009 18:14:05 GMT</pubDate><guid isPermaLink="false">Updated Wiki: EngineUsage 20090814061405P</guid></item><item><title>Updated Wiki: EngineUsage</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=EngineUsage&amp;version=16</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Games or libraries that uses Farseer Physics&lt;/h1&gt;Here is a list of games and libraries that uses or somehow relates to Farseer Physics.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;XNA Games&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.specop.se/" class="externalLink"&gt;SuperSpace&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=NhnqvywXdXk" class="externalLink"&gt;36 Chambers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=phMS3B3U5Tk" class="externalLink"&gt;Square Off (Video only so far)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://upstudiodp.com/wp-content/themes/folioelements/ajax/pageloader.php?postnum=52" class="externalLink"&gt;Ninjics (Video only so far)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://walaber.com/index.php?action=showitem&amp;amp;id=18" class="externalLink"&gt;Gymnast&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=447058" class="externalLink"&gt;Bennu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://trashbash.codeplex.com/" class="externalLink"&gt;TrashBash&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.occasionalgamer.com/page/Gum-Drop-Celestial-Frontier.aspx" class="externalLink"&gt;Operation Gum Drop&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://theonegame.net/" class="externalLink"&gt;The One Game&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Silverlight Games&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://silvertower.codeplex.com/" class="externalLink"&gt;SilverTower&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wearebugs.codeplex.com/" class="externalLink"&gt;We Are Bugs (A Silverlight Game)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseergames.com/Games/Diver/Diver.aspx" class="externalLink"&gt;Diver&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseergames.com/Games/TireStorm/TireStorm.aspx" class="externalLink"&gt;Tire Storm&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/bosslaunch/bosslaunch.htm" class="externalLink"&gt;Boss Launch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/hookshot/spritehandhookshot.htm" class="externalLink"&gt;Hook Shot&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/sortthefoobars/testpage.html" class="externalLink"&gt;Sort the Foobars&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.privateasteroid.com/games/diw/Default.aspx" class="externalLink"&gt;Drop It Well&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bishoylabib.blogspot.com/2009/04/construction.html" class="externalLink"&gt;Construction&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.silverarcade.com/Games/mouk79/Bojambo-Pop" class="externalLink"&gt;Bojambo Pop&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Libaries&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://dengine.codeplex.com/" class="externalLink"&gt;DEngine - C# XNA 2D Game Engine&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://physicshelper.codeplex.com/" class="externalLink"&gt;Physics Helper for Silverlight, Blend, and Farseer&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://silversprite.codeplex.com/" class="externalLink"&gt;SilverSprite&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Others&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://simpleseer.codeplex.com/" class="externalLink"&gt;SimpleSeer&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseersimplesamples.codeplex.com/" class="externalLink"&gt;Farseer Physics Engine Simple Samples&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Fri, 14 Aug 2009 18:13:41 GMT</pubDate><guid isPermaLink="false">Updated Wiki: EngineUsage 20090814061341P</guid></item><item><title>Updated Wiki: EngineUsage</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=EngineUsage&amp;version=15</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Games or libraries that uses Farseer Physics&lt;/h1&gt;Here is a list of games and libraries that uses or somehow relates to Farseer Physics.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;XNA Games&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=phMS3B3U5Tk" class="externalLink"&gt;Square Off (Video only so far)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://upstudiodp.com/wp-content/themes/folioelements/ajax/pageloader.php?postnum=52" class="externalLink"&gt;Ninjics (Video only so far)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://walaber.com/index.php?action=showitem&amp;amp;id=18" class="externalLink"&gt;Gymnast&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=447058" class="externalLink"&gt;Bennu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://trashbash.codeplex.com/" class="externalLink"&gt;TrashBash&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.occasionalgamer.com/page/Gum-Drop-Celestial-Frontier.aspx" class="externalLink"&gt;Operation Gum Drop&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://theonegame.net/" class="externalLink"&gt;The One Game&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Silverlight Games&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://silvertower.codeplex.com/" class="externalLink"&gt;SilverTower&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wearebugs.codeplex.com/" class="externalLink"&gt;We Are Bugs (A Silverlight Game)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseergames.com/Games/Diver/Diver.aspx" class="externalLink"&gt;Diver&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseergames.com/Games/TireStorm/TireStorm.aspx" class="externalLink"&gt;Tire Storm&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/bosslaunch/bosslaunch.htm" class="externalLink"&gt;Boss Launch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/hookshot/spritehandhookshot.htm" class="externalLink"&gt;Hook Shot&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/sortthefoobars/testpage.html" class="externalLink"&gt;Sort the Foobars&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.privateasteroid.com/games/diw/Default.aspx" class="externalLink"&gt;Drop It Well&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bishoylabib.blogspot.com/2009/04/construction.html" class="externalLink"&gt;Construction&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.silverarcade.com/Games/mouk79/Bojambo-Pop" class="externalLink"&gt;Bojambo Pop&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Libaries&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://dengine.codeplex.com/" class="externalLink"&gt;DEngine - C# XNA 2D Game Engine&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://physicshelper.codeplex.com/" class="externalLink"&gt;Physics Helper for Silverlight, Blend, and Farseer&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://silversprite.codeplex.com/" class="externalLink"&gt;SilverSprite&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Others&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://simpleseer.codeplex.com/" class="externalLink"&gt;SimpleSeer&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseersimplesamples.codeplex.com/" class="externalLink"&gt;Farseer Physics Engine Simple Samples&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Thu, 13 Aug 2009 00:25:03 GMT</pubDate><guid isPermaLink="false">Updated Wiki: EngineUsage 20090813122503A</guid></item><item><title>Updated Wiki: EngineUsage</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=EngineUsage&amp;version=14</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Games or libraries that uses Farseer Physics&lt;/h1&gt;Here is a list of games and libraries that uses or somehow relates to Farseer Physics.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;XNA Games&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://upstudiodp.com/wp-content/themes/folioelements/ajax/pageloader.php?postnum=52" class="externalLink"&gt;Ninjics&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://walaber.com/index.php?action=showitem&amp;amp;id=18" class="externalLink"&gt;Gymnast&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=447058" class="externalLink"&gt;Bennu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://trashbash.codeplex.com/" class="externalLink"&gt;TrashBash&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.occasionalgamer.com/page/Gum-Drop-Celestial-Frontier.aspx" class="externalLink"&gt;Operation Gum Drop&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://theonegame.net/" class="externalLink"&gt;The One Game&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Silverlight Games&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://silvertower.codeplex.com/" class="externalLink"&gt;SilverTower&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wearebugs.codeplex.com/" class="externalLink"&gt;We Are Bugs (A Silverlight Game)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseergames.com/Games/Diver/Diver.aspx" class="externalLink"&gt;Diver&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseergames.com/Games/TireStorm/TireStorm.aspx" class="externalLink"&gt;Tire Storm&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/bosslaunch/bosslaunch.htm" class="externalLink"&gt;Boss Launch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/hookshot/spritehandhookshot.htm" class="externalLink"&gt;Hook Shot&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.spritehand.com/silverlight/2.0/sortthefoobars/testpage.html" class="externalLink"&gt;Sort the Foobars&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.privateasteroid.com/games/diw/Default.aspx" class="externalLink"&gt;Drop It Well&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bishoylabib.blogspot.com/2009/04/construction.html" class="externalLink"&gt;Construction&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.silverarcade.com/Games/mouk79/Bojambo-Pop" class="externalLink"&gt;Bojambo Pop&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Libaries&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://dengine.codeplex.com/" class="externalLink"&gt;DEngine - C# XNA 2D Game Engine&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://physicshelper.codeplex.com/" class="externalLink"&gt;Physics Helper for Silverlight, Blend, and Farseer&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://silversprite.codeplex.com/" class="externalLink"&gt;SilverSprite&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Others&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://simpleseer.codeplex.com/" class="externalLink"&gt;SimpleSeer&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseersimplesamples.codeplex.com/" class="externalLink"&gt;Farseer Physics Engine Simple Samples&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Wed, 12 Aug 2009 14:38:55 GMT</pubDate><guid isPermaLink="false">Updated Wiki: EngineUsage 20090812023855P</guid></item><item><title>Updated Wiki: Tutorials</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Tutorials&amp;version=10</link><description>&lt;div class="wikidoc"&gt;Here is a list of tutorials and FAQ created by the community:
&lt;h2&gt;Tutorials&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.techiscool.com/wingwarp/silverstripe/physics-Lesson/" class="externalLink"&gt;Introduction to Farseer Physics Engine&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.xnatutorial.com/?p=62" class="externalLink"&gt;Video introduction to Farseer Physics Engine&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nerg4l.ne.funpic.de/doku.php/wiki:tutorials:nergal:quickstartsample" class="externalLink"&gt;C# quickstart sample&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.andybeaulieu.com/Home/tabid/67/EntryID/89/Default.aspx" class="externalLink"&gt;Getting Started with Farseer Physics and Silverlight&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.flatredball.com/frb/docs/index.php?title=FlatRedBallXna:Tutorials:Farseer" class="externalLink"&gt;Using Farseer Physics Engine with FlatRedBall Game Engine&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Wiki/View.aspx?title=DifferentPhases&amp;referringTitle=Home"&gt;What is a narrow and a broad phase&amp;#63;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Tunneling&amp;referringTitle=Home"&gt;What is tunneling&amp;#63;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=59948" class="externalLink"&gt;Can I use my game for commercial use?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=56162" class="externalLink"&gt;Check if a geometry is NOT colliding with anything&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=56165" class="externalLink"&gt;Handle only enter collision events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=44960" class="externalLink"&gt;Detect if a character stands on ground or jumps/falls&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=56417" class="externalLink"&gt;Why is drawing or collision off center? (Centroids CreatePolygonBody CreatePolygonGeom)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Tue, 04 Aug 2009 01:48:00 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Tutorials 20090804014800A</guid></item><item><title>Updated Wiki: Home</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Home&amp;version=110</link><description>&lt;div class="wikidoc"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=19352" alt="FarseerPhysicsNoBorder430X260.png" title="FarseerPhysicsNoBorder430X260.png" /&gt;&lt;br /&gt; &lt;a href="http://www.physicspoweredgames.com/FarseerPhysics/Manual2.1.htm" class="externalLink"&gt;Manual&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; : &lt;a href="http://www.physicspoweredgames.com/FarseerPhysics/API/index.html" class="externalLink"&gt;API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Screenshots"&gt;Screenshots&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Videos"&gt;Videos&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/Wiki/View.aspx?title=The%20Team"&gt;The Team&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Acknowledgments"&gt;Acknowledgments&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/Wiki/View.aspx?title=EngineUsage"&gt;Engine Usage&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Tutorials"&gt;Tutorials &amp;#38; FAQ&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;&lt;u&gt;Introduction&lt;/u&gt;&lt;/h2&gt;The Farseer Physics Engine is an easy to use 2D physics engine designed for Microsoft’s &lt;b&gt;XNA&lt;/b&gt; and &lt;b&gt;Silverlight&lt;/b&gt; platforms. The Farseer Physics Engine focuses on simplicity, useful features, and enabling the creation of fun, dynamic games.
&lt;h2&gt;&lt;u&gt;Features&lt;/u&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;General&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Easy to use!&lt;/li&gt;
&lt;li&gt;Support for XNA (XBOX 360 and Windows)&lt;/li&gt;
&lt;li&gt;Support for Silverlight (1.1 and above)&lt;/li&gt;
&lt;li&gt;Support for managed .Net languages in general (3.0 targeted)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Collision&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Concave and convex polygons supported&lt;/li&gt;
&lt;li&gt;Multiple collision geometries per Body&lt;/li&gt;
&lt;li&gt;Collision categories for complex interaction between physics objects&lt;/li&gt;
&lt;li&gt;Collision callback mechanism&lt;/li&gt;
&lt;li&gt;Multiple narrowphase colliders: SAT and Distance Grid&lt;/li&gt;
&lt;li&gt;Multiple broadphase colliders: SelectiveSweep, SweepAndPrunde and BruteForce.&lt;/li&gt;
&lt;li&gt;Line-Line, Line-AABB, and Line-Geometry collision methods&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Dynamics&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Joints
&lt;ul&gt;&lt;li&gt;Revolute joint (Body to body or fixed to world)&lt;/li&gt;
&lt;li&gt;Angle joint (Body to body or fixed to world)&lt;/li&gt;
&lt;li&gt;Slider (Prismatic) joint&lt;/li&gt;
&lt;li&gt;Pin (Distance) joint&lt;/li&gt;
&lt;li&gt;Weld joint&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Force controllers 
&lt;ul&gt;&lt;li&gt;Linear spring&lt;/li&gt;
&lt;li&gt;Angular spring&lt;/li&gt;
&lt;li&gt;Fluid drag and buoyancy controller with wave generation.&lt;/li&gt;
&lt;li&gt;Easy to build custom force controllers (Explosions, Steering Behaviors, etc.)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;High Level Factories&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Helps you to easily create complex dynamics like chains and rope&lt;/li&gt;
&lt;li&gt;Create several shapes like ellipses, capsules, rectangles and polygons.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Support and Debugging&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Samples framework with samples covering most major engine features. (XNA and Silverlight versions)&lt;/li&gt;
&lt;li&gt;Debug viewer to view all major physics objects (part of samples framework)&lt;/li&gt;
&lt;li&gt;Online user manual with live demonstration of phyiscs engine dynamics&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;u&gt;Donations&lt;/u&gt;&lt;/h2&gt;You choose the amount - Creditcard donations are accepted.&lt;br /&gt;You can donate to the Farseer Physics Engine project by &lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=D5BVVCJEXSLC6&amp;amp;lc=DK&amp;amp;item_name=Farseer%20Physics%20Engine&amp;amp;currency_code=USD&amp;amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted" class="externalLink"&gt;clicking here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;See a list of our donations by &lt;a href="http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Donations"&gt;clicking here&lt;/a&gt;.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Sun, 02 Aug 2009 18:23:54 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090802062354P</guid></item><item><title>Updated Wiki: DifferentPhases</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=DifferentPhases&amp;version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Broad and narrow phase collision detection systems&lt;/h2&gt;First a little background before I start explaining the collision systems. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Big O notation&lt;/b&gt;&lt;br /&gt;Big O notation was invented to describe the growth rate of a function. You basically take away all constants and small factors and only focus on the big factors. Example:&lt;br /&gt;&lt;br /&gt;f(x) = x^2 + 2x + 6&lt;br /&gt;will become&lt;br /&gt;f(x) = O(x^2)&lt;br /&gt;&lt;br /&gt;We use this notation to describe the growth rate of algorithms too. A brute force algorithm that checks each and every object against the next is called O(n^2) (quadratic growth). If you have 100 objects, you will have to do 100^2 = 10.000 checks.&lt;br /&gt;Having a O(n log(n)) algorithm is obviously better as it grows slower. If you have the same 100 objects, you will only have to do 100 * log(100) = 200 checks!&lt;br /&gt;&lt;br /&gt;To give a graphical view of the growth. X is the number of objects and Y is the number of collision checks that needs to be performed.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77271" alt="Growth.png" title="Growth.png" /&gt;&lt;br /&gt;&lt;br /&gt;Now that we know what big O notation is, we can proceed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Broad Phase collision detection&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Performance is an essential part of a physics engine. You can get away with just implementing a few algorithms that detect collisions using a O(n^2) algorithm, but when you add more and more objects to the simulator It becomes quite expensive (CPU wise). Not very good for performance.&lt;br /&gt;&lt;br /&gt;We can reduce the amount of tests by implementing a broad phase into our collision system. It is responsible of eliminating tests and thus reducing the number of tests needed (We obviously don't need to test objects far away from the player). We could for example have an algorithm that tests the distance using the X and Y axis of the screen, if the objects are too far away from each other, we can eliminate them as potential collisions. There are many algorithms that can eliminate tests, a few of them are:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. SAP (Sweep and Prune)&lt;/b&gt; - &lt;a href="http://en.wikipedia.org/wiki/Sweep_and_prune" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - O(n log(n)) algorithm&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Spatial Hash&lt;/b&gt; - &lt;a href="http://conkerjo.wordpress.com/2009/06/13/spatial-hashing-implementation-for-fast-2d-collisions/" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - O(n log(n)) algorithm&lt;br /&gt;If I remember correctly it can be O(1) in best case and O(n^2) in worst case.&lt;br /&gt;&lt;br /&gt;We have 4 different broad phase algorithms in Farseer Physics Engine. The two mentioned, a brute force and a Selective Sweep collider.&lt;br /&gt;&lt;br /&gt;It is important to remember that the broad phase only detects what objects are close and what objects are far and then create pairs of objects that can be tested against each other. To determine if two objects are close and should be further tested, we use something called a AABB (Axis Aligned Bounding Box). It is simply a box that does not rotate that contains the whole object. It is cheaper to test box vs. box instead of a lot of complex polygons.&lt;br /&gt;&lt;br /&gt;Too far from each other to be tested for collisions:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77266" alt="NoPair.png" title="NoPair.png" /&gt;&lt;br /&gt;&lt;br /&gt;Close and needs to be further tested for collision:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77265" alt="Pair.png" title="Pair.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Narrow Phase collision detection&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once the broad phase collider has done its job, we are left with a couple of pairs that needs further testing. A physics engine needs to know exactly how deep polygon shapes have penetrated each other and some other stuff like the normals. A narrow phase algorithm basically takes in two polygon shapes and finds out where those two polygons intersect and how deep.&lt;br /&gt;We need the depth of penetration, the normal and the position of the collision to calculate a proper physics response.&lt;br /&gt;&lt;br /&gt;Collision where the red dot is the point of collision.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77267" alt="Collision.png" title="Collision.png" /&gt;&lt;br /&gt;&lt;br /&gt;There are also a few different narrow phase algorithms, Farseer Physics support the following two (Have in mind that there are many other algorithms):&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SAT (Separate Axis Theorem)&lt;/b&gt; - &lt;a href="http://en.wikipedia.org/wiki/Separating_axis_theorem" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Distance Grid&lt;/b&gt; - &lt;a href="http://lab.polygonal.de/2008/07/13/collision-detection-for-particle-systems/" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Thu, 30 Jul 2009 04:43:43 GMT</pubDate><guid isPermaLink="false">Updated Wiki: DifferentPhases 20090730044343A</guid></item><item><title>Updated Wiki: DifferentPhases</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=DifferentPhases&amp;version=4</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Broad and narrow phase collision detection systems&lt;/h2&gt;First a little background before I start explaining the collision systems. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Big O notation&lt;/b&gt;&lt;br /&gt;Big O notation was invented to describe the growth rate of a function. You basically take away all constants and small factors and only focus on the big factors. Example:&lt;br /&gt;&lt;br /&gt;f(x) = x^2 + 2x + 6&lt;br /&gt;will become&lt;br /&gt;f(x) = O(x^2)&lt;br /&gt;&lt;br /&gt;We use this notation to describe the growth rate of algorithms too. A brute force algorithm that checks each and every object against the next is called O(n^2) (quadratic growth). If you have 100 objects, you will have to do 100^2 = 10.000 checks.&lt;br /&gt;Having a O(n log(n)) algorithm is obviously better as it grows slower. If you have the same 100 objects, you will only have to do 100 * log(100) = 200 checks!&lt;br /&gt;&lt;br /&gt;To give a graphical view of the growth. X is the number of objects and Y is the number of collision checks that needs to be performed.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77271" alt="Growth.png" title="Growth.png" /&gt;&lt;br /&gt;&lt;br /&gt;Now that we know what big O notation is, we can proceed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Broad Phase collision detection&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Performance is an essential part of a physics engine. You can get away with just implementing a few algorithms that detect collisions using a O(n^2) algorithm, but when you add more and more objects to the simulator It becomes quite expensive (CPU wise). Not very good for performance.&lt;br /&gt;&lt;br /&gt;We can reduce the amount of tests by implementing a broad phase into our collision system. It is responsible of eliminating tests and thus reducing the number of tests needed (We obviously don't need to test objects far away from the player). We could for example have an algorithm that tests the distance using the X and Y axis of the screen, if the objects are too far away from each other, we can eliminate them as potential collisions. There are many algorithms that can eliminate tests, a few of them are:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. SAP (Sweep and Prune)&lt;/b&gt; - &lt;a href="http://en.wikipedia.org/wiki/Sweep_and_prune" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - O(n log(n)) algorithm&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Spatial Hash&lt;/b&gt; - &lt;a href="http://conkerjo.wordpress.com/2009/06/13/spatial-hashing-implementation-for-fast-2d-collisions/" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - O(n log(n)) algorithm&lt;br /&gt;if I remember correctly. Can be O(1) in best case and O(n^2) in worst case)&lt;br /&gt;We have 4 different broad phase algorithms in Farseer Physics Engine. The two mentioned, a brute force and a Selective Sweep collider.&lt;br /&gt;&lt;br /&gt;It is important to remember that the broad phase only detects what objects are close and what objects are far and then create pairs of objects that can be tested against each other. To determine if two objects are close and should be further tested, we use something called a AABB (Axis Aligned Bounding Box). It is simply a box that does not rotate that contains the whole object. It is cheaper to test box vs. box instead of a lot of complex polygons.&lt;br /&gt;&lt;br /&gt;Too far from each other to be tested for collisions:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77266" alt="NoPair.png" title="NoPair.png" /&gt;&lt;br /&gt;&lt;br /&gt;Close and needs to be further tested for collision:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77265" alt="Pair.png" title="Pair.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Narrow Phase collision detection&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once the broad phase collider has done its job, we are left with a couple of pairs that needs further testing. A physics engine needs to know exactly how deep polygon shapes have penetrated each other and some other stuff like the normals. A narrow phase algorithm basically takes in two polygon shapes and finds out where those two polygons intersect and how deep.&lt;br /&gt;We need the depth of penetration, the normal and the position of the collision to calculate a proper physics response.&lt;br /&gt;&lt;br /&gt;Collision where the red dot is the point of collision.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77267" alt="Collision.png" title="Collision.png" /&gt;&lt;br /&gt;&lt;br /&gt;There are also a few different narrow phase algorithms, Farseer Physics support the following two (Have in mind that there are many other algorithms):&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SAT (Separate Axis Theorem)&lt;/b&gt; - &lt;a href="http://en.wikipedia.org/wiki/Separating_axis_theorem" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Distance Grid&lt;/b&gt; - &lt;a href="http://lab.polygonal.de/2008/07/13/collision-detection-for-particle-systems/" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Thu, 30 Jul 2009 04:33:18 GMT</pubDate><guid isPermaLink="false">Updated Wiki: DifferentPhases 20090730043318A</guid></item><item><title>Updated Wiki: DifferentPhases</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=DifferentPhases&amp;version=3</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Broad and narrow phase collision detection systems&lt;/h2&gt;First a little background before I start explaining the collision systems. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Big O notation&lt;/b&gt;&lt;br /&gt;Big O notation was invented to describe the growth rate of a function. You basically take away all constants and small factors and only focus on the big factors. Example:&lt;br /&gt;&lt;br /&gt;f(x) = 5x^8 + 5x + 6&lt;br /&gt;will become&lt;br /&gt;f(x) = O(5x^8)&lt;br /&gt;&lt;br /&gt;We use this notation to describe the growth rate of algorithms too. A brute force algorithm that checks each and every object against the next is called O(n^2) (quadratic growth). If you have 100 objects, you will have to do 100^2 = 10.000 checks.&lt;br /&gt;Having a O(n log(n)) algorithm is obviously better as it grows slower. If you have the same 100 objects, you will only have to do 100 * log(100) = 200 checks!&lt;br /&gt;&lt;br /&gt;Now that we know what big O notation is, we can proceed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Broad Phase collision detection&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Performance is an essential part of a physics engine. You can get away with just implementing a few algorithms that detect collisions using a O(n^2) algorithm, but when you add more and more objects to the simulator It becomes quite expensive (CPU wise). Not very good for performance.&lt;br /&gt;&lt;br /&gt;We can reduce the amount of tests by implementing a broad phase into our collision system. It is responsible of eliminating tests and thus reducing the number of tests needed (We obviously don't need to test objects far away from the player). We could for example have an algorithm that tests the distance using the X and Y axis of the screen, if the objects are too far away from each other, we can eliminate them as potential collisions. There are many algorithms that can eliminate tests, a few of them are:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. SAP (Sweep and Prune)&lt;/b&gt; - &lt;a href="http://en.wikipedia.org/wiki/Sweep_and_prune" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - O(n log(n)) algorithm&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Spatial Hash&lt;/b&gt; - &lt;a href="http://conkerjo.wordpress.com/2009/06/13/spatial-hashing-implementation-for-fast-2d-collisions/" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - O(n log(n)) algorithm&lt;br /&gt;if I remember correctly. Can be O(1) in best case and O(n^2) in worst case)&lt;br /&gt;We have 4 different broad phase algorithms in Farseer Physics Engine. The two mentioned, a brute force and a Selective Sweep collider.&lt;br /&gt;&lt;br /&gt;It is important to remember that the broad phase only detects what objects are close and what objects are far and then create pairs of objects that can be tested against each other. To determine if two objects are close and should be further tested, we use something called a AABB (Axis Aligned Bounding Box). It is simply a box that does not rotate that contains the whole object. It is cheaper to test box vs. box instead of a lot of complex polygons.&lt;br /&gt;&lt;br /&gt;Too far from each other to be tested for collisions:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77266" alt="NoPair.png" title="NoPair.png" /&gt;&lt;br /&gt;&lt;br /&gt;Close and needs to be further tested for collision:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77265" alt="Pair.png" title="Pair.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Narrow Phase collision detection&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once the broad phase collider has done its job, we are left with a couple of pairs that needs further testing. A physics engine needs to know exactly how deep polygon shapes have penetrated each other and some other stuff like the normals. A narrow phase algorithm basically takes in two polygon shapes and finds out where those two polygons intersect and how deep.&lt;br /&gt;We need the depth of penetration, the normal and the position of the collision to calculate a proper physics response.&lt;br /&gt;&lt;br /&gt;Collision where the red dot is the point of collision.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77267" alt="Collision.png" title="Collision.png" /&gt;&lt;br /&gt;&lt;br /&gt;There are also a few different narrow phase algorithms, Farseer Physics support the following two (Have in mind that there are many other algorithms):&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SAT (Separate Axis Theorem)&lt;/b&gt; - &lt;a href="http://en.wikipedia.org/wiki/Separating_axis_theorem" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Distance Grid&lt;/b&gt; - &lt;a href="http://lab.polygonal.de/2008/07/13/collision-detection-for-particle-systems/" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Thu, 30 Jul 2009 04:23:01 GMT</pubDate><guid isPermaLink="false">Updated Wiki: DifferentPhases 20090730042301A</guid></item><item><title>Updated Wiki: DifferentPhases</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=DifferentPhases&amp;version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Broad and narrow phase collision detection systems&lt;/h2&gt;First a little background before I start explaining the collision systems. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Big O notation&lt;/b&gt;&lt;br /&gt;Big O notation was invented to describe the growth rate of a function. You basically take away all constants and small factors and only focus on the big factors. Example:&lt;br /&gt;&lt;br /&gt;f(x) = 5x^8 &lt;u&gt; 5x &lt;/u&gt; 6&lt;br /&gt;will become&lt;br /&gt;f(x) = O(5x^8)&lt;br /&gt;&lt;br /&gt;We use this notation to describe the growth rate of algorithms too. A brute force algorithm that checks each and every object against the next is called O(n^2) (quadratic growth). If you have 100 objects, you will have to do 100^2 = 10.000 checks.&lt;br /&gt;Having a O(n log(n)) algorithm is obviously better as it grows slower. If you have the same 100 objects, you will only have to do 100 * log(100) = 200 checks!&lt;br /&gt;&lt;br /&gt;Now that we know what big O notation is, we can proceed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Broad Phase collision detection&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Performance is an essential part of a physics engine. You can get away with just implementing a few algorithms that detect collisions using a O(n^2) algorithm, but when you add more and more objects to the simulator It becomes quite expensive (CPU wise). Not very good for performance.&lt;br /&gt;&lt;br /&gt;We can reduce the amount of tests by implementing a broad phase into our collision system. It is responsible of eliminating tests and thus reducing the number of tests needed (We obviously don't need to test objects far away from the player). We could for example have an algorithm that tests the distance using the X and Y axis of the screen, if the objects are too far away from each other, we can eliminate them as potential collisions. There are many algorithms that can eliminate tests, a few of them are:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. SAP (Sweep and Prune)&lt;/b&gt; - &lt;a href="http://en.wikipedia.org/wiki/Sweep_and_prune" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - O(n log(n)) algorithm&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Spatial Hash&lt;/b&gt; - &lt;a href="http://conkerjo.wordpress.com/2009/06/13/spatial-hashing-implementation-for-fast-2d-collisions/" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - O(n log(n)) algorithm&lt;br /&gt;if I remember correctly. Can be O(1) in best case and O(n^2) in worst case)&lt;br /&gt;We have 4 different broad phase algorithms in Farseer Physics Engine. The two mentioned, a brute force and a Selective Sweep collider.&lt;br /&gt;&lt;br /&gt;It is important to remember that the broad phase only detects what objects are close and what objects are far and then create pairs of objects that can be tested against each other. To determine if two objects are close and should be further tested, we use something called a AABB (Axis Aligned Bounding Box). It is simply a box that does not rotate that contains the whole object. It is cheaper to test box vs. box instead of a lot of complex polygons.&lt;br /&gt;&lt;br /&gt;Too far from each other to be tested for collisions:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77266" alt="NoPair.png" title="NoPair.png" /&gt;&lt;br /&gt;&lt;br /&gt;Close and needs to be further tested for collision:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77265" alt="Pair.png" title="Pair.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Narrow Phase collision detection&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once the broad phase collider has done its job, we are left with a couple of pairs that needs further testing. A physics engine needs to know exactly how deep polygon shapes have penetrated each other and some other stuff like the normals. A narrow phase algorithm basically takes in two polygon shapes and finds out where those two polygons intersect and how deep.&lt;br /&gt;We need the depth of penetration, the normal and the position of the collision to calculate a proper physics response.&lt;br /&gt;&lt;br /&gt;Collision where the red dot is the point of collision.&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=FarseerPhysics&amp;DownloadId=77267" alt="Collision.png" title="Collision.png" /&gt;&lt;br /&gt;&lt;br /&gt;There are also a few different narrow phase algorithms, Farseer Physics support the following two (Have in mind that there are many other algorithms):&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SAT (Separate Axis Theorem)&lt;/b&gt; - &lt;a href="http://en.wikipedia.org/wiki/Separating_axis_theorem" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Distance Grid&lt;/b&gt; - &lt;a href="http://lab.polygonal.de/2008/07/13/collision-detection-for-particle-systems/" class="externalLink"&gt;More info&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Thu, 30 Jul 2009 04:20:12 GMT</pubDate><guid isPermaLink="false">Updated Wiki: DifferentPhases 20090730042012A</guid></item><item><title>Updated Wiki: DifferentPhases</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=DifferentPhases&amp;version=1</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Broad and narrow phase collision detection systems&lt;/h2&gt;
&lt;b&gt;Big O notation&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;First a little background before I start explaining the collision systems. Big O notation was invented to describe the growth rate of a function. You basically take away all constants and small factors and only focus on the big factors. Example:&lt;br /&gt;&lt;br /&gt;f(x) = 5x^8 &lt;u&gt;5x&lt;/u&gt;6&lt;br /&gt;will become&lt;br /&gt;f(x) = O(5x^8)&lt;br /&gt;&lt;br /&gt;We use this notation to describe the growth rate of algorithms too. A brute force algorithm that checks each and every object against the next is called O(n^2) (quadratic growth). Having a O(n log(n)) is obviously better as it grows slower. Now that we know what big O notation is, we can proceed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Broad Phase collision detection&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Performance is an essential part of a physics engine. You can get away with just implementing a few algorithms that detect collisions, but only if you have a few objects It becomes quite expensive (CPU wise) when you add more and more objects to the simulator because you will have to check each and every object against the next. As I wrote before, that is O(n^2). If you have 100 objects in your screen, we would have to do 10000 collision test. Not good for performance.&lt;br /&gt;&lt;br /&gt;We can reduce the amount of tests by implementing a broad phase into our collision system. It is responsible of eliminating tests and thus reducing the number of tests performed. We obviously don't need to test objects far away from the player against the player. Those tests can be eliminated by having an algorithm that tests the distance using the X and Y axis of the screen.. There are many algorithms that can eliminate tests, a few of them are:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. SAP (Sweep and Prune) - O(n log(n))&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Spatial Hash- O(n log(n))&lt;/b&gt;&lt;br /&gt;if I remember correctly. Can be O(1) in best case and O(n^2) in worst case)&lt;br /&gt;We have 4 different broad phase algorithms in Farseer Physics Engine. The two mentioned, a brute force and a Selective Sweep collider.&lt;br /&gt;&lt;br /&gt;It is important to remember that the broad phase only detects what objects are close and what objects are far and then create pairs of objects that can be tested against each other. To determine if two objects are close and should be further tested, we use something called a AABB (Axis Aligned Bounding Box). It is simply a box that does not rotate that contains the whole object. It is cheaper to test box vs. box instead of a lot of complex polygons.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Narrow Phase collision detection&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once the broad phase collider has done its job, we are left with a couple of object pairs that needs further testing. A physics engine needs to know exactly how deep polygons have penetrated each other and some other stuff like the normals. A narrow phase algorithm basically takes in two polygons and finds out where those two polygons intersect.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Thu, 30 Jul 2009 03:49:26 GMT</pubDate><guid isPermaLink="false">Updated Wiki: DifferentPhases 20090730034926A</guid></item><item><title>Updated Wiki: Donations</title><link>http://farseerphysics.codeplex.com/Wiki/View.aspx?title=Donations&amp;version=8</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Donations&lt;/h1&gt;This is a list of people who have donated to our project. We would like to thank each and every one of you who donated. It is very much appreciated.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Daniel Gimenez     - $50.00 USD&lt;/li&gt;
&lt;li&gt;Aranda Morrison  - $50.00 USD&lt;/li&gt;
&lt;li&gt;Dan Wellman        - $15.00 USD&lt;/li&gt;
&lt;li&gt;David Fleming       - $30.00 USD&lt;/li&gt;
&lt;li&gt;Chris Misztur        - $5.00 USD + 60GB Xbox360 harddrive&lt;/li&gt;
&lt;li&gt;Alex Hogan           - $50.00 USD&lt;/li&gt;
&lt;li&gt;Jonas Andersson   - $20.00 USD&lt;/li&gt;
&lt;li&gt;Daniel Armstrong   - $100.00 USD&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Wed, 29 Jul 2009 10:16:28 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Donations 20090729101628A</guid></item></channel></rss>