Gimme DOTS Geometry

Gimme DOTS Geometry utilizes Unity's Burst Compiler to enable very fast query times for various questions regarding space, e.g. "Which objects are within a 10m radius?" or "How many entities are inside this area?"


The stuff you'll get:

  • 30 Sample Scenes
  • Native spatial-hashed Quadtrees and Octrees (sparse and dense variants)
  • Mesh Slicing
  • Native 2D KD-Tree and 3D KD-Tree
  • Voronoi Diagrams
  • Dynamic R* Trees (2D + 3D)
  • Dynamic Ball* Trees (2D + 3D)
  • Hull Algorithms
    • Convex Hull
    • Concave Hull
    • Minimum Enclosing Disc and Sphere
  • Polygons with holes and extremely fast Query Jobs (and two triangulation methods)
  • Delaunay Triangulation
  • DBSCAN (2D + 3D)
  • Specialized algorithms for your custom Boids (All Radius and All Rectangle Queries)
  • Advanced Native Containers
    • Native Priority Queue (Binary Heap)
    • Native Sorted List (Skip List)
    • Native AVL Tree
    • Native Red-Black Tree
  • Line Intersection Jobs
  • Native Quickselect
  • And a lot more!

All spatial data structures support parallel queries. Like the polygons themselves, polygon queries support holes as well.



Dependencies:

  • Burst 1.8 or higher
  • Collections 1.4 or higher
  • Mathematics 1.2 or higher

Support and Extensions:


ECS is not a requirement for Gimme DOTS Geometry to work. It is however supported and can interoperate with the Entities package if you want to. You can find additional 4 example scenes in the ECS_Samples.unitypackage contained in the sample folder on how to integrate some of the data structures into ISystems. In order for the additional scenes to work, you will require:

  • Unity 2022.3 or above
  • URP 14 or above
  • Entities 1.0 or above
  • Entities Graphics 1.0 or above

Gimme DOTS Geometry has an extension called Gimme GPU Geometry, also available on the asset store!


More Information:


PDF Documentation

Scripting API


There is also a work-in-progress Wiki, which will replace and surpass the PDF eventually.



Contact:


Email | Website | Discord