<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://pybullet.org/Bullet/phpBB3/app.php/feed/forum/4" />

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2023-03-03T20:54:48+00:00</updated>

	<author><name><![CDATA[Real-Time Physics Simulation Forum]]></name></author>
	<id>https://pybullet.org/Bullet/phpBB3/app.php/feed/forum/4</id>

		<entry>
		<author><name><![CDATA[spaceDoctor]]></name></author>
		<updated>2023-03-03T20:54:48+00:00</updated>

		<published>2023-03-03T20:54:48+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44275#p44275</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44275#p44275"/>
		<title type="html"><![CDATA[Research and development discussion about Collision Detection and Physics Simulation • Re: Impulse Solvers and Contiuous Collision with Rotating Objects]]></title>

					<category term="Research and development discussion about Collision Detection and Physics Simulation" scheme="https://pybullet.org/Bullet/phpBB3/viewforum.php?f=4" label="Research and development discussion about Collision Detection and Physics Simulation"/>
		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44275#p44275"><![CDATA[
After further tinkering, I've found that this only applies for sphere-sphere collisions. If we change our smaller object to a cube/box, then this problem doesn't arise. I've confirmed this with both my own implementation and bullet: a box under force of gravity will remain stationary on a rotating sphere.<br><br>Another possible solution would be to use sphere colliders broadly, but switch to a mesh collider when we have a continuous collision occurring. <br><br>I guess that technically solves this 'issue', but I feel like sphere-sphere should still be handled in this scenario. Hopefully someone smarter than I am can give an explanation, or a solution!<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14555">spaceDoctor</a> — Fri Mar 03, 2023 8:54 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[spaceDoctor]]></name></author>
		<updated>2023-03-01T16:06:53+00:00</updated>

		<published>2023-03-01T16:06:53+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44270#p44270</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44270#p44270"/>
		<title type="html"><![CDATA[Research and development discussion about Collision Detection and Physics Simulation • Impulse Solvers and Contiuous Collision with Rotating Objects]]></title>

					<category term="Research and development discussion about Collision Detection and Physics Simulation" scheme="https://pybullet.org/Bullet/phpBB3/viewforum.php?f=4" label="Research and development discussion about Collision Detection and Physics Simulation"/>
		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44270#p44270"><![CDATA[
I have written a basic collision detection/resolution system using constraints and impulse solving, and I think I have reached a point where it starts to break down. In my sandbox, I have sphere's being acted upon by gravity, and my system works totally fine; smaller spheres will remain on the surface of the more massive spheres, and friction prevents them from rolling around. However, if I add some angular momentum to the larger object (let's call it a planet), the smaller object will begin to accumulate velocity and start circumnavigating the planet, eventually gaining enough velocity that it will leave the surface and reach a stable orbit!<br><br>Now, thinking about this, this seems to make sense: when colliding with an object that has some rotational velocity, the constraint solver will adjust both parties accordingly, and the angular velocity of the planet will obviously impact the non-rotating object. However, given that in my situation gravity is causing the smaller sphere to <strong class="text-strong">always be in contact with</strong> the rotating planet, the impulse solver <strong class="text-strong">will continually increase its velocity</strong>. <br><br>To test this, I hobbled together a crude implementation with raylib and bullet3 and found the exact same result: the smaller sphere gains velocity on a rotating sphere until it leaves the surface. I'm not suggesting that there is an issue with bullet, more so that I confirmed my system is indeed working 'as intended.'<br><br>Considering that I believe what I am observing is a <strong class="text-strong">feature</strong> of these constraint solvers, <strong class="text-strong">not a bug</strong>, how can one use constraints and impulse solvers to have an object remain stable on a rotating object under the force of gravity? Or would I need to go about collision response in a totally different way in order to have stationary objects on rotating objects? Perhaps there is another constraint that needs to be added other than normal and friction?<br><br>Thanks<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14555">spaceDoctor</a> — Wed Mar 01, 2023 4:06 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Physics is hard]]></name></author>
		<updated>2023-02-13T20:16:53+00:00</updated>

		<published>2023-02-13T20:16:53+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44248#p44248</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44248#p44248"/>
		<title type="html"><![CDATA[Research and development discussion about Collision Detection and Physics Simulation • Any resources for learning sequential impulse solver and a proof of its convergence?]]></title>

					<category term="Research and development discussion about Collision Detection and Physics Simulation" scheme="https://pybullet.org/Bullet/phpBB3/viewforum.php?f=4" label="Research and development discussion about Collision Detection and Physics Simulation"/>
		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44248#p44248"><![CDATA[
