ConvexBodyProximityQueries.jl VS GeometricAlgorithms

Compare ConvexBodyProximityQueries.jl vs GeometricAlgorithms and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
ConvexBodyProximityQueries.jl GeometricAlgorithms
1 3
22 62
- -
1.8 0.0
over 2 years ago almost 2 years ago
Julia Processing
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ConvexBodyProximityQueries.jl

Posts with mentions or reviews of ConvexBodyProximityQueries.jl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-03-09.
  • GJK: Collision detection algorithm in 2D/3D
    5 projects | news.ycombinator.com | 9 Mar 2022
    I should be writing a thesis about AI but got inside the collision rabbit hole so I have this fresh.

    From the description of the algorithm you are doing I think you are thinking about Lin-Canny or V-Clip, which certainly may have that kind of numerical error problems.

    GJK has also numerical problems but they are different. In principle it shouldn't be affected by coplanarity of several faces since you just need the vertex with highest support for a given direction. It could be a problem if you find the support point by hill climbing from vertex to vertex. GJK however does have numerical problems but they are of a different kind related to the degeneracy of the simplices it computes.

    But you are so right about the subtetly of the problem: there is a very fine thread between infinite looping and incorrect answers. I have been bitten by this trying to implement geometric algos. There should be a special hell for people that output coplanar faces.

    I know one of Bullet Physics/MuJoCo has the GJK, not remember which one. If anyone is curious I know of two Julia implementations:

    https://github.com/JuliaRobotics/EnhancedGJK.jl

    and my favorite: https://github.com/arlk/ConvexBodyProximityQueries.jl

    This latter one is great as you are just required to implement the support function and are ready to go. Julia performance is great if you are concerned about using a dynamic language (i.e: ~2us for collision between two convex bodies of 1000 faces each)

    Finally, about the convex hull computation it looks like some kind of solved problem, I mean, O(n log(n)) for 3D. Wrong!!!! QHull in this regard is fantastic as it has several heuristics to solve problems caused by finite precision, not to mention that I think worse case is O(n^2) as it doesn't implement the asymptotically optimal algo (not sure...). If you scale to more dimensions, which could happen even in if 3D because you transformed your problem to a convex hull problem you will be hit with O(n^2), bad news. There are several other libraries (CCD, LRSLib and more) that allow you to use arbitrary precision but you will get something like a 100x penalization for the luxury.

GeometricAlgorithms

Posts with mentions or reviews of GeometricAlgorithms. We have used some of these posts to build our list of alternatives and similar projects.
  • Metaballs/Meta-diamonds with Marching Squares Algorithm
    1 project | /r/processing | 24 Apr 2021
    Source code (Processing): https://github.com/volfegan/GeometricAlgorithms/tree/master/Marching_Squares_Coloured_Metaballs
  • Teaching Y=MX + C With P5JS
    1 project | /r/processing | 17 Mar 2021
    Basically, most collision detection is done with line interception, circles, polygons, etc. So lines are important for games to exist and other interesting space/object interaction. Circle to circle collision is especially easy to do. Geometric Algorithms use a lot of math (books reference on link), but I never went ahead with all its concepts like triangulation Delaunay triangulation, simple non-overlapping Triangulation, etc.
  • Bubbles drifting with circle packing algorithm
    1 project | /r/processing | 14 Mar 2021
    As the circle objects flow, this actually forces their radius to become more homogeneous. Quite boring looking for something I spend a lot of time understanding its inner work. This is one of those things that the static image is better than the animated. It runs slow at this screen size, but as I didn't like the results I don't think I will improve its efficiency by implementing some quadtree or spatial hashing.

What are some alternatives?

When comparing ConvexBodyProximityQueries.jl and GeometricAlgorithms you can also consider the following projects:

JoltPhysics - A multi core friendly rigid body physics and collision detection library, written in C++, suitable for games and VR applications.

dotSCAD - Reduce the burden of mathematics when playing OpenSCAD

BEPUphysics - Pure C# 3D real time physics simulation library, now with a higher version number.

contour-rs - Contour polygon creation in Rust (using marching squares algorithm)

EnhancedGJK.jl - GJK signed distance algorithm for convex bodies in Julia

Asteroid_game_with_physics - Asteroid game minimal working physics using GJK Algorithm on Java Processing v3.5

clipper-lib - Boolean operations and offsetting library in Javascript

Computational-geometry - Computational Geometry Unity library with implementations of intersection algorithms, triangulations like delaunay, voronoi diagrams, polygon clipping, bezier curves, ear clipping, convex hulls, mesh simplification, etc