Hard Surface Modeling for Films | CG Master Academy

Hard Surface Modeling for Films

A 10-week course focused on hard surface modeling for film VFX production

Course overview Course overview

Course Overview

Prepare hard surface models for VFX

This course covers the creation of VFX production assets of an inorganic nature. Lectures will cover creation of form, efficient manipulation of topology, the art of kitbashing, scene organization, texture preparation, light rigging techniques that will aid in the modeling process, and final rendering. Students will learn the process of efficiently creating high-quality hard surface models from concept to completion, and complete exercises that will give them the tools to overcome typical challenges faced by production artists.


Course Format:   Standard
Lecture Type:   Pre-recorded
Feedback:   Individual recordings
Duration:   10 weeks
Assignment:   Deadlines each week
Q&A:   Once a week
Materials:   Maya (or equivalent) and ZBrush (or equivalent)
Skills level:   Intermediate
Prerequisites:   Knowledge of Maya and ZBrush is required

Hard Surface Modeling for Films WHAT YOU’LL LEARN

What you'll learn

The more you know, the better.

expand all
collapse all
Instructor introduction and background | Discussion of hard surface modeling principles | Introduction to the Maya interface as we will be using it
Setting up image planes in Maya | Using NURBS curves to create guidelines | Box modeling process | Naming conventions and hierarchy organization
Importing blocking models into ZBrush | Using dynamesh to combine primitive shapes together into more complex surfaces | Hard surface brushes and demo sculpt on car body | Adding panel lines | Using decimation master | Exporting from ZBrush | Importing sculpts into Maya | Quad-draw workflow in Maya
Maya modeling techniques: Maya booleans; box modeling methods using extrude and multi-cut tools; bevel tool to create supporting edge loops; Maya sculpt tools | Radial modeling exercise: creating a rim and a tire | Creating a thruster using radial modeling techniques: anatomy of a thruster, reality vs. sci-fi; using instances to model thruster details; using pivot points to facilitate animation of thrust vectoring
A look to the past: techniques used by practical modelers | Modeling vintage model kit parts for kitbashing | Getting UVs onto geometry | Exporting parts with thumbnails for use in Maya's content browser
Kitbashing using a parts library: a look at practical kitbashing techniques; adding our greebles to Maya's content browser | Kitbashing workflow: plant on details; greeble assemblies
Modeling and rigging the pistons: single axis and ball & socket; hierarchy setup; aim constraint setup | Creating mechanisms: building the basic skeleton and animating motion; experimenting with piston placement; setting up set-driven keys | Integrating these parts into the model
NURBS curves modeling tools | Extruding along curves | Animation snapshot and tank tread exercise | Other pipe modeling techniques | Using wire deformers to create cable looms
Creating and unfolding UVs | A discussion about texel density: what it is and why it is important | UV packing techniques | UDIMS; how to organize your model's UVs for multiple texture maps | Final model setup
Alternative methods: edge creasing, face weighted normals, rounded corner shader | Rendering in Maya using Arnold | Rendering in Keyshot

Igniting your imagination

Andrew is currently working as an environment artist with the Call of Duty team at Treyarch. He's worked with the team for the last 3 years and has had the chance to be a part of shipping the last two Black Ops games. In addition to his work in AAA games, he previously worked with the studio Pixomondo on shows and feature films. His credits include Star Trek Discovery, Westworld, Midway and Venom. Andrew graduated from Purdue University but attributes a lot of his growth to the incredibly talented coworkers and team's he has had the chance to work alongside.

Student interviews


April 17th!

Spring TERM Registration

Feb 8, 2021 - Apr 26, 2021




April 17th!

Pricing & Schedule

Even though our courses are the most affordable for the quality of education.

These Finance Options allow you to focus on your goals instead of the barriers that keep you from reaching them.

Employer Reimbursement

Animation Guild CSATTF

Payment Plan

Companies that hire our students

  • Naughty Dog
  • Luma Pictures
  • Google
  • EA Games
  • DreamWorks Animation
  • Blizzard Entertainment

