Recent Project: Architectural Rendering



Recently I was commissioned to produce a set of renderings for a proposed dog daycare in downtown Boston. I’d like to use this article to talk about my process when tackling these sorts of projects.

Tools Used:

  1. Rhino 3D v5
  2. Modo 801
  3. Photoshop CS5


Project Organization


It all starts with creating a folder structure. The image above is the standard set up I use for all my projects. The root file is the name of the client or project. Keeping all materials related to a project in a centralized folder is great for keeping everything organized and archiving stuff later. Under “Reference” I put any images that the clients send me – like these:

The first image shows an inspirational image of what they wanted the cages in the final product to look like. The second image shows what the Reception Area looked like, and the third shows what the Play Area was supposed to look like.

Any existing information or items that the client collects is invaluable. For instance, floor plans like this were vitally important to creating an accurate rendering, and also went in the “Reference” folder:

daycare and reception


The next step after gathering all these references was to create the model. Since we only had rough heights for all the objects in the scene, including the roof and windows, I had to guestimate. To do this, I based my analysis on the “known” size of objects. For example, when I loaded the above blueprints into my 3D program, I had no measurements to go off of. However, I knew that most chairs (and therefore, toilet seats), were about 1.5 feet long from front to back. So when I dropped the image into the background of my scene, I created a line that was 1.5′ long, and scaled the image to match.


Similarly, I knew that the average height of a door frame was 6’8″ – so if I placed the an image of the actual space as a backdrop in the render, I could align the perspective of the render with the perspective of the photo. From there, I could ascertain roughly how high everything was supposed to be by comparing the original photo to the overlaid 3D model. The chairs in the image were also very helpful – since I knew they were roughly about 3-4′ tall, I could mentally stack them on top of each other and use them as a rough “ruler” for telling how high the ceiling was.

All of the initial modeling was done in Rhino. I preferred using this NURBS based modeler for the initial layout because I find it a lot easier to trace the shapes on the blueprints with a high level of accuracy. When the task was completed, I got a nice walls-only layout of the space:



This model was exported as a polygon object and brought into Modo for further refinement, where I added doors, lighting, textures, and other details – and again, double checked the height of the ceiling. I repeated this process for the other two rooms in the project – the Reception Area and Grooming Area. Below are some work in progress shots that I sent the client during the process:


One area that presented some interesting challenges was the Retail Area in the front of the shop. Two things that this room required that the others did not were:

1. A realistic view of the surrounding world immediately beyond the very large windows. This was important because this was a real location downtown – I had the specific address. So how could I make it look like it was in the surrounding area?

2. Multi-colored objects covering the shelves. I didn’t want to spend time manually coloring and texturing upwards of 80+ objects by hand – so I had to figure out another solution.

For the first challenge, I found an awesome tool called Pano Fetch. This Chrome plugin allows you to find any place on Google Street view and export a 360° panorama for use in rendering as a spherical map. In rendering, these maps basically provide the “background” and a lot of the lighting information for many scenes. By using Pano Fetch, I was able to mimic the realistic lighting conditions of the specific address for this building.

Sample location.

Sample location.

For the second challenge, I used a new (to me) shader process in Modo called a “Variation Texture“. This render time texture map will assign a color that you choose to any random poly object in the scene. As long as the objects are not connected, they will be assigned a new color. This allowed me to quickly randomize the colors on the shelves, giving them the appearance of having multiple types and brands of packages without having to do it all by hand.


Finally, the client asked for people in the scenes, tending to the dogs in the Grooming Area and talking to each other in the Reception Area. Now, as you’ll see in the final image, adding people and pets are typically done by adding cut-out images of people to the image in the Post-Processing stage. However, it was impossible to find cut-out images of people in the right attire and from the right camera position. I turned to Renderpeople, an outfit that sells 3D scanned human models for this exact purpose. The end result was more realistic than I could ever get with cutouts. Of course, it was also more expensive, so for areas where I could get away with lower-resolution human models, I made them myself using MakeHuman.

A Renderpeople 3D-scanned person.

A Renderpeople 3D-scanned person.

Finally, to make sure the images were done on time (I had an initial deadline of about 3 days), I used a render farm to offload the images from my PC. What would have taken 30 minutes to a couple hours was done in about 10 minutes in a distributed cloud of rendering machines from Rebus Render Farm. If you do a lot of your own renderings I definitely suggest checking them out, they’re a huge time saver.


Once the images were completed, it was on to Photoshop, where I color-graded the images and added in the cut-outs for the dogs and dog toys. Afterwards, the finals (which you can see below) were sent to the client.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>