Computer Science 3710 - Kyle Link

Valve's Weighted Companion Cube


For this project I decided to design a very simple model based on one of my more favorite games: Portal 1/2. If you are unaware of this game series, this small little cube accompanies the player through out the game and is very popular amongst the gaming community. I decided to build something from a video game since I wanted to not only experience first hand how much time and effort went into building the objects but also I may get the chance to get this printed on the 3D printer!

I developed the companion cube in Blender with no previous knowledge in 3D modeling and design. With this said, learning how to maneuver throughout the software proved to be the most difficult of tasks. I feel that Blender was designed with shortcuts in mind and learning the shortcuts was the first milestone in this project that I had to complete. For example. even a simplest task to move the camera around the object took me a while to get used to.

Once I had the basic controls of the software down my next step in building the companion cube was to get the rough shape of the object. Even though the object is a cube, it is not a perfect cube. If you look closely the outer contours of the cube are slightly con-caved. In order to accomplish this small task I had to learn how to cut a cube up into segments and mold each segment to resemble the shape that I required. Again, what at first seems like a mindless and effortless job took me hours to learn, practice and then successfully implement. The next step into my design was to add the inset circles that are found on each face of the cube. Unlike the previous task, I was able to complete this rather quickly actually. I found a few good videos on YouTube that showed me how to convert a grid of vertices into a circle of vertices. This was done by the function transform -> to sphere. I was amazed how simple and elegant this feature in Blender was. These first few steps although trivial, took me the better part of a weekend to do, clearly I require a lot more practice in this type of software!

At this point I took a break from the project for a bit since it already consumed so much of my free time. A few days later I decided to give it another go so this time I decided to try and implement the cuts and grooves between the faces on the cube. There are 2 groves located on each edge of the cube just near the vertices. These groves connect the circles on each face together and are one of the more intricate portions of the project. Unfortunately for myself, I wasn't able to find any easy method to do this task so I ended up manually removing edges on the cube to get the desired effect. This was by far the most painful and tedious portion of the project. I felt that my approach was repetitive and that it somehow could have been automated and/or 'copy-pasted' for lack of a better phrase.

The last portion of the project was to add the slightly elevated mini circles within each face. Unlike my previous approach to making circles, that method would not work since the software's extrude tool doesn't work well with circles on top of circles... Instead I decided to create a wire-frame circle, manipulate it size and then translate it to the appropriate positions on the cube. This ended up being quite easy, since the global position toolbar works really well for moving objects throughout the 3D world.

At this point I can comfortably say that I am quite proud into what I have created in Blender. I wouldn't go as far to say that this is an exact replica of Valve's iconic little cube but I feel that it is close enough. There are two minor details that I neglected to implement, for example the heart on each circle and the small black lines running between each circle. I feel that these little features are not about the physical shape of the cube but really only the texture or appearance.