environment design Benefits


What makes this learning experience unique?

Personal Feedback

Receive personal individual feedback on all submitted assignments from the industries best artist.

1+ Year Access

Enjoy over 365 days of full course access. This includes all lectures, feedback, and Live Q&A recordings.

Certificate of Completion

Earn a Certificate of Completion when you complete and turn in 80% of course assignments.

Flexible Learning

Learn anywhere, anytime, and at your own pace with our online courses.

Speak to an advisor

Need guidance or course recommendations? Let us help!

Have you taken a course with us before?

Show us your skills

Not sure if you have the skills, or are you proving you do? Show us.

Have you taken a course with us before?

Modeling A Spaceship

Interview with Mark Hołubowski

Mark Hołubowski shared his experience of taking Hard Surface Modeling for Films course lead by Jay Machado and talked about the production of his spaceship model.


My name is Mark Hołubowski and I’m a self-taught 3D artist. I was born in USA, California but raised in Poland. I’m currently trying to land my first job in the industry. After completing my bachelor’s degree in sound engineering in 2017, I knew that I have no passion for recording sound and music. Even before I finished studying, I realized that with my love for games, great characters and epic worlds I should try to start a career in computer graphics. As for any projects I have worked on, a good friend of mine and I were working on a low-poly styled mobile/pc game. The project is currently on hold, but all the progress I’ve made and everything I learned while working on it can be found in my portfolio post.

CGMA Course Goals

My goals were pretty straightforward. I am really into sci-fi and the idea of designing cool looking tech is very appealing to me. Therefore, I wanted to get good at hard-surface modeling. I have had some hard-surface experience in ZBrush, but I felt that there was much to improve and that learning to model in Maya would be a great skill to have. While working on the model, however, I quickly learned that it would be more accurate to say that modeling in Maya is a pretty essential or almost mandatory skill to have, at least in my opinion. Mostly because of how intuitive and well designed I found the modeling tools to be in Maya, especially the multi-cut tool.


Hard-Surface Modeling: the Start

With hard-surface models, I usually start with blocking out the general shapes using simple primitives or planes. If I’m working with a concept I’ll first set up image planes and match my scenes camera with the image, just as I did with this model since I was trying to recreate J.C Park’s concept art.

By the way, I highly recommend checking out J.C’s work. He creates some really awesome sci-fi concepts.

The main body of the ship is a fairly complex shape so I decided that using primitives wouldn’t cut it. Instead, I blocked out the spacecraft using NURBS curves.

After that, I used Create Polygon Tool to create geometry in-between the curves, added a few edge loops and ended up with a nice base shape for the body.

As for the rest of the parts, it’s all either cylinders or some basic modeling done on some cubes. Here is what I ended up with.

This is a pretty simple process. And the blockout really doesn’t have to be perfect. It’s all temporary anyway. It’s mostly just so you can get an overall feel of the model and get the proportions right, so there is no point spending too much time at this stage. If you are working with a concept, what I would recommend really nailing down is the first step. Spend some time matching the camera in your project with your image because otherwise, you might find that parts of the model that are perfectly lined up with the artwork look disproportionate in other views. Also, keep in mind that you might have to be able to find some sort of middle ground between your image plane and perspective views, as the perspective in your concept art may be somewhat off. That’s how I felt about J.C’s drawing so my final blockout doesn’t exactly match the guiding NURBS curves.

One last step before moving on is giving your object the proper scale. It’s important to decide how big you want your model before working on details because that determines how large your details should be to get a proper sense of scale. Jay provided us with a simple model of a human to help with scaling our blockouts, however, if you don’t have one of those I’m sure a 1,8 m cube will suffice.


In hard-surface modeling, there are generally two types of details: panel lines and greebles. Let’s start with the former. After importing the blockout into ZBrush, Ithe body and started smoothing. Once I felt the shape was good enough I started sculpting in the details.