Hello, sorry if this is a redundant question but are there any good resources for learning the sequential impulse solver method for simulating rigid body resting contact forces? Also, I was wondering is there is a good resource for learning why it converges?<br><br>I think I get the set up of how to formulate resting contact constraints as a mixed linear complimentary problem, and as another question would it be possible to solve that problem as a convex quadratic problem using the interior point method? I only ask because I think I understand that method, but projected Gauss Seidell and sequential impulse solvers have gone way over my head. <br><br>Thanks!<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14539">Physics is hard</a> — Mon Feb 13, 2023 8:16 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[fred4d]]></name></author>
		<updated>2022-12-15T17:30:55+00:00</updated>

		<published>2022-12-15T17:30:55+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44183#p44183</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44183#p44183"/>
		<title type="html"><![CDATA[Research and development discussion about Collision Detection and Physics Simulation • btCapsuleCapsuleCollisionAlgorithm?]]></title>

					<category term="Research and development discussion about Collision Detection and Physics Simulation" scheme="https://pybullet.org/Bullet/phpBB3/viewforum.php?f=4" label="Research and development discussion about Collision Detection and Physics Simulation"/>
		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44183#p44183"><![CDATA[
Apologies in advance.  This is my first post.  I tried to read the FAQ, but it took me to some Thai web-site.<br><br>Anyway I noticed there is no btCapsuleCapsuleCollisionAlgorithm and maybe there's a good reason of which I'm unaware in my ignorance, but over the years I've learned things from this project and I thought I'd try to give back by posting an attempt of my own.<br><br>Things to note:  I bound all of my shapes in an oriented-bounding-box and interpret the  values of the box to describe, in this case, the capsule.  I didn't include the support functions (e.g. IntersectRayCapsule), because those are well known and published.  The CalcIntercept function is a bit overkill here -- it really just represents a 2D-circles-over-time TOI, but I just used the 3D-spheres-over-time version for my convenience (i.e. I was being lazy).  I don't calculate a normal or point of contact, but this is trivial.<br><br>There are comments inline, which should give any reader a good start, but I'm certainly willing to expand, if this generates interest/questions.  Also because I have literally just written this, there are possible bugs and/or gaps in my logic.  Presumably once you possess a robust MovingCapsuleSegmentIntersect you can use it to implement, for example, MovingCapsuleTriangleIntersect.<br><div class="codebox"><p>Code: </p><pre><code>struct OBB{        Transform transform;        Vector3 extents;};        struct ContinuousCollisionData{        OBB Last;        Vector3 Motion;};    static bool MovingCapsuleSegmentIntersect(        ContinuousCollisionData const&amp; capsule,        Vector3 const&amp; d,        Vector3 const&amp; a,        Vector3 const&amp; b,        decimal segRadius,        decimal&amp; TOIout    ){// Bring segment and relative motion into capsule's space.auto const worldToLocal{ capsule.Last.transform.getInverse() };auto const p{ worldToLocal * a };auto const q{ worldToLocal * b };auto const r{ worldToLocal.getOrientation() * d };        auto const R{ capsule.Last.extents.x + segRadius };auto const upA{ capsule.Last.extents.y - capsule.Last.extents.x };        auto const s{ q - p };auto const ss{ s.x * s.x + s.z * s.z };        // Reduce the problem to a 2D moving circle colliding with a stationary 2D segment.        // Find closest 2D point on segment to circle.        auto t{ -(s.x * p.x + s.z * p.z) };        if (t != 0) // Prevent potential divide-by-zero.        {t /= ss;        }Vector3 pq;if (t &lt;= 0){pq = p;}        else if (t &gt;= 1){pq = q;}else{pq = p + t * s;}        auto const RR{ R * R };if (pq.x * pq.x + pq.z * pq.z &lt;= RR){            // 2D circle and segment already overlap; consider the third dimension.            // If the closest point in 2D is outside of the            // capped cylinder in 3D, bring the appropriate end            // cap of the capsule into play.            if (pq.y &lt; -upA)            {return IntersectRayCapsule(Ray{ Vector3{ 0, -upA, 0 }, Vector3{ 0, -upA, 0 } + r },p,q,R,TOIout);            }            else if (pq.y &gt; upA)            {return IntersectRayCapsule(Ray{ Vector3{ 0, upA, 0 }, Vector3{ 0, upA, 0 } + r },p,q,R,TOIout);            }            TOIout = 0;            return true;        }        // Circle and segment are disjoint.// Determine closest point to circle's center on the line of the segment.        auto cx{ p.x + t * s.x };auto cz{ p.z + t * s.z };auto const cc{ cx * cx + cz * cz };        if (cc &lt;= RR)        {// The problem reduces to determining the time of intersection for// the closest segment point (the tip of the spear) and the circle.if (!CalcIntercept(                Vector3{ pq.x, 0, pq.z },                Vector3{ r.x, 0, r.z },                R,                0,                t            )){return false;}        }        else        {auto rxs{ r.x * s.z - r.z * s.x };auto constexpr EPSILON{ 1e-06f };if (decimal::abs(rxs) &lt; EPSILON){// Circle motion is parallel to segment.return false;}// Implicitly determine intersection point of circle's motion// with stationary segment (r * t).//t = (p.x * s.z - p.z * s.x) / rxs;t = (p.x * s.z - p.z * s.x);// Using similar triangles, refine t to account for// circle's radius.//t = t * (1 - R / decimal::sqrt(cc));t = (t - t * R / decimal::sqrt(cc)) / rxs;// We now have a time t where the circle// contacts the line of the segment.  If// the resulting point of contact is not// on the segment, then test the relevant cap.pq = r * t;auto tt{ s.x * (pq.x - p.x) + s.z * (pq.z - p.z) };if (tt &lt; 0){if (!CalcIntercept(Vector3{ p.x, 0, p.z },Vector3{ r.x, 0, r.z },R,0,t)){return false;}}else if (tt &gt; ss){if (!CalcIntercept(Vector3{ q.x, 0, q.z },Vector3{ r.x, 0, r.z },R,0,t)){return false;}}}        if (t &gt;= 0 &amp;&amp; t &lt;= 1)        {// The circle touches the segment at time t.  Calculate 3D point// of impact on the infinite 3D cylinder of the circle.// Move the circle.pq = r * t;auto const tt{ s.x * (pq.x - p.x) + s.z * (pq.z - p.z) };auto const cy{ p.y + tt * s.y / ss - pq.y };// If the intersection point is outside of the// capped cylinder, bring the appropriate end// cap of the capsule into play.  Otherwise time// t is correct.if (cy &lt; -upA){return IntersectRayCapsule(Ray{ Vector3{ 0, -upA, 0 }, Vector3{ 0, -upA, 0 } + r },p,q,R,TOIout);}else if (cy &gt; upA){return IntersectRayCapsule(Ray{ Vector3{ 0, upA, 0 }, Vector3{ 0, upA, 0 } + r },p,q,R,TOIout);}TOIout = t;return true;        }        return false;}bool MovingCapsuleCapsuleIntersect(        ContinuousCollisionData const&amp; capsuleA,        ContinuousCollisionData const&amp; capsuleB,        decimal&amp; TOIout){        auto upB{ capsuleB.Last.transform.getOrientation().upVector() * (capsuleB.Last.extents.y - capsuleB.Last.extents.x) };        return MovingCapsuleSegmentIntersect(capsuleA,capsuleA.Motion - capsuleB.Motion,capsuleB.Last.transform.getPosition() - upB,capsuleB.Last.transform.getPosition() + upB,capsuleB.Last.extents.x,TOIout        );}    </code></pre></div><p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14487">fred4d</a> — Thu Dec 15, 2022 5:30 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[lusyok]]></name></author>
		<updated>2022-07-12T08:53:05+00:00</updated>

		<published>2022-07-12T08:53:05+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44057#p44057</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44057#p44057"/>
		<title type="html"><![CDATA[Research and development discussion about Collision Detection and Physics Simulation • PBD: add new contraints in run-time]]></title>

					<category term="Research and development discussion about Collision Detection and Physics Simulation" scheme="https://pybullet.org/Bullet/phpBB3/viewforum.php?f=4" label="Research and development discussion about Collision Detection and Physics Simulation"/>
		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=44057#p44057"><![CDATA[
