Links

ΜΆ
Adam I. Gerard
ISU
NIU
CS MS TBD

Rotational K-D Trees

So I was mindlessly, listlessly, doomscrolling on Youtube when I encountered this (or rather it encountered me after surfacing in my recommended activity feed). Got me thinking (as I'm prone to do):

  1. Can Quadtrees be extended to the three dimensions? A forest of Quadtrees ("forests" of tree-graphs are a useful metaphor in many famous algorithms).
  2. Can we exploit something like Polar Coordinates (or, better paths on the surface of a Sphere) to help optimize or fix the projected quadrant that some piece of data would reside in?
  3. How efficiently can we reuse data by rotating or transforming data within a "Cubetrees"?

So, I learned about K-D, and Ball Trees but didn't really find anything about using three-dimensional K-D Tree within a Sphere (whose corners intersect the surface of the Sphere). Might just be ignorant here.

There are some probably fairly mundane observations here (but maybe not so obvious to me):

  1. The Rotational Group for the interior Cube (being rotated in every which way about the same origin) forms the same enclosing Sphere.
  2. That Rotational Group in turn appears to be akin a Linked List and can be potentially thought of as such.
  3. If so, then there are some potential advantages.
    • We can build a metaphorical K-D Tree forest out of a single three-dimensional K-D Tree.
    • We could potentially use Polar Coordinates to fix which Rotation we intend to use.
    • We can potentially embed into those Polar Coordinates a cipher or other data transformation function to have the original Cube do multiple-duty - reusing a finite data set in an infinite number of useful ways (think of an Alphabet with a fix number of charcters that can be mapped to an infinite number of combinations resulting in words, sentences, phrases).
    • These need not be Polar Coordinates alone, they can be a path to allow greater flexibility in retrieving and encoding data.

I had ChatGPT generate a GIF since I couldn't find one to illustrate this point:

KDTS

Some intuitions (obviously this needs to be worked out and as such is being presented in blog form here):

  1. Since there is an infinite number of Points on the surface of the Sphere (and each associated with a particular Rotation - say the upper back-most left corner of the Cube), there are an infinite number of paths one can draw or take on the surface of the Sphere (this is also independently true). As such, there are an abundance of encodings that can essentially reuse the same, fixed, finite amount of data to do a lot of transformational work.
  2. A Hash Map, say, into a bunch of K-D Trees doesn't have the convenience or ability to represent such Polar Coordinate Paths.
  3. Not only do the Rotations form a kind of Linked List, presumably within the space of all Paths there are ones that could serve as Skip Lists (also, I have to admit, something I learned about from here).

Obviously, I need to further refine this idea and prove some things.

Proof of Concept

GitHub

Contents