This stage is all about creating a roadmap for where to place the details. Getting all the parts to work with each other. In hindsight, I wish I had created a separate layer for details. More importantly, however, I definitely should’ve spent more time on making the shape smoother and not as bumpy. This made me run into many issues when retopologizing the model. But I’ll talk more about that later.

Anyway, now it’s time to take this model to Maya and start working on some nice, smoothable topology. Before doing so, remember to decimate your model using the Decimation Master plug-in. The hull panels and cockpit were created using Maya’s Quad Draw tool and all the other parts were made with good old box modeling.

It’s important to have a good amount of resolution in your meshes when trying to have sharp cuts in such curved surfaces. Otherwise, some really bad deformation after smoothing is unavoidable.


So the ship’s surface is starting to look cool but it’s clearly empty on the inside. This is where greebles come in. Jay shared a pretty sizable library to work with.

Not all parts you see here are supplied by Jay. I had to complement the collection by making some greebles that I felt were missing for my concept or that just would fit the aesthetic better. What I’m meaning to say is don’t be lazy and try to achieve what you can with what you were given. Make what you need! There, that’s a life lesson for everyone.

I honestly went somewhat crazy with the greebles, but I’d say it was worth it. My approach was to make the detail seem like it has a purpose. A good way of achieving that is by combining parts in your library into bigger pieces or by detailing some greebles with other greebles. The possibilities are endless!



It is highly important to give the illusion that the model is not actually empty inside, as well as to populate the scene with greebles in a way that doesn’t look random or ‘cookie-cutterish’. Placing all this little detail in a considered manner, having them be a part of a bigger shape or section of your model, makes it more difficult for the eye to make out the separate greebles you stitched together which is definitely a good thing, but it does require some creativity.

One last thing before finishing things off is to find some good spots for cables, as those give another layer of realism to some hard-surface models. Extruding a cylinder along a curve or just using the wire deformer tool are great ways for some fast and easy cables.

So there you go, the model is done, just like that! To close off this section here is an image of all the greebles as well as the completed ship.



Before this course, I had never actually heard about Mari. For the purposes of Jay’s class there really wasn’t any reason to take the model into this software solution, but I really wanted to take the opportunity to learn something new. Since the non-commercial version of Mari only supports up to 6 UDIMs and the whole spaceship is laid out into 22 UDIMs I decided to only paint the ships hull the way it’s painted in the concept. Red with white lines and decal. Basically, I only used Mari for the diffuse map and all the material work was done in Arnold or Keyshot.

As for the materials, I haven’t done anything fancy. Everything is just different presets of the standard Arnold shader with minor tweaks. The body of the ship is a car paint preset, the cockpit is a chrome material and the rest is just different colored metal. For the thruster glow, I used a ramp which I connected to the emission input for the standard shader.

For the Keyshot version of the render, I used the materials that came with the software with no additional tweaking.


The biggest challenge of the rendering stage for me is the lighting. A lot of it is trial and error. For this project, I used an HDRI map from FlippedNormals Studio HDRIs and an Arnold area light to lighten the scene. However, before settling for this setup, I spent a lot of time tweaking stuff like the number of lights in the scene, placement, size, intensity, and exposure.

Luckily, rendering engines have gone a long way over the years and the fact that you can see the effects of your changes so interactively without having to wait more than a couple seconds after every modification to the lighting or material makes the whole process quite enjoyable. 

For the Keyshot render, I just used another FlippedNormals HDRI map with no additional lighting.

I liked the effects that I was able to achieve in Arnold more but I found that quality renders took much longer, specifically between 15 and 25 minutes. Keyshot would give me a satisfactory render in something around 5 minutes, so that’s where I decided to produce my turntable.

Challenges & Mistakes

While working on the red hull panels I didn’t yet understand well enough how to model curved surfaces with sharp cuts that would smooth nicely. Also, having a messy concept sculpt as a live surface for retopology definitely worked against me. The result was beyond messy. A ton of pinching and wobbly edges. Eventually, I decided to redo all the panels, this time differently, however. I’ve taken the plane I made during the blockout phase from NURBS curves and subdivided it until I felt I had enough resolution to support all the detail.

