The Idea of a "Dimension" and How We Can Use It



I am creating this discussion topic in the hope that others, including - in particular - a user with the Hopscotch user name, "Pickafunnickname9-2", will join me for a discussion of an important and useful concept: the concept of a "Dimension".

[cue the space music...]

I have seen questions about this before on the forum. Unfortunately, even though the concept is very simple and quite general, the term itself is frequently misused and widely misunderstood, on account of how it can mean different things, depending upon what is being talked about. Sometimes it refers to dimensions in physical space. But sometimes... it's something entirely different, but no less real.

Well, I believe I can help you understand both meanings. I believe I can help you understand them in ways that few people even care to try, if... it's interesting to you. And I can show you how to use it in your Hopscotch code. That's the fun part! Yaaay!

Is that interesting to anybody?

In the mean time, I want to invite you to check-out a remix of one of my projects by "Pickafunnickname9-2" whose title warns, you and me - (i think me, especially).


The additions made to the project (none of them programming-related - only some text splattered over the top of my code) also illustrate some common misconceptions. Almost all of them, in fact. I will paste a link to that project below and maybe some screen shots. Please give his or her project a look and a :hearts: , if you have a minute.

Here is the link:

Oh... yes... If we have the discussion, we will explore what this term means.


Settling Dimensional Confusions
Interview for anyone

I wonder as much about where these thoughts come from as I do about where fhey are going. It's fascinating that you regard the above as related to the O.P. that anticipates only a discussion of how the idea of "dimension" can be useful in one's code. I suppose I could conjure a connection between that and what you have written, but I would rather hear your version, frankly. Either way... interesting thoughts.


Hi @oio first thing I want to say is was your latest project (4D4U) is soo amazing!! :scream::scream::scream: I was totally gobsmacked when I saw it. It was cool enough in 3D but when the dots started pulsing while I twisted the iPad about, that was super awesomeness :sunglasses:

Would you be able to tell us how it works? I couldn't really make much sense of the MoveMap and the SetCellText abilities. I would love to know (but completely okay if you prefer not to tell).

On the topic of dimensions I was told and used to believe too that the 4th dimension was time, but recently after downloading this app:

The Fourth Dimension by Drew Olbrich

I found that this seemed a better idea of the fourth dimension. Here's an idea of what the fourth dimension is like. This is a tesseract:

This is how a 4D shape would look to us in the 3D universe. Us looking at this 4D shape in a 3D universe would be like someone in a 2D universe looking at a cube, which is a 3D shape (also like someone in a 1D universe looking at a square, a 2D shape). So relating to what Pickafunnickname9-2 was saying:

0D - a point
1D - a line
2D - a square
3D - a cube
4D - a tesseract
Beyond - ?????

I mean of course time being the 4th dimension is cool too but I feel the tesseract makes a little more sense when we compare it to 3D, like we do with imagining a cube in 2D and so on.

Anyway please let me know if I have made a mistake (I had to do a quick search to refresh my memory) and I love thinking about dimensions so would love to join you in a discussion about what they are!

What is the definition of a dimension anyway? :)


Interesting direction. And some really insightful comments. So... What I think you are speaking of are the "dimensions" of what we call a "parameter space", which is exactly one of the most important points here.

What i am hoping others will grasp (or at least consider) is that a "dimension" need not be literally spatial (x,y,z) or even temporal (t). There are lots of situatuons in which it is convenient to deal with a problem in an abstract "phase space" than in some physical space.

But here is the original motivation: I posted a project yesterday or the day before with the title "4D4U". It produces the illusion of an undulating 3D surface. The illusion is enhanced by the fact that the positions of points on the screen respond to the tilt of the iPad. It tricks the brain into perceiving a 3D object with a changing shape.

The posted "remix" of my project contends (and somewhat indignantly, if not angrily) that the use of the term "4D" is not legitemate. It would appear that the person attempting to teach us all what a "dimension" legitimately is is himself or herself confused because my Hopscotch program does not miraculously result in the creation of a physical hyper-object - the one and only result that would fit this person's definition of "4D". Well, of course not! An iPad can't even produce anything in "3D" for that matter. The screen is flat. :smile:

