Post date: 28-Feb-2014 07:00:41
My over-riding aim has been to prove to myself that fabric can work. Done.
Fabric is a tool that can be placed in a real-time environment and given an objective. It is not necessary to know anything about the environment, or how the objective might be achieved. The fabric needs access to real time data from the environment, and the ability to act on/in the environment, but starts out naive of the nature of the available data or actions. No big deal, new born animals do it all the time!
I have written software to create a working prototype of computational fabric, and run a few very simple tests. There have been challenges. Creating any novel thing is difficult; punctuated by the devil in the detail, by poor decisions, by lack of experience, by steep learning curves, by adapting tools, by creating new tools, and by exhaustion. The adage 5% inspiration, 95% perspiration holds fast.
I have constructed a very simple virtual environment to use as a test. Essentially, the environment is a ball on a hill. I can connect fabric to this hill environment at three points. The first point simply measures the distance from the top of the hill to the ball (-128 thru +128). The second and third points nudge the ball to the left and to the right respectively.
My simple test involves creating two identical hill environments (blue & red) and connecting both to the fabric at the 3+3=6 points. Next, I generate a completely random swatch of fabric and ask it to keep the blue ball on the top of the hill (i.e. blue position = 0). The red hill is there simply as a control for comparison, with no set objective. Finally, I set the test in motion and monitor the position of the 2 virtual balls on the 2 virtual hills.
The chart shows the position of the two balls as time progresses (down the page) in a single 2 minute test. First you will notice that there is a lot more blue than red. Both balls spent a lot of time at the bottom of the hill on the left or the right (-128 or +128), but I have omitted these extreme values to save a little space. The red ball spent most of the time at +128, and the blue ball spent a lot more time away from the extremes. If the objective on the blue ball was met perfectly, then the chart would show a neat blue line down the centre of the chart. The result is far from perfect, but it is clear (to me) that the fabric is influencing the blue ball towards the central position, and largely ignoring the red ball.
These results are very satisfying; the basic mechanism of the computational fabric appear to work, but there are a number of areas which can be tweaked or tuned. After that, the fabric must be tested in increasingly complex and challenging environments. Much to do!