Hello! <br><br>I want to ask whether anyone has ever tried to add, new sretching constraints during simulation in PBD. I am trying to implement a cutting simulation in Unity using Position Based Dynamics(PBD), however it requires new constraints to be created in runtime. In my simulation I add new vertices(positions) and create stretching constraints between them. I do update compute shader according to new positions and constraints number, but still my simulation runs into the same problem. <br><br>The Unity complains on collision mesh like the following: "Failed extracting collision mesh because vertex at index 0 contains a non-finite value (nan, nan, nan)."<br><br>The simulation runs well if I only add new positions. But when I update constraints everything breaks.<br><br>If anyone has an experience in adding new constraints in PBD, you are welcome to add your comments and suggestions. Thank you in advance!<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=13954">lusyok</a> — Tue Jul 12, 2022 8:53 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[felipekersting]]></name></author>
		<updated>2022-02-25T00:22:29+00:00</updated>

		<published>2022-02-25T00:22:29+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43899#p43899</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43899#p43899"/>
		<title type="html"><![CDATA[Research and development discussion about Collision Detection and Physics Simulation • Re: Simulation Islands: Corner-case issues]]></title>

					<category term="Research and development discussion about Collision Detection and Physics Simulation" scheme="https://pybullet.org/Bullet/phpBB3/viewforum.php?f=4" label="Research and development discussion about Collision Detection and Physics Simulation"/>
		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43899#p43899"><![CDATA[
