# Blender 3D: Noob to Pro/Building a House

|previous=Model a Low Poly Head|Model a Low Poly Head
}}
```
In this tutorial, you will learn how to make a simple toy-like house
with a fence around it. You will learn how to use *array modifiers* to
replicate the palings of the fence, saving you from duplicating them one
by one.

This tutorial is based on Bart Veldhuizen\'s \"Building a House\" from
Tutorial #01 published by NaN in 1999 which is also available in a PDF
at
<http://download.blender.org/documentation/BlenderTutorialGuide1.tar.gz>
(a tar.gz containing BlenderTutorialGuide1.pdf) or
<http://download.blender.org/documentation/BlenderTutorialGuide1.zip> (a
ZIP file containing the same PDF).

Permission was asked to use it and Ton Roosendaal said \"Be assured that
everything that was produced by NaN now is open and free content for
everyone to reuse, including the tutorial "Building a House".\"

## Setting the Scene

![](Blender267Split3DView.png "Blender267Split3DView.png"){width="300"}

Start a new document (). Split the
view into four views as at right, by pressing
. This gives you a standard set
of views: top, front, side and camera, the first three orthographic and
the last one in perspective. You can switch back to the single 3D view
at any time by pressing  again.

Leave the default cube, it will be the walls of the house.

## Make the Roof

![](Blender267HouseRoofCube.png "Blender267HouseRoofCube.png"){width="300"}

Ensure you are in **object** mode (
switches between object and edit mode)

Now, in the Front view window (lower left)

Press
+ to
duplicate the cube, grab mode is automatically selected, press
 to restrict the move to the up-down
axis and move the cube to rest on top of the original (pressing
 while moving will snap it to the grid
and make it easier to position accurately.) Press
 when it is in place.

You can see how useful this four-paned window is; it shows you exactly
what\'s going on.

Note: It helps to simply grab one of the arrows, press
 and then press 2 on the key pad, this
will move the block 2 units in the z direction. the standard starting
cube is 2 units tall.

![](Blender267HouseRoofCubeEdit.png "Blender267HouseRoofCubeEdit.png"){width="300"}

The top cube is going to become the roof and needs to be given a
triangular cross-section.

Select the top cube (if it is not already selected) by clicking
 on it

Press  to go into **Edit** Mode (check
the box in the middle of the 3D window header)

Press  to deselect all the vertices.

In the top view, select the top four (
the first one and  the rest). You
can check in the other views that only those four are selected.

Note: another way to do this is to have \"limit selection to visible\"
turned off, and then press the  for,
border select, and make a box around the top vertices. (it helps to view
it from one of the sides, by pressing either the 1 or 3 keys)

Another Note: Or, with \'limit selection to visible\" turned on, press
 for circle select and turn the mouse
key to make the circle large enough to enclose all four vertices before
you press .

### Make the Apex of the Roof

![](Blender267HouseRoofApex.png "Blender267HouseRoofApex.png"){width="300"}

Now press  for scaling and
 to limit the scaling to the X-axis
(left to right). You could try to move the mouse back and forth to bring
the top vertices together, but you will have a hard time lining them up
exactly, so it\'s best to just type in 
(zero) followed by  to set scaling to
zero.

Now it looks like there are only 2 vertices where there were 4, but in
fact there are still 4, even though 2 of them are occupying exactly the
same positions as the other 2. With these 4 still selected, bring up the
vertex specials menu with  and select
"Remove Doubles". You should see a message briefly flash up at the top
right saying "Removed 2 vertices". Now there really are only 2 vertices
where there previously were 4.

### Form the Eaves

![](Blender267HouseRoofEaves.png "Blender267HouseRoofEaves.png"){width="300"}

The roof needs to project over the walls of the house to form the eaves.
To do this, we will scale it, but only along the X- and Y-axes, not the
Z, so it doesn't become taller.

Select all the vertices in the roof object by pressing
 once or twice.

Press  to scale, followed by
 to scale uniformly along all
axes *except* Z, and scale to about 1.1. Confirm the operation with
 or 
in the usual way.

## Naming the Roof and House Objects

In a complex project with lots of objects, it can be helpful to keep
them straight by giving them names. This is less of an issue in a simple
tutorial like this one, but for practice, let's give names to your
objects anyway.

Go to the Object context
![](Blender255ObjectContextButton.png "Blender255ObjectContextButton.png")
in the Properties window, and at the top you should see an editable
field containing the name of the currently-selected object. The walls of
the house should be called "Cube", and the roof should be called
"Cube.001" (note the automatic addition of a numeric suffix to keep the
names unique). Try changing these to, say, "House" and "Roof"
respectively.

### Object Name Versus Mesh Name

If you look in the Mesh Data context
![](Blender267MeshDataContextButton.png "Blender267MeshDataContextButton.png"),
you will also see a name like "Cube" or "Cube.001". This is a separate
name for the object-type-specific data (the mesh data, in this case),
quite independent of the object name. Don't worry about this name for
now; you will learn about its significance
later.

## Colouring the House

The roof now needs to be given a different colour to the default grey.
Select the Materials Context
![](Blender255MaterialContextButton.png "Blender255MaterialContextButton.png")
in the Object Properties window. In the list at the top, you should see
a single entry, called "Material" (the name of the initial default
material). Below that is an editable field containing the name, and
immediately to its right should be a small box with the number "2" in
it. This number indicates that the same material is being used in two
places---in this case, we know the other place is the object
representing the walls of the house. Click on this "2", and that will
force a new copy of the material to be made (leaving the house walls
with the original); the number will disappear, and the material name
will change to "Material.001" to be different from the original.

![](Blender267HouseRoofMaterial.png "Blender267HouseRoofMaterial.png")

Change this material name to "RoofRed", to make it clearer what it is
for. Next, find the panel "Diffuse" further down, showing a swatch of
the diffuse (non-reflective) colour, which is initially white. Click on
this to bring up a colour picker, and choose some suitable shade of red
for the roof. (Notice that when using shades of red, the white to black
slider on the right actually creates shades of brown from the red.) As
you do this, the 3D view should instantly update to show your new colour
being applied to the roof of the house. If you want to exit the colour
picker and leave the colour unchanged, press
; otherwise, to confirm your choice,
simply move the mouse outside the picker window, and it will close,
leaving your last-chosen colour in effect.

![](Blender267HouseWallsMaterial.png "Blender267HouseWallsMaterial.png")

Follow a similar procedure to choose the colour for the house walls:
click the "House" object with  in one of
the 3D views, go to the Materials Context
![](Blender255MaterialContextButton.png "Blender255MaterialContextButton.png")
in Object Properties, change the material name from "Material" to
something more appropriate (here I'm choosing "HouseSandy" because I'm
going to give the house walls a sandy-yellow colour), click on the
colour swatch in the "Diffuse" panel and choose a suitable colour for
this material. **Noob Note:** I have found it very useful, when I
re-name anything, to type my new name in ALL CAPS. This makes it easier
for me to pick out what I have done.

![](Blender267HouseColoured.png "Blender267HouseColoured.png"){width="300"}

Your house should look like this now.

## Make a Chimney

![](Blender267HousePlusChimney.png "Blender267HousePlusChimney.png"){width="300"}

Go into Object mode, if you\'re not already in it.
( flips between object and edit mode.)

Go to the Front view (lower left window).

Click  to position the 3D cursor on the
right-hand side of the roof, this will select the spot where the chimney
will be created.

Press  to Add → Mesh → Cube from the
popup menu --- a bit large, isn\'t it?

Scale it along the X and Y (,
) to about 0.2.

Now grab it (,
) and move it into position looking at
the front view (lower left window). (Feel free to use the mouse wheel to
zoom in the view to make things easier to see.)

When this is correct, move it into position along the Y axis
(, )
looking at the top view (upper left window).

You can check the side view (lower right window) and the camera view
(upper right window) to see that it looks OK.

### Name and Colour the Chimney

In the Object context
![](Blender255ObjectContextButton.png "Blender255ObjectContextButton.png")
in the Object Properties window, change the name of the chimney object
to \"Chimney\".

Next in the Materials Context
![](Blender255MaterialContextButton.png "Blender255MaterialContextButton.png")
in the Object Properties window, you will notice there are no buttons,
and there is an icon
![](Blender267MaterialsPopupIcon.png "Blender267MaterialsPopupIcon.png"),
and next to that a button with the word \"New\" in it. You can now
choose to have the chimney a different colour to the roof or the house
or reuse one of these colours.

If you want a new colour, the \"New\" button, and it will create a new
material with a default name and settings. You can rename this and give
it an appropriate colour.

If you want to reuse the same colour, you can click on the icon
![](Blender267MaterialsPopupIcon.png "Blender267MaterialsPopupIcon.png")
and select from the available materials, namely \"RoofRed\" and
\"HouseSandy\". 

## Adding a Window

### Make the Window Frame

![](Blender267HousePlusWindow.png "Blender267HousePlusWindow.png"){width="300"}

Be in Object mode.

Using the front and top views, click  to
place the 3D cursor where you want the window to go: use the top view to
place it against the front wall, and the front view to place it a little
to the left and up from the centre of the wall. (Of course, it's easy
enough to reposition the window after you've created it, so exact
initial placement is not critical.)

In the front view (lower left) add a plane:
 Mesh → Plane). This will
initially be laying flat, facing upwards instead of forwards; to fix
this, just rotate it 90° about the X-axis:
 
 
.

Scale  it down to 0.4, and press


To give it a rectangular shape, scale the plane by about 0.8 along the
X-axis 
.

Move it into position (), using the top
and front view, on the left hand side of the house a little higher than
midway.

Be in the Side View window (lower right).

Move the plane along the Y-axis (,
) until it is just in front of the
house. You may want to zoom in () to see
better.

Now, still in Side View,

Switch to **Edit** mode ()

Extrude the plane towards the house (,
-0.07) until it is embedded in the wall.

### Make the Window Sill

!Box-select in
progress
To make this box into a window frame will require a larger view: move
the mouse into the Side View window and zoom in with the mouse wheel.

Deselect all () and select the outer
(leftmost in the right view) vertices using box select
().

![](Blender267HouseExtrudeWindowFrame.png "Blender267HouseExtrudeWindowFrame.png")
Press  and immediately (without moving
the mouse) press . This will extrude,
but leave the newly-created vertices on top of the previous ones.

Scale the newly created vertices by 0.9
( 

).

![](Blender267HouseExtrudeWindowFrame2.png "Blender267HouseExtrudeWindowFrame2.png")
Extrude again inwards to most of the depth of the box about -.03 to -.05
along the Y axis, depending on how you have your window into the
wall(,
, -.03,
).

This screenshot shows a side view in wireframe mode (use
 to switch wireframe mode on and off).

### Name and Colour the Window Frame Object

Change the name of the window object, as you previously did for the rest
of the house pieces. It will be initially called "Plane" (because that
is the kind of mesh object you started with); change it to
"WindowFrame". Also give it a new material, and make it white. Change
the material name to "WindowFrame".

### Make the Window Glass

The glass of the window has to have a different material from the frame.
There are two ways to achieve this: make them separate objects, or make
them the same object, with different materials assigned to different
faces. We will do the latter.

![](Blender267HouseGlassMaterial.png "Blender267HouseGlassMaterial.png")
Deselect all ()

Be in **Edit** mode .

Switch into **Face** select mode (
-\> faces) select mode (you\'ve been in **Vertex** select mode up to
now)

on the face in the center of the window frame, to select it.

In the Materials Context, click the \"+\" button next to the list of
materials, and where that was previously showing just the "WindowFrame"
material, you should see a new blank item appear. The rest of the window
will go blank, but the "New" button will appear; click this to create a
new material. Give it a colour reminiscent of glass; I chose to colour
it light blue ("87ceeb" SkyBlue).

Now to connect the new material to just that one face, press the Assign
button just under the material list.

![](Blender267HouseWindowGlassColour.png "Blender267HouseWindowGlassColour.png")

Note: If you do decide to make the windows with real glass material, as
explained in previous lessons, make sure you use the materials on both
faces in the front and back of the window. Also use loop cuts or knife
to cut out a hole in the wall in place of the window. And add a point
light inside the house.

## Adding a Door

![](Blender268HousePlusDoor.png "Blender268HousePlusDoor.png"){width="300"}
Add the door using the same method:

Be in Object mode

Deselect all,

Create a plane, rotating it to face forward as necessary
( 
 
) to align it with the front wall of
the house.

Scale the plane down by .7 and then again by .5 along the X axis.

Move it into position using Front view and then move it against the wall
of the house in Side view.

Change the Object name to "Door". Create a new material for it; change
the material's name to "Door" and choose an appropriate colour for it.

## Building the Fence

The fence will consist of long sequences of identical palings. Creating
them one by one would be a long, tedious process---which is something
the computer, not a human, should do, right? In fact, even creating just
*one* paling and making duplicate copies would be a long, tedious
process. Which is where the magic of modifiers comes in.

Blender's *array modifier* lets you make any number of copies of a
single object, all neatly arranged in a row or in various other ways.
Being a modifier, the copying only happens at render time, so there is
still only a single object to edit while modelling: change that, and the
change is automatically propagated to all the copies.

### Make a Paling

200px\|right
Be in object mode, with nothing else selected.

Add a plane, orient it vertically (
 90 ),
scaled to 0.4 and then 0.1 along the X axis in Front view.

200px\|right
Switch to edit mode. Ensure you are in **vertex** select mode
(+ -\>
\"vertex\"), in case you were still in face-select mode from making the
window (above).

To give it some thickness, go into Side view and extrude it to 0.05.

200px\|right
The pointed top is made by going back into Front view,

Selecting the top vertices and extruding them by 0.07 (along the Z axis
is selected automatically),

200px\|right
Scaling them to 0 along the X axis and then removing the doubled
vertices (, \"Remove Doubles\": it
should say \"Removed 2 vertices\").

In Top view move the paling to the intersection of two grid lines at a
suitable distance from the house.

In Front view again, check that the bottom of the paling is level with
the bottom of the house.

Change the name of the object and the mesh to \"Paling\", create a new
material for it called \"Paling\" and make the colour white.

### Duplicate the Paling

![](Blender267HouseAddingArrayModifier.png "Blender267HouseAddingArrayModifier.png"){width="300"}

Be in Front view, as the flat face of the paling is along the X axis and
it is easier to create the front fence first.

Change to Object mode. Select the paling. Find the Modifiers Context
![](Blender255ObjectModifiersContextButton.png "Blender255ObjectModifiersContextButton.png")
in the Object Properties window. Click the "Add Modifier" button, and in
the menu that pops up, select "Array". You should see a second copy of
the paling appear next to the first.

![](Blender267HouseArrayModifier.png "Blender267HouseArrayModifier.png")

Look at the checkboxes: "Relative Offset" should be checked, "Constant
Offset" and "Object Offset" should *not* be checked. Under "Relative
Offset", there are values for X, Y and Z; these are the distances
between copies, relative to the dimensions of the object. Change the X
value to something like -2 (the negative value causes the duplicated
paling to appear on the other side, away from the gap we want to leave
in front of the door). Now increase the number under the popup that says
"Fixed Count", and watch the line of duplicates lengthen until it
reaches the point that you want to be the corner of the fence line---a
count of about 12 did it for me.

![](Blender267HouseFencePalings2.png "Blender267HouseFencePalings2.png"){width="300"}
Now type  to make a duplicate of
the row of palings, followed by  to
constrain its movement to the X-axis (parallel to the row of palings).
Move the duplicate row to the end of the existing row so it looks like a
continuation of it. Now type 
 -90 
to rotate it so it lies parallel to the side of the house. Increase the
array count for this row to something like 24 so it extends all the way
past the side of the house to a suitable corner point.

![](Blender267HouseFencePalings3.png "Blender267HouseFencePalings3.png"){width="300"}
Again, type  to duplicate this
second row, this time followed by  to
constrain its movement parallel to the side of the house. Move the
duplicate so its looks like a continuation of the same row. Rotate it
parallel to the back of the house by typing
  -90
. Adjust its array count as necessary
to get the right length.

![](Blender267HouseFencePalings4.png "Blender267HouseFencePalings4.png"){width="300"}
Once more, type  to duplicate this
third row, followed by  to constrain
its movement parallel to the back of the house. Move the duplicate to
the end of the row, and rotate it to be parallel to the side of the
house with 
 -90
. Give it the same count you did to
the array on the other side, so its length will be the same.

![](Blender267HouseFencePalings5.png "Blender267HouseFencePalings5.png"){width="300"}
One last time:  to duplicate,
 to ensure it only moves parallel to
the side of the house, move to the end of the row, rotate into position
with  
-90 . You'll probably find it's so
long it runs into the original row of palings you started with on the
other side of the front of the house; reduce its array count to
something like 8 and you should end up with a nice gap in front of the
door.

**Noob Note:** I encountered a problem when rendering the fence. It
became grainy, and when I say grainy, there are random clusters of black
all over every rendered post. Some had few of this \'grain\' while
others were almost black. I have environment lighting at 1 and it\'s
still goofed up. Would this be due to hand-sizing them instead of
putting in all of the above values?

**Noob Answer:** I don\'t think hand sizing would make any difference.
The first thing I would do is go back into edit mode on the original
paling and select all vertices. Then I would hit \'W\' and click remove
doubles. After that, recalculate the normals by holding \'Ctrl\' and
hitting \'N\'. Those operations typically fix common rendering issues
for me, hopefully it will work for you too.

**`Alternate Noob Solution:`**` I encountered this problem and it turns out it is caused by having more than one copy of the fence in the exact same place. Try moving the affected fence pieces, to find the duplicate then delete it. Remove doubles did not work for my instance of the problem.`

### Make the Horizontal Bars (Left Side)

![](Blender267HouseFenceHoriz1.png "Blender267HouseFenceHoriz1.png"){width="300"}
The fence needs horizontal bars to hold the palings in place: be in
Front view

below the middle of the left-hand fence.

Create a plane, rotating it to the vertical as necessary
(  90
) and scale it to the length of the
fence.

Scale it again to 0.05 along the Z axis and move it into position. ( if
you keep  pressed while you move it, it
will snap to the grid.)

Go into Edit mode ()

In Side view move it so it is against the back of the fence and extrude
it by -0.04 along the Y axis.

Go into Object mode (). Give the
horizontal bar the same material you previously created for the palings.

Duplicate it () and move it
(keeping  pressed) along the Z axis
() to make the bottom bar.

### Make the Horizontal Bars (Right Side)

![](Blender267HouseFenceHoriz2.png "Blender267HouseFenceHoriz2.png"){width="300"}
To make the bars on the right-hand part of the fence: In Front view,
select *both* the horizontal bars you just created:
 on one, then
 on the other (you may need to
zoom in to be able to select them without accidentally including the
rest of the fence). Duplicate them with
. Move your duplicates along the
X-axis  until they are horizontally
centred around middle of the right-hand fence; now scale them
horizontally 
 until they are the right size.

You could have done the bars one by one, but it's quicker to do them
both at once, don't you think?

### Put the Horizontal Bars Around The House

Select the two horizontal bars you created above for the front fence
(make sure you don't select anything else, like the palings). Press
+ to
make a duplicate, then 
 to rotate the duplicate about the Z-axis,
type 90 for the angle and press  to
confirm the rotation. In the top view, move the duplicate
() you just made so it's against the side
fence. Keep scaling it along the Y-axis (
) and/or moving it along the Y-axis
( ) until
it's the right length and position.

Having done the side of the house, press
+ to
make another duplicate of the horizontal bars, and
  90
 to rotate it into the right alignment
for the back fence. In the top view, move
() it against the palings. Now keep
scaling and moving it along the X-axis until it has the right length and
position.

Having done the back of the house, do the other side: another duplicate
of the bars, rotate 90° around the Z-axis, move against the palings,
move and scale until they're the proper length in the right position.

Again, another duplicate, rotate and move/scale into position against
the palings on the other side of the front of the house.

![](fence-complete.png "fence-complete.png"){width="400"}

Your house should now look like this.

## The Ground Plane and a Path

![](house-complete.png "house-complete.png"){width="400"}

### Make the Ground

In Top view put the 3D cursor somewhere near the middle of the plot,
(click )

Create a plane

Be in camera view (bottom right-hand window)

Scale it to extend just past the boundaries of what the camera sees
(10.0 seems a good number).

Go back into Object mode and change its (object, mesh) name to
\"Ground\",

create a new material for it, rename it \"Grass\" and select a suitable
green from the colour selector (\"00cd00\" green3).

Check in Front view that it is level with the bottom of the house and
fence and move it (along the Z axis) if necessary.

### Make the Path

![](Blender267HousePath1.png "Blender267HousePath1.png"){width="300"}
For the path: Go into Top view, create a plane.

Scale it to fit the gap in the front fence with some space on either
side and position it just outside the fence.

Check, in Front view, that it lines up with the door and is level with
the bottom of the house.

Scale it along the X axis to the same width as the door.

![](Blender267HousePath2.png "Blender267HousePath2.png"){width="300"} Be
in Top view, Select the two vertices closest to the fence, and extrude
 away from the house
 to make a suitable width for the footpath
outside the fence.

![](Blender267HousePath4.png "Blender267HousePath4.png"){width="300"} Of
those four vertices just outside the fence, select the left two and
extrude a suitable distance to the left, and then the right two and
extrude a suitable distance to the right, to make the path passing the
house.

### Give the Path Some Thickness

The path is still just a flat plane. Let's give it some thickness, so it
rises slightly above the ground.

Go to Object mode. Make sure the path is still selected. Go to the
Modifiers Context
![](Blender255ObjectModifiersContextButton.png "Blender255ObjectModifiersContextButton.png"),
click Add Modifiers, and look for Solidify. The default thickness (the
top-left editable field) is 0.01; change this to -0.01 so the path
protrudes above the ground rather than into it.

## Improve the Lighting

![](Blender267HouseLighting.png "Blender267HouseLighting.png"){width="300"}
If you were to try to render now, you will probably find that most of
your beautiful house is lost in gloomy shadow. To fix this, let's add a
bit more light to the scene.

In the top view, find the existing default Lamp object. Duplicate it a
couple of times, and position your copies around the house to give it a
more even lighting.

## Check the Camera View

![](Blender267HouseCameraView.png "Blender267HouseCameraView.png"){width="300"}
Before doing the render, check your camera is properly positioned to
capture the beauty of your work. In the camera view (top-right quadrant
of the split view), you should see something like this; note the
*passepartout* (darkened area) outside the rectangle denoting the
visible area of the scene that will be rendered. If you
 on the rectangle, you can reposition
the camera from side to side or up and down with
, or do 
  to move it
closer to or further away from the scene.

**Pro tip :** To adjust camera view, select camera view by
, then  +
 to enter \"Fly\" mode. Then, use FPS
control to move the camera (WASD keys to move around, mouse to change
direction and  or
 to acsend or decsend.

## Final Render

Now hit , and hopefully you should see
something like this!

500px

