# What is Spatial Reasoning Exactly?

Taking the 3D modeling course in NCLab will not only make you strong in geometry, but it will also develop your spatial reasoning skills. But what is that, exactly? When you google for “spatial reasoning”, you will find:

“Spatial reasoning is a category of reasoning skills that refers to the capacity to think about objects in three dimensions and to draw conclusions about those objects from limited information.”

That is quite abstract. And to some readers, the part about “thinking about objects in three dimensions” might be outright confusing.  Spatial reasoning is about working with 3D objects with elegance and simplicity. Like in sports or when playing musical instruments: If someone is good at it, things happen seemingly effortlessly. But that is only true until you watch someone who lacks the skill.  To illustrate what we mean, we prepared a small example about building a hollow box.
The box has outer dimensions 5 x 4 x 2 inches. The walls and the bottom are 1/4 of an inch thick. One way to view this object is as a union of five different rectangular prisms. The bottom ‘b’ and the sides ‘s1’, ‘s2’, ‘s3’ and ‘s4’. In the following image, these objects are shown in different colors to make the point more clear:
The design is then implemented accordingly. Using the command BOX to create five rectangular prisms, and then the command UNION to obtain the union of these five objects. This is the complete design:
In summary, we needed to create five different objects and use one Boolean operation – set union – to obtain the result. Now somebody with more developed spatial reasoning skills might look at the same hollow box differently: There is a 5 x 4 x 2 inch rectangular prism
that has a cavity in the form of another rectangular prism. The latter is shown here in red color:
When the red object is subtracted from the original 5 x 4 x 2 rectangular prism, the same result as before is obtained using just two objects and one Boolean operation – set subtraction. Here is the corresponding code which is way more elegant:
We hope that this example helped. There is much more to spatial reasoning than what we could cover here, therefore we will return to this subject in the future issues again.