How to model a car

No matter you are amateur or pro, this tutorial aims to teach the workflow and every move you need to know to achieve a good car. It’s based on Blender, to allow everyone do it without requiring access to high-priced or warez software. But it can apply to virtually any 3D package.

I based this work on my latest project, a coupe-convertible Citroën C5. If you’re allergic to this brand, or to cars in general, don’t worry : this material applies to any manufactured project : no matter it’s big or small, no matter it’s cheap or high-end.

The tutorial is a on-going series of posts. It starts from the very beginning of modeling and covers every aspect : hard surface modeling with a focus on high-end quality and accuracy, best meshing practices to create a nice polyflow, tips to soluce most common issues. More than just the body, it will deals with all other parts creation : tires, rims, wheel details, windows, grilles, chrome and rubber trim, with also a fully detailed interior.

This project is as usual an amateur project. The idea came from the 2009 SMCars contest Real World Racer, about racing cars. Rule was simple : “do your dream racing machine”. I choose to convert my daily ride, a Citroën C5 Tourer, to a DTM coupé. During this project I wanted to do a “civil” version as well to get in the renders background but lack of time prevented me to do it. This year, I entered another SMC contest, Topless, about … topless cars. I did for this the Hennessey Venom GT, which I posted here, but I’ve got another idea : a convertible, civil version of my C5. I just wanted to make things a bit more difficult, by doing a CC version (coupé – convertible) so here’s my CC5. Yes I know, the name s**ks :)


First step is creating a concept drawing of my idea. I always do it 3D, without paper. So I create what is usually called a “spline cage”, which means I have to draw the main curves of the car using Blender. I don’t use splines for that. Instead a regular mesh, without any face, just do the job. I based the drawing on C5 Tourer (station wagon) blueprints, I won’t cover blueprints setup here because I already did in a tutorial here : Blueprints setup with Blender

The major steps are :

  1. Found blueprints on the internet. is definitely more than a good entry point, with thousands of prints available here.
  2. In case you don’t find blueprints, try to gather some side, front and rear views. Top photographies are quite hard to find, but they’re not mandatory.
  3. Collect as many reference pictures as you can find. Try to avoid CG pictures, unless they’re official, because you don’t want to reproduce the mistakes from another CG artists. There are many good reference pictures sites listed at, try to grab only high resolution photos, and be careful about picking the exact version : the right model year, the right version, etc.
  4. Setup blueprints (or pictures) like I explained in my tutorial.
  5. Draw a cage by creating a mesh without any face. Basically, you create a plane, delete 3 vertices out of 4, place the last one at a particular spot, and extruded it several times to create an edge.

Here’s the resulting drawing :


The features I draw are :

  • The separation lines between the various panels
  • The major shapes of the car : wheel arches, folds, bumps, openings…
  • Some extra curves, interesting to better define the shapes : e.g. to show the roundness of a fender.

The point as this stage is : keeping things as clean and as accurate as possible. So I rev a lot around my cage, in perspective mode, to compare it with reference pictures. Having the actual car in front of my house help a lot, so you may consider to model your own car (your father’s one, etc…) as one of your first projects. If it wasn’t my car, browsing internet is an acceptable solution. Choose high res pictures, but make sure you care about choosing the very same version you’re modeling : year-model, no tuning…

An introduction to modeling :  front bumper

My spline cage needs more refining but I chose instead to begin actual modeling. This part won’t go into detailed details, the goal is to give you an overview of the workflow. The next chapter will be much more detailed.


The trick is to model the major surface first, then adding details. For example, for two pieces between bonnet and front bumper, I do several steps:

008 007

From top to bottom:

1 / I start from my cage to make a simple but complete surface. The only detail at this stage is the almost vertical edge that I have already sharpened. Except that nothing. At this stage you must be careful to have very smooth surfaces, because after it’s too late to catch up. The mesh topology is important as well, try to keep it simple and well balanced.