Yes, I also think checking the differences would be too costly. I asked the question originally to confirm if this was the reason. Manually activating the objects seems to be the only solution in this case.<br><br>Anyway, in the end I ended up implementing the same scheme in my engine. Maybe in the future I will take a deeper look at the problem.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14204">felipekersting</a> — Fri Feb 25, 2022 12:22 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[raigan2]]></name></author>
		<updated>2022-02-24T16:23:33+00:00</updated>

		<published>2022-02-24T16:23:33+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43898#p43898</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43898#p43898"/>
		<title type="html"><![CDATA[Research and development discussion about Collision Detection and Physics Simulation • Re: Where do you get the data to put in the inertial tag in MuJoCo?]]></title>

					<category term="Research and development discussion about Collision Detection and Physics Simulation" scheme="https://pybullet.org/Bullet/phpBB3/viewforum.php?f=4" label="Research and development discussion about Collision Detection and Physics Simulation"/>
		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43898#p43898"><![CDATA[
I don't know if this is true (never used MuJoCo) but given the nature of the other data, I suspect "pos" is the position of the center of mass in the local frame. So for a cube it would be the point in the very center of the cube, equidistant to all faces.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=748">raigan2</a> — Thu Feb 24, 2022 4:23 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[motorcitycobra]]></name></author>
		<updated>2022-02-21T20:15:01+00:00</updated>

		<published>2022-02-21T20:15:01+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43882#p43882</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43882#p43882"/>
		<title type="html"><![CDATA[Research and development discussion about Collision Detection and Physics Simulation • Where do you get the data to put in the inertial tag in MuJoCo?]]></title>

					<category term="Research and development discussion about Collision Detection and Physics Simulation" scheme="https://pybullet.org/Bullet/phpBB3/viewforum.php?f=4" label="Research and development discussion about Collision Detection and Physics Simulation"/>
		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43882#p43882"><![CDATA[
