Techniques for Modeling a Cellphone
This demo looks at a few sample techniques which may be used for a variety of other extended purposes through varriations in the modeling process, such as modeling cameras, remote controls, game controllers, or even weapons.
For this demo, I will be building my own G1 Google Phone from T-mobile. Here are some images of the front and the back for reference:

I am going to be building a High Poly version of this model, one that puts higher regard on modeling for accurate detail than for polygon efficiency. One can always bake this high poly detail into a texture map for a low poly model using the approach outlined in this video:
I have already set up a set of 4 image planes for this project. You can watch that process in this video:
Time to Start Modeling, a Subtractive Approach (box modeling):
My first step is to utilize the image planes I have set up effectively. I am using a 2 monitor setup which gives me a lot of extra sceenspace. I set up my 4 orthos at the end of the video above. To also get a Perspective view, I choose Panels-Tear Off, and then set the new panel as a perspective camera, giving me a 5th window to work in, and I placed this window on my 2nd monitor screen. If you have only 1 monitor, this may not be as useful, but you can still flip between camera views with the spacebar key, or the icons in the toolbox.

I am modeling everything at ACTUAL Size. This is a crucially important step in making sure that you acheive the level of detail that is required professionally. I measured my phone, and it was 4.5 inches tall. Thus, when I set up my image planes, I did so with an eye to my Preferences-Settings, making sure I was working in inches. I used a Locator (Create-Measure Tools-Locator) to determine how tall 4.5 inches is, and everything I build will be scalled to that actual size. In my first step here, I creat a cube (Create-Polygons-Cube) with interactive creation turned off, and I scaled it to be the correct size and shape of the body of the phone, looking at all of my ortho angles, acting almost as a bounding box. Next up, I add two edgeloops (Edit Mesh-Insert Edgeloop). One is vertical in the depth, the other is horizontal, to create the first angles of where I will next cut inwards to futher develop the form.

Now I will delete out these faces, opening a hole in the model. This is how I will cut away at the cube, sculpting it into the correct shape my a subtractive method.
In subtractive processes, the sculptor begins with a mass of material larger than the finished work and removes material, or subtracts from that mass until the work achieves its finished form. Carving is a subtractive process. In additive processes, the sculptor builds the work, adding material as the work proceeds. Modeling, construction, and assemblage are additive processes.

Now I wil use the Append Polygon Tool (Edit Mesh-Append Polygon Tool) to seal up the surface, creating a new concave dip that wasn't there before. I will follow that with the Insert Edgeloop Tool (Edit Mesh-Insert Edgeloop), adding 2 extra vertical cuts into the model. I will use this to hold the overall height of the form while I take the verticies at the corners (see red dots) and move them "down and in", a phrase I will be using a lot through this demo. Down and in means rounding off the corners by moving a vertex or verticies towards the center of the form or negative space in question.

Once I have rounded off the corners and added a few extra edgeloops, I will select the faces in the center here (3 faces in this case) and extrude them inwards (Edit Mesh-Extrude). This creates a recess inwards where the keypad will go. During the course of this project, and every subsequent project you work on, you should take advantage of the quick select tools under the Select Menu. Select Edge Loop Tool actually happens automatically in Maya 2009 and beyond, but the other tools are of great importance. Remember the hotkeys for Convert Selection (to Vertices, UVs, Edges, and Faces), they come in handy for quickly selecting large areas accurately. For instance, I can select 1 vertex, and hit Ctrl-F11, and instantly the 4 faces that connect to it will be selected. Then I can grow my selection repeatedly using Shift-period (the > key command). This will often be a far quicker solution for selectiing faces then by simply dragging a selection box, or shift-selecting a region of faces.

In this case, I want to extrude inwards to create a channel or grove along the side of the phone. I use the Select Edge Ring Tool (which is similar to selecting the ties of a railroad track all the way around the model, as opposed to Select Edge Loop which selects the rails of the track). Then I use Ctrl-F11 to convert that selection faces, giving me a 2 step solution to cleanly selecting the entire ring. I complete the setp by Extruding the faces inwards to create the channel.

I can use Shift-Period to cleanly select faces on the back of the phone too. Here my goal is cleanly round off the form. By selecting a section, scaling it inwards, then growing my selection, scaling a bit more..... I can smoothly taper the model.

After a good deal of this scale inwards, grow, scale, grow... I get the following:

To remove the hard edges on the model, I will select them (double click to grab a full loop) and choose Normals-Soften Edge:

Rounding off the form:
When creating organic models, or models that need to deform, Triangles and N-gons can be nasty solutions that create ugly artifacts:
Subdivision Topology: Artifacts from The Guerrilla CG Project on Vimeo.
Here are some ways to create rounded edges:









Using Boolean Operations to cut precise holes:
A large amount of the face plate detail was precisely cut into. Instead of making this detail by tracing with the split polygon tool, it is far easier to make Positive versions of these shapes and extract that from the main form. Operations such as these are refered to as Boolean statements (a AND b, a WITHOUT b, b WITHOUT a, NEITHER a OR b). Here are 3 boolean objects created from the various combinations of 2 spheres:
In my case, I will use booleans to cut out the areas where the keys, buttons, trackball, lens, and speakers will be.
---------- First I create the positives for these objects from modified primatives.
---------- In the case of the keys, I beveled each object to make it a bit rounder
---------- Then I Mesh-Combine all of the Postives into one object and Delete the History, so that I can do my Boolean Operation all at once, and not have to boolean 50 something times.
---------- Don't forget to Delete your History or you will experience errors and artifacts from the lingering information.
---------- Its a good Idea to create a dupliacte of your Positve objects before doing the actual boolean operation as well, incase you need them later. (I will... I'll be shrinking my keys and buttons sliightly, and using them).

If you intend on smoothing your object (or using a smooth preview, the "3" key) before you are done, you need to do that NOW, BEFORE YOU BOOLEAN. Smoothing after a boolean opertaion WILL NOT produce the desired results. Also.... DELETE YOUR HISTORY (see above for why).

The Order in which you select your objects is of prime importance to the outcome. Select the Piece you want to keep first (this is the one to be cut into), then select the positives second. You can see that is the case here based on the color of the wireframe. Then choose Mesh-Booleans-Difference. Again, delete your history at the end of this step.

And..... Here's what I get as a result, a nice clean cut. However, if you examine more closeley, there will be n-gons and triangles everywhere along those cut edges. This is OK, as long as the model doesn't need to deform or be smoothed further. TA-DA!!!! there's one big difference between Hard Surface Modeling and Organic Modeling already.

Finishing Up:
By using the techniques listed above, I can continue forward, creating all of the remaining pieces of the model.
Don't forget to:
---Delete your history
---Freeze your transforms and Center your Pivots
---Name and group your objects in the hypergraph:

By the end, here is my finished model (click for a larger view):