2 / I add rows of vertices along the edges to sharpen the edges of the body panel when it will be given thickness later. You must have a regular mesh topology based on square in the previous step, so this step is simple. I take care about constant spacing (0.005 BU or 5mm for my scale) between the edges and the additional rows in order to have a regular curvature of the edges later.

3 / I create the hole in the upper air intake, relying on the mesh topology in place. Care must be taken to have a row of faces along the edge of the hole, just to have a smooth edge.

4 / I cut the bottom (it shows little on the picture, sorry) benefiting from having reserved a line of vertices along the separation in my first step. That way, I simply added two rows of vertices on either side of that line, at 1.5mm each. By eliminating the initial line, I find myself with a regular spacing of 3mm, and sharpened almost-vertical edge is continuous from one panel to another.

5 / I add the thickness of sheet metal panels, extruding edges. I extrude in 2 times, first for the 3mm radius of curvature of the edge of the panel sheet. The second extrusion is intended to have spaces between body panels rendered dark (7mm to a round of final 1cm)

6 / I finish the details of body on top of this piece (it will be behind the lower chrome trim of the brand logo) and add the thickness of the bottom.

Here’s a perspective shot to better see details on the last steps :


Feel free to critic if I was too fast or if I forgot something. Thanks for reading !

Detailed modeling : the front fender

The next step is modeling the front fender. For this step, I will try to go as detailed as I can in my mesh construction workflow.First, I gather the border edges this fender will have in common with neighboors : hood, front bumper. In edit mode of each piece, I duplicate the whole edge and separate it. I also duplicate the relevant edges from my cage. I end with several parts, as shown below. The pink parts are from hood and bumper, note there are already smoothed (because there is SubSurf at level 3 active) while the black part is from the cage and isn’t smoothed.


I now have to merge all the edges together. I start first by merging the corner of the two edges from the bumper. Please note that to do so, the horizontal edge have been raised by 3mm to align with the other edge from the blueprint, while this other edge didn’t move yet. So there is already a gap between front bumper and fender below the horizontal edge, while there is not for the other edge. We’ll take care of it later, when the surface will be completed.


On the next step, I merged all the edges, including merging the corner vertices. I removed the extra vertices at 5mm from each corner; they were responsible for the corners being sharps on the previous picture and now they’re gone, the corner are smoothed. It will be easier to build the surfaces with fewer vertices, and it won’t be difficult to put them back later, by adding extra rows as I described for the bumper modeling.


We now have a single mesh, but with edges only : it’s time to prepare some surfaces. What I did in the below picture is extruding the wheel arch, to create the flat side around it. As stated for the bumper modeling, I don’t care yet about sharpening any edge. Also, I extruded some longitudinal edges and created the transversal, relevant edges (selected in the below pic, so they appear yellow) I always check all edges are smooth at every time.


Now we can add create the faces. Remember to always create rows of faces along all edges and holes. For example, the below picture shows I didn’t do it yet on the right of the selected vertices. This is why there is a pinch here. That means we have to create a row of faces around this hole, which will be the air outtake for brake cooling.


It’s time to deal with the air outtake. First, I roughly create the lower faces, after deleting one useless edge on the wheel arch. It’s not really detailed at this time, because of the lack of vertices in the newly created faces. Fewer vertices is a good thing, as it helps controlling the mesh flow, but too few vertices won’t allow to control anything.


Now it’s time to add the row of faces along the air outtake, before sharpening the corners. To do that, I add extra rows of vertices around it, and I weld vertices when needed to make sure these rows have the same count in the border. In this very case, I deleted the horizontal edge going from the upper corner of the outtake, and added two rows of vertices : one above, one below the outtake. I only had to merge the two front vertices to one, resulting in a clean flow :


Now it’s to sharpen the corners. To do so, I add more vertices near the corner ones. The sharpness of the corner is determined by the distance of these new vertices, closer vertices mean more sharpen corner. Now we have to get rid of the triangles introduced by this move, because triangles are always badly handled by the surface subdivision.


