Saturday, November 16, 2013

Multidimensional Display... and chess!


So multiple dimensions. Thinking in 2 dimensions: easy. 3 Dimensions? Do it all the time, doing it right now just to pick up my coffee. 4 Dimensions? ...suddenly things start to get complicated.

Or at least that's how our brains have been trained to think.

About 10 years or so I had started an Information Processing degree at university... the required subjects included maths at a much more advanced level than that taught in high school. It was a little bit a mental hurdle going from doing calculations in my head and getting in trouble for not writing out the working to quaternion calculations and multidimensional maths where I couldn't even visualise the most basic of calculations. Somewhere in this course I had heard that no one had even figured out how to display multidimensional data.(It's not that they hadn't but just that it never seemed to be easily understood/interpreted... or something... I was never very clear on what the problem was) Move forwards a couple of years and I was once again working as a software tester... well, games tester. I spammed buttons in front of a console game for 7 hours a day, kind of mindless but gave me a lot of time to think. Returning from lunch one day I was struck by an idea.
Concentric spirals. Coils made up of coils.

Imagine a wire coiled around a central axis a thousand times - the result is a spring. 1000 coils is equal to a value of a thousand. Coil that spring about another axis 1000 times. coil the resulting spring around another axis 1000 times. coil the... etc etc. You can keep doing this as much as you want, number of coils results in the number of dimension, number of loops is equal to the value.



Ok, so the example here shows the main problem with this way of displaying information - the more dimensions the more difficult to get an idea of all the information at once. It would need to be a 3D display so that it could be viewed from different angles and zoomed in on.

Quick update to the original post, here is an example I mocked up in blender. I started with a value of 1 being a line of 16 spheres... because I was doing this manually and I don't really know how to use blender. So... pretend that the spheres are connected by a line and this display makes a bit more sense. :)
Ideally the angles and offset between dimensions and values would be set through code or script for accuracy and clarity.

I didn't really have anything I could do with this idea at the time. It was just an interesting idea that killed time while spamming buttons. I told a few people and expanded on the idea a bit. Eventually I thought about patenting this idea but had 3 problems:
1. Patents are expensive and frankly I couldn't afford it.
2. If you think about it for a moment it's not the easiest way to visualise data, I couldn't think of anything to use it for so I didn't really think anyone else would pay to be able to use it either.
3. I had already told people about the idea... which if done before a patent is applied for invalidates the patent. (or at least that's my understanding of the process)

Oh well. Recently I came up with something I could use a multidimensional display for - Chess! (or any strategy game for that matter, anyone up for a game of 12 dimensional rithmomachia?)

At this time I have a slightly more evolved versions of the original idea:

Fixed number of coils OR Relevant number of coils: Fixed number of coils shows a specific range, is a bit easier to understand and is more useful as a way of visualising data storage. Relevant number of coils scales with the value of each dimension and is a better way of displaying a single vector.

Coils per vector OR Coils per dimension: Coils per vector has the coils spread out across the multidimensional vector and is a more accurate way of displaying the information, it is also better for showing a single vector at a time(a 3 dimensional vector with max value of 3 has 3 small, 3 medium and 3 large coils). Coils per dimension has each dimension having a complete set of coils from preceding dimensions, it is easier to zoom in on a section and is better for showing multiple vectors.(a 3 dimensional vector with max value of 3 has 27 small, 9 medium and 3 large coils.)

Plain OR Shaded: Plain display just shows the coils and is easier to visualise smaller and simpler vectors, requires the use of 'relevant number of coils'. Shaded display shows the value by shading or colouring a number of coils out of a 'fixed number of coils'.

Scale become much more relevant when dealing with shading as multiple colours can be used to clarify or change the meaning of the presented information.
Common colour scheme OR Variable colour scheme:
Common colour scheme uses the same 2 or 3 colours for each dimension. This makes it easier to visualise the total vector(ie. orange for values before relevant numbers, black for relevant numbers and then either orange or another colour for values after the relevant numbers. There more black the greater the relevant vector etc) Variable colour scheme uses a different colour for  the value of each dimension and another colour like black or white for non relevant values. this is better for showing changes across specific dimensions rather than the overall change.







I'll try and add some images to show what I mean when I have the time but for now I have a quick mock up of a variable colour scheme with fixed number of coils displayed with coils per dimension.
[Image]

Update: this type of display would not be used for a chessboard, bit too confusing. Also this particular example was an attempt to color only the side of the 'coil' nearest the high value end of the dimension.




Anyway, with this it should be possible to make simple multidimensional displays. Enough to... play chess! For a start you could limit the field to 5x5x5x5, player one starts with a king at 1,1,1,1 and player 2 starts with a king at 5,5,5,5 each player has 2 bishops and 2 knights and the goal is to actually take the opponents king. This type of game gives people enough time to get used to multidimensional play, once the basics are understood the field can be expanded and additional rulesets used. By playing games like this people can start to think in multiple dimensions and thus understand them a bit more.

I am currently using stencyl for all my flash games but if I learn a bit of unity it should allow me to make a reasonable game of multidimensional chess with a 3D display for coils. So look out for this sometime in the next year or so... if anyone one wants to have a go on their own let me know. I'd love to see this stuff put to use.




You have defeated a wild post and leveled up! 
You have gained the following skills: Blogging.
- Blogging has reached Basic level 1.

No comments:

Post a Comment