So... duh... I think it goes without saying. Just like a project that portrays a lemonade stand doesn't produce lemonade. Or a like a walking human stick figure project is not expected to produce a real human. LOL.

Nevertheless, what that viewer (and perhaps others) probably has not considered is the fact that every displayed point in an illusion like that one is, in fact, defined by a set of four values in its 4D parameter space. It is, in that sense, therefore, defined in four dimensions, the entire illusion being four-dimensional.

Even though, no, um... It's not a hyper-surface.

I can't help wondering how many others might benefit from having this idea explained and who might be interested in how to define a multidimensinal array in Hopscotch, as-is. It could be useful in lots of things, including the making of games, as you mentioned, and effects, such as I have produced. That is all that i had hoped to illustrate, before being scolded by someone with a rigid understanding of the term for my having said "4D".



@t1_hopscotch, i am so glad that you are interested in this! Thank you. I sincerely hope that I can offer something that you will find useful. You guys are all so smart! It's incredible!

So... I would rather give your question the attention it deserves, when i am at the computer than at this iPad. Look for a response a bit later. This is really, really enabling information. I love the topic. Well, i guess it shows. :blush:


Sure, @oio, absolutely of course! Thank you for wanting to take the time to discuss this further :smile: I love dimensions too and again your project is so impressive!


I'm hesitant to get into this discussion, as I really have no idea what the fourth dimension is and I don't think I'll be able to add much, but this is what I have seen about the fourth dimension.

So let us look at the first dimension. There we have one coordinate we need to describe the location of anything: x. Get
into 2 dimensions and we add another: y. Get into three and we add another, z. Get into four: ???

A widely accepted theory is that then we add time, because of a thing called relativity. Relativity is what Einstiens equations are all about, and it states that the amount of time that passes for someone is relative to their velocity, among a few other things. This means if I was traveling at the speed of light in a rocket, time would pass way slower for me. When I get back to earth a year later in my time, 10 million years might have passed on earth. This means that we can not seperate time and space because their states are dependant on eachother, so we combine it into a thing called "Spacetime". Our coordinates we need now to describe any point in spacetime are these:
(T for time)

And that would be four dimensions.

But, there is also The Fourth Dimension, where there are 4 different measures of direction
Which is where you get the tesseract and all that, because to describe any point you need four different coordinates.

So, in @oio's project, he was demonstrating the second idea, but PIckafunnickname9-2 thought that "Spacetime" was the only fourth dimension.

The one thing that confuses me is this:
Is the fourth dimension time or spatial? There seems to be two accepted definitions of a "Fourth Dimension", does that mean there are different types of fourth dimension?


This seems interesting! I'd like to get into the disscussion later (after school of course)


I apologize for the delay in my response to your kind and insightful comments, @BuildASnowman, as well as to you, again, @t1_hopscotch. I am fortunate to have your thoughts, @CreativeCoder and @Stradyvarious. And those of any others who might want to look over what we have said here, a little bit into the future. I had to be away from the computer for several hours. Now I am again free. Yaaay!

But this topic is... after all... timeless.

Indeed, what ARE we talking about - "we" meaning people in general - when we try to communicate ideas and cast spells, using this word "dimension"? Do we really know? Really? Come on. Alas, I have discovered by accident that, most of the time, the speaker has no more understanding of this word than he or she does of the words "quantum" or "frequency" or "energy" or anything like them. To me, a student of physics, the way these words get abused is both hilarious and tragic.

Now... lest you think my intent is to depress you by bemoaning widely-held misconceptions... no. I am here to tell you - you who are actually the brilliant, self-honest exceptions to an otherwise not-so-happy rule - that, as far as I am concerned, you can joyfully treasure your growing understandings of things like these. I am here to encourage you to do that. Dig for this treasure! And don't be afraid to think or volunteer something from it in a way that others do not immediately accept.

As you have discovered, quite on your own and to your credit, guys, the process of learning, set into motion by a desire to know or, perhaps, a need to know, often begins with an acknowledgement of what we do not know. We must also survive a temptation to embrace incomplete truths or illegitimate conclusions based upon them or, worse, upon the mere semantics handed to us by others as a means of expressing them, when we don't really understand... anything at all.