For example, removing the triangle shown above in pink is easy : I just have to add more vertices below the outtake, so there is a one-one relation between vertices, so only squares and no triangle. I removed the vertical row of vertices (in fact I merged it with the neighboors) so I reverted to the previous mesh. And I added two rows of vertices using Ctrl+R and mousewheel, to have them easily well distributed. Now we only have to close the faces with the selected vertices shown in the following picture :


To sharpen the other corner, I added 2 extra rows of vertices, as shown in the picture below. When you have to do so, remember to keep a well-balanced mesh, by moving other vertices if needed. But also remember that when you move vertices, you have to check once again the smoothness of your mesh flow. Yes it takes time but it’s required if you want to achieve a clean job.


One of the two extra rows I added is shown by the cursor in the next picture. You have to notice it results in adding a vertice on the edge shared with the hood. So curvatures of the 2 edges (the one on the fender and the one on the hood) won’t be the same, unless you add the corresponding vertice in the hood edge. To do so, the easiest way is to add a full row of vertices in the hood, as shown in the next picture.


I’ve speed up a little bit on mesh completion, as it’s not really different from the previous part. This will allow us to spend more time on a few different issues.


The above picture presents the completed mesh, but it’s far from being enough to call the fender finished. First step is sharpening all the edges. The above picture shows in yellow the already hard edges. Please notice the way the upper edge is on its front end : from middle to front, it gets wider to smooth the hard edge. The same goes for the below edge, on its rear end : it gets wider to end in a smooth way.

On the top, please note the polyflow : it’s easy to choose to achieve either hard or smooth corner. Here’s a detail for reference use :


The next picture shows all the still-to-be-sharpened edges.


Some are quite easy, they are shown selected in yellow below. Those edge just need to be given an extra row of vertices along them. Once again, I used loopcut (Ctrl+R) in non-proportional mode to be able to place the new row 5mm away from the original one. By the way, I tried to use the 2.50 Series of Blender and as of writing the latest release (2.54beta) doesn’t allow the non-proportional mode yet. So it’s not an urban myth : if you’re like me a heavy non-proportional loopcut user, you’d better stick to 2.49b for modeling.


The next picture shows the more tricky edges. For these ones, please remember that we need to create a gap between the fender and neighbor parts (hood, bumper) So for this reason, I created two extra rows of vertices : first one is create 8mm from the actual border, and the second one 3mm from the actual border. So we’ll just have to delete the original border, to have a new border which is 3mm from the neighbor parts and which is seconded by a 5mm away row of vertices.


However, this move leads to a mistake, behind the not-yet-modeled headlight : we pushed backward the border by 3mm, so we now have a shift between front edges of hood and fender. The next picture shows the vertices which need to be moved forward by 3mm.


The below picture shows how’s the shift is now gone. It also shows how unclean is the gap between hood and fender. Why is this ? Because when modeling the fender, I had to add extra rows of vertices to get a clean and well-balanced mesh. Just like we encountered earlier, this led to adding vertices on the border of the fender, which border is shared with the hood. Now that the two borders are different, they don’t align anymore once subsurf effects visible.


And we have another issue, about the hood-fender duo : there is a hard edge of the hood, another one on the fender and the area between those hard edges should be smooth and clean. The following picture shows it’s not.


It’s no big issue actually. It’s a side effect of modeling one surface at a time, instead of modeling the whole car in a single piece. The way to solve it is pretty intuitive : we’ll merge both meshes to create a single surface, then smooth it, then subdivide it back to 2 parts.

One step at a time : because of issue #1, the two part can’t be merged. So just like we did in a previous step, we’ll gonna add more rows on the hood. So we’ll have the same amount of vertices on both borders.


Once done, I just delete the border from the hood (and its 5mm away sister row of vertices) This gives us a wide gap which will be filled with faces : select both edges, and press FKEY : the bottom option in the popup menu will automatically create the faces between the two rows of vertices.


Once done, I do loopcut once again to create a loopcut in the middle of the gap between hood and fenders : first loopcut 3mm away from what was previously the fender border, and a loopcut in the middle.