Now the old messy panels worked as a roadmap on where all the cuts and details should be placed on the new surface. Here are some before and afters.

I recall one more issue I ran into while working on this project. I wouldn’t exactly call it a mistake, but a good lesson nonetheless. After the greeble pass, it was time to UV the whole model. That is where I discovered that many greebles had either bad UVs or none at all. As you can imagine the process of giving the greebles their missing UVs, then finding and transferring the layout to all duplicates in a scene that has 500+ greebles was a time consuming and tedious process that could’ve been easily avoided. Therefore, I would strongly recommend that if your scene has many duplicates of the same mesh, just give the original some UVs beforehand. Even if you have a plug-in for transferring UVs to multiple meshes, it’s still faster to not have to do so, especially in cases like the one I had.

Feedback About CGMA Course

Right off the bat, I must say that Jay’s class was a blast. I very much enjoyed the format of pre-recorded lectures, because all the knowledge is more precise and easy to find than in a live, real-time alternative. Jay himself was an excellent teacher as he was quick to answer any questions posted in the forums and without his feedback, I surely wouldn’t have been able to resolve the issues I had with bad mesh deformation. In the Q&A sessions, he went beyond the program by showing us how he goes about texturing in Mari and Substance Painter what definitely was a pleasant surprise.


Mark Hołubowski, 3D Artist

Interview conducted by Kirill Tokarev


Building a Piranha War Fighter

Interview with Andrew Grant

Hard surface modeler Andrew Grant walks through his approach to building his Piranha War Fighter plane for Jy Machado's Hard Surface Modeling for Films course.


Hello everyone! My name is Andrew Grant and I'm a 3D modeler who focuses on hard surface and prop modeling. I had gotten my Bachelors in Game Development at the Academy of Art University as a purely online student so I could work full time while learning there. That also made the transition to the class at CG Master Academy was an easy one. I learned a lot about game art there and 3D Modeling and the passion that I have for it while at AAU.

While looking for permanent work, I had worked as a freelance 3D artist and also did some graphic design work. I've been a part of several professional projects that are still under NDA, so unfortunateIy I cannot share the majority of the work that I've done since graduation. After about a year of working freelance, I felt that I needed more in my portfolio and brush up on some new techniques along the way. I found CGMA was a great way to do both. And because of my newfound skills and portfolio, I was recently hired as the 3D modeler for J&F Alliance Group, where we focus on AR and VR content for the commercial and government space.



Choosing CGMA

The Hard Surface Modeling for Film class with Jay Machado was the first class I have taken at CGMA. My goal was to take what I had learned at AAU and take it to the next level. I really wanted to learn how to do some really detailed modeling and dive into some of the more detailed functions of Maya. My first and foremost goal was to push myself further than I have been in modeling. I wanted to make something more detailed than ever and I wanted to learn modeling a vehicle at a film detail rather than just a game optimized one. Also I had hoped that I would learn more about using UDIMs. Luckily that was taught! Plus, the fact that I got to learn from Jay, someone who worked on my favorite saga of all time, was just about the most exciting opportunity for me to do.





The Concept

We all had to choose a concept from an artist that met certain criteria, so I chose the Piranha Fighter by Mike Doscher. The mix of a futuristic design twist on a plane of the past really was interesting to me. When I usually start something like this it usually starts as either an orthogonal views laid out in image planes and begin blocking out with primitives. In this class however, we learned to first take a perspective image in the perspective view panel, adjust the camera depth, and try to line up the grid the best we could to match the perspective of the image. Then we use NURB circles and CV curves to create a construction guide and loft them together and convert to polygons. Coming from a background of blocking to this method was really challenging because of attempting to match the perspective of the image.