This is a MuJoCo question, but maybe you can answer even if you don't use MuJoCo.  <br>When I import meshes, (3D objects) each one of those objects that have mass require an "inertial" tag, which contains the mass, the diagonal from the inertia matrix, and the "pos", which the docs say is the "position of the inertial frame of reference". What is this last thing? I don't know where to find this. It's an x, y, z value.  <br>What would the position of the inertial frame of reference be for a cube with nothing else?<br><br><div class="codebox"><p>Code: </p><pre><code>    &lt;mujoco model="egg_slicer"&gt;        &lt;compiler angle="radian" meshdir="meshes/"/&gt;        &lt;default class="viz"&gt;            &lt;geom contype="5" conaffinity="1" group="1" type="mesh" rgba=".51 .6 .7 1"/&gt;        &lt;/default&gt;        &lt;asset&gt;            &lt;mesh name="base"         file="egg_mash1.stl" /&gt;            &lt;mesh name="swing"         file="egg_mash2.stl"/&gt;        &lt;/asset&gt;        &lt;asset&gt;            &lt;texture type="skybox" builtin="gradient" rgb1="0.6 0.6 0.6" rgb2="0 0 0" width="512" height="512"/&gt; --&gt;            &lt;texture name="texplane" type="2d" builtin="checker" rgb1=".25 .25 .25" rgb2=".3 .3 .3" width="512" height="512" mark="cross" markrgb=".8 .8 .8"/&gt;            &lt;material name="matplane" reflectance="0.3" texture="texplane" texrepeat="1 1" texuniform="true"/&gt;        &lt;/asset&gt;        &lt;worldbody&gt;            &lt;geom name="floor" pos="0 0 -0.5" size="0 0 1" type="plane" material="matplane"/&gt;            &lt;light directional="true" diffuse=".8 .8 .8" specular=".2 .2 .2" pos="0 0 5" dir="0 0 -1"/&gt;            &lt;!-- start building our model --&gt;            &lt;body&gt;                &lt;joint type="free" limited='false' damping="0" stiffness="1" armature="0"/&gt;                &lt;geom name="slicer_base" mesh="base" class="viz"/&gt;                    &lt;inertial pos="0 0 0" mass="1" diaginertia="0.01 0.01 0.01" /&gt;                &lt;body pos="0 0 0"&gt;                    &lt;joint name="hinge" pos="228.60 120.56 33.58"                    axis="0 0 1"                    limited="true" range="-3.0 0" /&gt; --&gt;                    &lt;geom name="slicer_swing" mesh="swing" class="viz"/&gt;                    &lt;inertial pos="228.60 120.56 33.58" mass="703.29" diaginertia="1.36 3.96 5.21"/&gt;                &lt;/body&gt;            &lt;/body&gt;        &lt;/worldbody&gt;        &lt;actuator&gt;            &lt;motor name="hinge" gear="100" joint="hinge"/&gt;        &lt;/actuator&gt;    &lt;/mujoco&gt;</code></pre></div><p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14269">motorcitycobra</a> — Mon Feb 21, 2022 8:15 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[douya_5200]]></name></author>
		<updated>2022-02-21T09:02:15+00:00</updated>

		<published>2022-02-21T09:02:15+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43879#p43879</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43879#p43879"/>
		<title type="html"><![CDATA[Research and development discussion about Collision Detection and Physics Simulation • Re: Simulation Islands: Corner-case issues]]></title>

					<category term="Research and development discussion about Collision Detection and Physics Simulation" scheme="https://pybullet.org/Bullet/phpBB3/viewforum.php?f=4" label="Research and development discussion about Collision Detection and Physics Simulation"/>
		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43879#p43879"><![CDATA[
Hello felipekersting,<br><blockquote class="uncited"><div>1 - If you have a sleeping stack of objects and you programmatically remove the bottom-most object of the stack, the other objects will remain floating. This is because their activating state are ISLAND_SLEEPING and the fact that the bottom object is gone is ignored/not tracked by the engine.</div></blockquote>I, too, encountered the first question as a bug presented by the team's designer. it's solved by activating all connected rigidbodies upon removing the bottom one in RemoveRigidBody Function. It works fine for me.<br><br><blockquote class="uncited"><div>Nevertheless, I think that this problem could be solved if Bullet would keep track of the simulation islands created in the last frame and simply check if all objects are the same. If the objects contained in an islands are different, that island goes back to active state.</div></blockquote>I think the cost of checking island differences are higher than programmatically activating the connected objects. (I have not tried the method you said, maybe it's worth a try <img class="smilies" src="https://pybullet.org/Bullet/phpBB3/images/smilies/icon_lol.gif" width="15" height="15" alt=":lol:" title="Laughing"> )<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14215">douya_5200</a> — Mon Feb 21, 2022 9:02 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[felipekersting]]></name></author>
		<updated>2022-01-14T16:53:42+00:00</updated>

		<published>2022-01-14T16:53:42+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43809#p43809</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43809#p43809"/>
		<title type="html"><![CDATA[Research and development discussion about Collision Detection and Physics Simulation • Re: XPBD rigid-body simulation with hard penetration constraints]]></title>

					<category term="Research and development discussion about Collision Detection and Physics Simulation" scheme="https://pybullet.org/Bullet/phpBB3/viewforum.php?f=4" label="Research and development discussion about Collision Detection and Physics Simulation"/>
		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=43809#p43809"><![CDATA[
hey jhelsing, <br><br>what a coincidence, I also recently implemented this paper! This is the state of my engine atm: <a href="https://github.com/felipeek/raw-physics" class="postlink">https://github.com/felipeek/raw-physics</a><br><br>if you are interested, send me a message and we can probably help each other with these problems. I'm currently implementing joints.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14204">felipekersting</a> — Fri Jan 14, 2022 4:53 pm</p><hr />
]]></content>
	</entry>
	</feed>
