The idea is to have a 3D representation of a set of URL's, in which the characteristics of a URL ( size, colour, shape, proximity to other URLs, etc ) are based on both inherent properties and on metrics based on historical navigation activity.
The initial thought is that the 3D representation would be a 3D graph, with URLs as nodes in the graph. However, that's not critical, as long as the shape can support clearly identifiable clickable regions.
In other words, there's a shape that the user can see and navigate around, and following a link by clicking somewhere on the shape provides feedback to an algorithm that automatically morphs the shape.
The test case would be my blog, which will contain sections/pages on a very wide variety of topics ( such as this page ) with no obvious semantic links.
One possible realisation of this might use a tool to create an embed code every time the 3D shape was updated, which would then somehow be ( indirectly ? ) referenced by the blog.
This is more or less what it looks like :
There are two main challenges :
This is the critical capability that's required for the Grand Plan. It's not clear how this should be done.
Creating a 3D thing and viewing a 3D thing are solved problems. Knowing what part of a 3D object is being pointed at by the cursor is a solved problem.
The question is entirely how to associate a URL with a point or region in the 3D thing such that a click will trigger a navigation event. This is a solved problem for 2D images. The key question here is whether the URL resides 'within' the object as metadata of some sort which the object provides, or whether this is simply a lookup against an externally maintained map of the object surface. The latter solution would be more flexible as it would not constrain the 3D representation. On the other hand, it creates a dependency, because changes to the 3D representation would require corresponding changes in the map.
This requires some sort of API that allows the creation of a suitable 3D shape, but this is ( surely ?! ) a solved problem.
This blog shows a way in which a 3D object can be created, annotated, and turned into an embedding. For basic experimentation, this will probably suffice.
So the flow is as follows :
© Mark de Roussier 2021, all rights reserved.