Interaction with the Icosphere; Live Software Demo

At this point in our development of the Icosphere, we can render our Abstract Icosphere. We can recurse the Icosphere uniformly and non-uniformly. Additionally, we can detect an "observation region" of configurable radius. In this post, we'll tie together all of the work we've done so far in order to make our Icosphere interactive. I've also put together a live, video software demo of the Icospherical World Model.

Detecting the Observation Region: The Coupled Ring Adjacency Search

At this point, we have an Icosphere which we can uniformly recurse to any depth we like. We also know that we can asymetrically recurse any arbitrary face of the icosphere, but we have no system for detecting or determining which face(s) to recurse. Ultimately, we want the faces directly "below" the observer to be the faces under recursion - and the rest of the icosphere to remain unaffected.

Rendering the Static Icosphere in Unity Gaming Engine

We now have all of the information we need to harvest our mesh data from the Abstract Icosphere. We will begin with a simple Awake() method, which Unity will run before all else on program start. This awake method will initialize the icosphere, acquisition the Mesh from the Game Object to which this script is attached, initialize a few other variables which we'll come to later, and call our heavier methods, HarvestMeshData and CreateMesh.

Recursion of the Icosphere and Maintaining Adjacency

Now that we have a basic unit Icosahedron, consisting of twenty indexed Triangle objects, all of which have adjacency knowledge, we are ready to begin recursing the faces of our Icosahedron to form an Icosphere. The recursing of the Icosphere would be a relatively simple task were it not for the fact that our triangles must maintain Adjacency data at all times. Maintaining adjacency data would also not be too daunting a task, were it not for the fact that we are planning on asymmetrically recursing this Icosphere.