Josephine Suen

CPE 471


3D Tiny Tower Simulator is an overly simplified 3D version of the popular mobile game Tiny Tower. In the game, you build a seemingly endless tower of shops and apartments to attract customers and tenants. The simulator does not have a game element (no money, no people, and no objective). It also has generic rooms instead of shops and apartments. However, rooms are built instantly instead of requiring money and having a construction period, and can have their interior and furniture changed.

This was programmed in C++/OpenGL. The Blinn-Phong shading model was used for all shapes.


The program starts up with a blank scene. The background is light blue and the ground is a tiled texture. There are towers of various heights in different locations. This is achieved by looping over all of the possible positions for the towers and deciding at random (33% chance) if a tower should be placed there. These towers are just for background scenery.

Click-and-dragging the mouse moves the camera. You can't go lower than the ground or higher than 2 stories above the top of your own tower (in this case, it's just 2 stories above ground level since there is no tower built yet).


Now you can start building rooms in your tower. Your tower appears at the center of the city. The room is just a cube with the normals facing inward (so the color/texture is on the inside). The sides of the room facing the camera are not drawn so you can see into the room from any angle. This is achieved using front face culling. The camera rotates so it's always facing the tower. Zooming in all the way puts the camera at the edge of the room. The the colors/styles of interior and furniture are all randomized and can be randomized again at any time.

Note: Room actions are applied to the room that is most centered on the screen.

Any number of rooms can be built. They are dynamically allocated, so the only limit is the machine's memory (not actually tested). New rooms are built at the top. There are controls to easily navigate through the rooms. Additionally, resetting the camera moves you back to ground level and facing the front of the tower.

Rooms can also be destroyed. If you want to start over entirely, you can reset the tower. This destroys all of the rooms but leaves the rest of the city in tact.


The colors and textures of the interior can be randomized individually. There are four walls: flower, stripes, dots, and plaster. There are also four floors: tile, carpet, wood, and rug. The ceiling is the same color as the walls but without texture.


There are three different "centerpieces" for a room: a standard table set, a modern table set, and an Angel Kitty (aka Kittysaurus) from Toy Story That Time Forgot. The tables and chairs are composed of transformed cube shapes while the Angel Kitty is drawn from an OBJ file. There can be up to 6 chairs surrounding a table. There can also be decorations in the corners of the room. (Note: They're actually upside down pillars.)


  1. Foundation
  2. Google Images
  3. MeshLab
  4. OpenGL/GLUT
  5. Thingiverse
  6. tinyobjloader