The biggest trick is once you find that camera depth, lock it in place and use the perspective panel as your guide to be sure you are matching things up. Keeping an eye on this was crucial in this case, as the wings seemed to be fairly wide at first but then I came to realize halfway through that they were actually closer to the fuselage. This was one of those perspective tricks, and just using the ortho windows and rechecking the reference constantly was the only way for me to decide how it really was. 



Here I have the closest match to the perspective I could find, and locked a new perspective camera so that I would have a reference point to see how my block out would match up to the concept.



Here I have the initial blockout finished. I did go a little overboard with week 2 modeling but it helped in the long run!


Geometry and Detailing

There were two methods of working in details: Zbrush and kit bashing. Once I had the overall basic shape I took it in Zbrush to find the panel lines, which was fairly difficult in lining up since (at the time) Zbrush didn’t have a true camera focal length system. Once I'd matched it up the best I could, I began to sculpt in panel lines and small details. After it was finished, I took that and used the quad draw tool to create the individual panels in Maya.


Fully retopologized and engines modeled out before kit bashing details.


As far as the small details, we created a kit bash set as a class and used those pieces to fit together what would make sense for function and detail. This was something really opened my eyes to its value. While I was taught what kit bashing was and what it was for, I'd never really understood how it was used. 


My assigned sets for the class kit bash set.


We were all assigned images of actual model kits and to make the pieces using standard modeling techniques (primitives, extrusion, edge supports, etc), create UVs and combine everyone's kit bash assignment so we all had a large library to pull from. From there, I literally placed and deformed them using the lattice and bend tools to create unique details that helped bring the fighter to life. 

The cockpit was really fun to do, even if I wasn’t provided multiple views of the concept. So with that, I had to do my research to see how the cockpits of that era were. With that in mind, I began modeling out what I believe this fighter would look like. A lot of it was modeled with primitives and curve extrusions for the wiring. Then I used the kit bash kit we made for some extra detail.


The cockpit


Challenges and Solutions

I think the common mistakes that I made were simple ones, like somehow accidentally double-exuding without pulling geometry to somehow developing a hole that was caused by unmarked vertices. They were things that really only show themselves when you do a smoothed preview. Thankfully I do that often, so those things are taken care of when they pop up rather than finding a bunch at the end of modeling. However, the one thing that really took me out for a spin was rigging the air brakes. 



I hadn't done a lot of rigging in the past, in fact most of my work has been modeling and texture, which is then handed to a rigger or animator, so it was still something I needed to brush up on. This was mechanical rigging, which up to this point in the class I have never done. So over and over, I rigged this hydraulic piston and everything seemed to go wrong—the plate would flip around or the piston would twist. After some insight from Jay (don’t forget to use your resources for help!) I was able to finally figure it out. The original issue was caused because after rigging, I has just placed the piston into position with the NURB circle handles I made. I should have nested them one more time into a group and then positioned the group as a whole, and not the individual components inside translation and rotation values. After they were all in a group and I wasn’t depending on the NURB handles for positioning, everything worked perfectly.




The class itself was a fantastic experience, and left a great impression on me as it was the first one I have taken at the school. Hard Surface Modeling for Film is definitely a class I can recommend to any 3D artist, especially if they want to increase their knowledge of hard surface modeling. The live feedback and the live Q&A were invaluable in my growth. On top of that, I got to network with my fellow classmates and follow them on ArtStation to keep up with their work.

Learning new things can be daunting but also very exciting. Beyond what I have mentioned above, I got a brief overview about Maya’s MASH system, my first time using the Arnold Renderer (I mostly use Iray) and even used Keyshot for the first time! I used those renders and my Arnold turntable animation in my portfolio up on Artstation.

I know I have said it before, but: don’t forget to use your resources! If you don’t know something or can’t figure it out, ask someone or do your research. Your friends, coworkers and especially instructors all want you to succeed, so if they can help they will. I'll conclude with this last bit of truth: you will only get out of a course what you put in. In this class, there was about 10 hours of homework a week, but I easily put in 15 to 20 hours, about 3-5 hours a day. I loved every minute of it and will definitely be looking at taking more classes soon.