Undertanding is neither obtained nor confirmed by vocabulary. Words are just tools. We create them, as it suits our purposes. And not the other way around.

As evidenced by the response on display below, the primitive impulse or compulsion to reject any concept or word usage that does not harmonize with our already-held concepts, is primal (nobody has to teach us this response, evidently) and almost violent towards learning itself. It's amazing that any of us ever learns anything. Take a quick look at the kind of thinking, to which yours is the wonderful exception, in the following:

Does that seem like a happy project title to you? Does it seem enlightening? Does it even seem nice? Does it seem like a response that you would want to offer to the well-wishing, would-be bearer of some new concept or coding technique, freely shared with you? I dare say on your behalves, "No! No way! Uh, uh. Nope." What is the sentiment? It almost resembles rage. It also broadcasts presumptuous and crippling arrogance that accompanies poor training and manners - all brought to the surface by a mere choice of words. We would do well to consider the drive that deprives the speaker of any joy that would otherwise have been his or hers for just studying the little Hopscotch code project and doing something creative along its demonstrated lines - perhaps something even more entertaining, so that you and I and @t1_hopscotch might again be "gobsmacked." :smile:

I don't mean to gratuitously pick on this poor coder, who probably has no clue that I am using his or her example as that of the antagonist in our narrative. Happily, for all of us - you, me, him or her - there is so much to be learned from this. A full matroshka-doll of lessons! This goes far beyond the "correct" use and meaning of a single word. I will try to invite him or her to join us in the discussion, not to defend anything, but to discuss a topic that is evidently important to him or to her... if that really is the case. (Though, I'm not quite sure how to do that. If I remix the project, will this user even see it? Or will I just be remixing a remix of my own project without him or her receiving a notification?)

So, yes, by all means, let's "learn what something means before [we] use it in a sentence!" And let's not stop there. Let's question what we have "learned". And let's practice this in the hope of being able to do something new and useful with what we have learned, all the while developing ever-better habits. The capacity to do so is among the few things that elevates us above the animal kingdom, if not those that separate us from the inanimate world.

Are you guys up for that? I need to pause here for attend to something. Then I will get into the subject of "what is a 'dimension'?" and of "how can it be useful to us?"