Only keep that middle row, and remove the neighbors rows : one from the hood, two from the fender. Now the mesh flow is clean, but only to better show how the surfaces aren’t :)


Faster chapter : the rest of the main body

New update. I’ll go faster on body modeling, as it’s always the same moves.First, remember we had to clean the area near hood and fender. The faces we need to work on are the following :


When having that kind of issue, I find it more efficient to remove the middle vertices, then to make sure the neighbors curves are clean, then to recreate the deleted vertices with a loopcut. It will give us a smoothed row of vertices we’ll move as a single thing to adjust the curvature of the surface.


Once vertices recreated and surface smoothed, we get the following result :


It’s now time to split the hood and the fender back to two separate pieces. I won’t detail it with pictures : it’s always the same move, do loopcut at a given distance to specify the width of the gap, then separate by removing the gap faces, then add extra rows on each parts to prepare a nice edge when we will add thickness.


Now with thickness added, the fender can be called finished. At least for now : it’s definitely possible to notice bump later, so we could possibly have to get back to work on the fender – or any other part, actually 😉


Now it’s time to deal with side skirts. When starting a new part of the body, remember it’s always the same workflow :

– Duplicate borders from already modeled neighbor parts.
– Duplicate every other curve from the cage (including the borders from non-yet-modeled parts)
– Gather all the borders & curves in a single object, and merge the vertices if needed.
– Start building your mesh.

About the side skirt, I’ve been rushing a bit on the fender : the bottom rear side need to be extruded to form the side skirt. So I deleted the thickness vertices from fender on that area. The following pictures shows the vertices from the fender who will be extruded to the side skirt. Please notice than the vertices on the right are from the cage side skirt.


Once connected, the whole part looks like the following picture. In terms of industrial feasibility, it’s definitely not realistic : the front and rear fender and the side skirt can’t be produced as a single part, it would cost to much to produce or to repare. But as I’m only making a concept car which will never leave the Blender bytes, who cares ?


Time to actually create the mesh. As usual I do the easy parts first, where the polyflow is intuitively build from the existing mesh and the cage elements. This is the higher part of the following picture. Lower part show the fully modeled surface.


Now it’s the usual trick : sharpen border and edges, and add thickness.


We’re done with the fender. Let’s take care of the doors. Workflow is the same : the higher part of the following picture shows in yellow the vertices from the cage, while unselected vertices are from existing neighbor parts. The lower part of the picture is more interesting : the selected vertices are the first I create, to ensure the straightness of the doors ‘s shapes. Yes, the shapes are more simple on the doors than every other part we already modeled. Building the mesh that way is the best way to make sure the surfaces will be very clean.


Same pictures shows the usual rhythm : sharpen edges, borders. The only difference is to take care of the sharpness of the fold, as it should not be a razor blade :)


Another thing worth noticing is how the upper corners of the doors are sharp while the lower corners are rounded. The following picture shows the detail of the mesh structure to achieve those 2 different type of corners.


I won’t detail separating doors and adding thickness, it’s exactly like I explained it before. So we’ll move on directly to the finished doors, presented with the rest of the model :


Now you should have reach a significant level of knowledge to know by yourself how to realize the roof, roof arches and winshield frame (really simple parts) and the rear end (trunk is easy, rear bumper a bit more difficult) Here’s my very current stage of modeling for this project : the main body is almost done.


5 thoughts on “How to model a car

  1. Could you please add to this tutorial a section with detailed information on creating this spline cage? A video with step by step instructions would be great help too.
    BTW, thank you very much for creating this tutorial.

  2. Hi, I’m glad you find this tutorial useful. I’ll try to write a cage tutorial (I don’t do videos) but I’m quite off of the 3D scene since months (years ?) so try to pay attention to my site. I’ll do my best.

  3. I got your webpage bookmarked already and looking forward to this spline cage tutorial. Once again many thanks for your work.

Leave a Reply

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