<p>Since you already have convex shapes and started looking at the &quot;Method of separating axis&quot;, then the <a href="https://en.wikipedia.org/wiki/Gilbert%E2%80%93Johnson%E2%80%93Keerthi_distance_algorithm" rel="nofollow noreferrer">GJK</a> algorithm is probably what you're looking for. This is commonly used in physics simulations to find collisions (for games, I don't know about computational science).</p>
<p>When you say &quot;remove intersections without generating others&quot;, then you're asking for collision response. Multiple collision response is actually a tough beast. <a href="http://www.cs.columbia.edu/cg/rosi/rosi.pdf" rel="nofollow noreferrer">Here</a> (Reflections on Simultaneous Impact) is a paper that goes into more detail, but a very good introduction to this are course notes from Baraff:
<a href="https://www.cs.cmu.edu/%7Ebaraff/sigcourse/notesd1.pdf" rel="nofollow noreferrer">An Introduction to Physically Based Modeling: Rigid Body Simulation I—Unconstrained Rigid Body Dynamics</a> and part 2. <a href="https://www.cs.cmu.edu/%7Ebaraff/sigcourse/notesd2.pdf" rel="nofollow noreferrer">Rigid Body Simulation II-Nonpenetration Constraints</a></p>
<p>Lastly, you can always use a physics engine for this, such as <a href="https://github.com/bulletphysics/bullet3" rel="nofollow noreferrer">Bullet3d</a>.</p>

CC BY-SA 4.0
2020-12-09T20:34:00.587Z
2020-12-09T20:34:00.587Z
lyinch
<p>I have a mesh made up of several tetrahedrons, I know for sure that there are intersections between some of them: how can I remove these intersections, without generating others?
In other terms: if between a couple of tetrahedrons there is an intersection, how can I remove it?</p>
<p>I found these articles: the <a href="https://www.geometrictools.com/Documentation/MethodOfSeparatingAxes.pdf" rel="nofollow noreferrer">Method of Separating Axes</a>, the <a href="http://vcg.isti.cnr.it/Publications/2003/GPR03/fast_tetrahedron_tetrahedron_overlap_algorithm.pdf" rel="nofollow noreferrer">Tetrahedron Overlap Algorithm</a>.
But they are only useful for checking if there are intersections or not.</p>
<p>Is there an algorithm to solve this problem?</p>

CC BY-SA 4.0
2021-05-09T08:43:41.783Z
To clarify for me, are you wanting methods to take a set of intersecting tets and produce a new set of tets that fill the same volume/shape but are non-intersecting.
Andrew Wilson
<algorithm><mesh>
Is There an algorithm to remove intersections between two tetrahedrons?
Davide
# Is There an algorithm to remove intersections between two tetrahedrons?

(Asked by: username_0 on 2020-11-28)

I have a mesh made up of several tetrahedrons, I know for sure that there are intersections between some of them: how can I remove these intersections, without generating others?
In other terms: if between a couple of tetrahedrons there is an intersection, how can I remove it?

I found these articles: the [Method of Separating Axes](https://www.geometrictools.com/Documentation/MethodOfSeparatingAxes.pdf), the [Tetrahedron Overlap Algorithm](http://vcg.isti.cnr.it/Publications/2003/GPR03/fast_tetrahedron_tetrahedron_overlap_algorithm.pdf).
But they are only useful for checking if there are intersections or not.

Is there an algorithm to solve this problem?

**Tags:** algorithm, mesh

> **Comments:**
> **username_1**: To clarify for me, are you wanting methods to take a set of intersecting tets and produce a new set of tets that fill the same volume/shape but are non-intersecting.  

---

## 1 answers

### Answer by username_2 on 2020-12-09. Score: 2

Since you already have convex shapes and started looking at the "Method of separating axis", then the [GJK](https://en.wikipedia.org/wiki/Gilbert%E2%80%93Johnson%E2%80%93Keerthi_distance_algorithm) algorithm is probably what you're looking for. This is commonly used in physics simulations to find collisions (for games, I don't know about computational science).

When you say "remove intersections without generating others", then you're asking for collision response. Multiple collision response is actually a tough beast. [Here](http://www.cs.columbia.edu/cg/rosi/rosi.pdf) (Reflections on Simultaneous Impact) is a paper that goes into more detail, but a very good introduction to this are course notes from Baraff:
[An Introduction to Physically Based Modeling: Rigid Body Simulation I—Unconstrained Rigid Body Dynamics](https://www.cs.cmu.edu/%7Ebaraff/sigcourse/notesd1.pdf) and part 2. [Rigid Body Simulation II-Nonpenetration Constraints](https://www.cs.cmu.edu/%7Ebaraff/sigcourse/notesd2.pdf)

Lastly, you can always use a physics engine for this, such as [Bullet3d](https://github.com/bulletphysics/bullet3).


---