So, how do we understand the term "dimension"? We could do the sophomoric thing and put a definition (somebody else's words) in front of us - maybe Wikipedia or Webster or whatever - and call the whole thing done. That would certainly appeal to the almost insatiable need for "closure". But, here, that would mock the point. Again, the question is how do we understand the term? It's your mind, after all. You get to decide what goes into it, what it means to you and how it gets related to the other contents of your mind and used in the physical world.

Or am i mistaken?

Yes, believe it or not, some people want to impose rules on what you do during your own information assimilation and sharing process. Amazing. If that doesn't smack of insidious, I don't know what does.

Some of us use the term "dimension" loosely to refer to refer to some kind of realm. Is that what it means? Is a "dimension" a "realm" in your understanding? You can pull-up lots of YouTube videos filled with conjecture about alien visitors or supernatural phenomena from "another dimension". So does that really mean anything to us?

To me, it sounds like a dressed-up way of saying "from some other place." Not quite as mysterious or cool sounding, is it? I guess that's why I don't write those programs.

Besides... well... if they (whoever "they" are) occupy more than one "dimension" the way we supposedly do, having physical extent in them, they don't so much "come from" another dimension (singular) but, more accurately, EXIST IN a whole set of dimensions that includes our own. They can move in one or more directions that we do not even conventionally perceive or have mobility in. At least, not at will. Already, the terminology is getting tedious. Isn't it?

Here's another usage: A dimension is a measurement. The "dimensions" of a house, for example, might be all the numbers used to define its floor plan. We might ask, "What are the dimensions of your room?" Just don't let "Pickafunnickname9-2" hear you say that. :stuck_out_tongue_winking_eye:

Ok, here's another one: In some contexts a "dimension" is a degree of freedom. That might apply to a robot arm or mechanical machining tool and describe the number of "axes" the thing has that can be controlled. A "five dimensional" tool, or a "five-axis" tool isn't really a hyper tool, extending outside of our normal space. Instead, it's something whose configuration in space permits (or requires) five parameters to specify it. It could have a moving, horizontal "X - Y" stage and a vertical "Z" head, but also the ability to set the angle of attack for its drill bit or end mill, and maybe another angle, too. You can go look that stuff up on the web, if it interests you. The point I want to make with the tool example is that lots of engineers and people who make stuff consider it very useful to have a machine that they can control using more than just three spatial parameters. Otherwise it's too hard to make some complicated shapes out of blocks of metal or whatever.

How else do we use the term? In many sciences, we use the term generally to cound the number of things that coexist independently but that all conspire to create a given outcome. In other words, we use the term "dimension" to describe an abstract parameter space. that could be a "space" for describing some physical situation that has one "axis" to represent temperature, another to represent pressure, another to represent time and another to represent something else. I have personally worked on problems like these that have a parameter space with twenty-one or more dimensions! Talk about solving a Rubik's Cube! But when I have found the optimal solution in that 21-D space, the result has sometimes been patents and commercially-successful products. Crazy, huh?

How else? In mathematics, we can just MAKE-UP spaces of however many dimensions interest us and do math in them! I love it!

And what about programming? Ah, that's the one that should be on our minds. Does programming get any benefit out of the idea of a "N-dimensional* space? Yes. Absolutely. When we create "vectors" (not the geometric kind) or "arrays" or whatever term your language happens to use, you generally work with a variable name - let's call it "M" and call out its "indices". There's one "index" per dimension of the construct. So, we might have a "2D" array called "M". We could use the letters "i" and "j" to refer to its indices. So "M" refers to the whole collection of stored values. And "M(i,j)" is a way of accessing one of them. To specify a certain element or "location" inside of "M" we might say, "M(3,5)" to refer to the 3rd value of "i" and 5th value of "j" inside of "M". Let me drop the quotes. They're a pain. So, M(3,5) could have the value, 2. and M(1,1) could have the value 10 or pi or something else. Doesn't matter. What makes this USEFUL is that in a program I can use code to decide which i or j I care about or do something with and work with it by coding for M(i,j) instead of having to create a whole new variable name for each element inside of M. That, is exactly what I have done with my "4D4U" code and why I have so named it.

What makes the code significant - and what I had hoped fellow Hopscotch users might find useful - is that I came up with a way to define several variables for EACH CLONE that can (though they don't have to) have something to do with how they get displayed. So the clone is like the "M" and the referenceable properties of that clone are the "indices". That's what made it possible for me to create the illusion of each clone having a "location" in "3D space" as well as to let that location change in "time." Hence, 4 dimensions, 4 degrees of freedom, 4... whatever... indices! K? Until Hopscotch introduces the concept of arrays or provides "self" properties for clones, I submit that this is a good way to get there from here.

I will say more about the technique, if it interests anyone. Meaning, if there's a question here.

In the next post, I will treat the very specific case of spatial and time dimensions that seems to have caused some confusion. What we're talking about above is all very (beautifully and powerfully) general. In that subject, we'll be putting on our "physics" blinders and narrowing the scope of the discussion. Although, honestly, it's not that mysterious.

Hopefully the foregoing has been useful. At least a little...?


Well, I guess we're just going to continue with Pickafunnickname9-2 as our antagonist. They probably don't even have a forum account and are just going to continue their life critiquing projects. Pity. (Sorry to Pickafunnickname9-2 :stuck_out_tongue_winking_eye:)

So, correct me if I am mistaken as I just quickly skimmed through your post, a dimension is basically the measurement of a plane (mathematically, not the flying thing in case you didn't figure that out..)?

The huge question is: how do we apply this to Hopscotch?


Good question, @CreativeCoder!

1. Suppose you wanted to easily create a collection of objects. Cloning is a nice way to do that.
2. Suppose you want those objects to all obey some set of rules.
3. Suppose you wanted to make decisions for each of the clones independently, based upon some value associated with them.
4. But suppose you don't want to have to go EXPLICITLY create a set of separately-named objects and make rules for every single member of the set before running your code.

How would you do this?...Hmmm?
What facility does Hopscotch provide for it currently? After you answer that, I'll pick up from there.

And, yes, my apologies for beating the matter to pieces, but I am going to have to use that Hopscotcher's vocal remix of my project just one more time, in order to speak to the "physics" related question that may actually interest some.


Well, @oio, I do have a project where it uses clones and each clone is doing a different task here if you want to take a look at the code, but it's a bit tedious to do with all the Check Once If blocks..


I don't doubt it. I'll check it out. But "doing a different task" is not quite the whole crux. Let me have a look. That sounds like fun. Then, I'll pose my response in the form of a question. Thanks.


Ok, that was funny. Actually, kinda creepy. what's the little pink girl's name?

Yeah, they're / she's doing different things. That's for sure. But also... not. Let me show you what I mean. And maybe this will help..

So... each clone is doing something different. But the code does not distinguish, based upon any attribute that actually BELONGS TO the clone. The distinguishing depends upon a variable that does not really exist, per clone. It's just a counter. Neither are any decisions being made, based upon any uniquely-accessible clone attribute. That's where my little "3D" or "4D" gimmick comes into play. And you can easily implement it. And do things cooler than I have with it.

I love this discussion. So, by the way, were you the one who likes insects? Or is that somebody else?


@oio My question is, when we talk about higher dimensions, is it purely mathematical? In math, we can say "This 4th dimension needs 4 different coordinates to describe any point", but to me it seems hard to believe that could actually exist. I know to understand this I need to abandon my preconceived notions of space - but I'm finding it hard, considering our universe is 3D. Classical physics as well, only describes 3 dimensions; higher dimensions are in the mathematics section. But things such as superstring and M-theory describe 10 or 11 dimensions within our 3 dimensional world, "curled up" at some quantum level, which I don't really get, considering that I cannot construct a tesseract in my room, so how could one exist (or rather, the possibility for one) at a quantum level?

And you also talk about creatures possibly existing in 4 dimensions. How would that be possible in a 3 dimensional universe? If there is an actual "4th dimension" out there, it would have to exist as a subset of a 3 dimensional universe, which simply does not make sense. Or, you could be saying that it exists out side our universe, which means there is an edge to the universe, or at least the 3D part of it, meaning you could stick your hand out and be in two dimensions at once? (Reminds me of this episode :P) That also doesn't make any sense.

So, my question is - how can theories like superstring theory and m-theory describe multiple dimensions when it simply isn't possible in a 3D universe?

EDIT: To anyone interested in the answer to this question, after fierce googling and help from @oio's posts I think I have found the answer. Superstring theory does not describe 10 dimensions within a 3D universe, it says that the whole universe is 10 dimensions, but we only perceive it as 3 because the rest of them are "curled up" at a quantum level, too small for any experimental evidence to be found of them. An analogy would be a piece of paper, which at first seems 2 dimensions but at a closer inspection actually has a very small thickness.

But, what exactly does "curled up" mean? Well, say you are playing Pac-Man or asteroids. The game seemingly has an edge, but when you go off the right side you end up on the left side, and same with the top and bottom. You can travel for as long as you want in the same direction.


Let's put a pin in that. Meaning, to save it for later. I love the questions, but I don't want to disrupt the flow, now that @CreativeCoder and I are drilling down to the question of how to use this in Hopscotch. Thanks for patience. Really. You're amazing. I just need a sec.


@oio Haha. I agree. Chillanna I think?

So, in order to be "different" it has to have a special characteristic? And what is your 3D/4D thing?

And I believe the one who likes insects is @AHappyCoder, by the way.


Haha. Hilarious.

Oh! Wait! You didn't see the "4D4U" project that I posted? The one with the wavy surface? Whoa. Please take a minute to go take a look at it, if you haven't. It's kind of the reason I started this thread. You need a dark room, yada, yada.


Yeah, I checked it out, but I'll take a few minutes (or however long) to play around with it a bit. Be right baaaccck!!

EDIT: Oh yeah! That thing. Okay, I'm up to speed. Continue! :smiley: