Art Gallery Image Border.

Drawings and Paintings

Here are a few of the paintings I've done in acrylic, pastel + colored pencil and pen. Click on a painting to enlarge. All works are Copyright © 1986-2017 by Sean Erik O'Connor. All Rights Reserved.

I'm currently working on a painting of an orbital I've calculated the wireframe model and perspective view in Mathematica using homogeneous coordinates and matrix algebra.

Traditional Painting Techniques

I'm self-taught. It's taken me far too long to find good books which teach art techniques. I'll share some advice I wish I'd been given so much earlier!

Paint what you love and never stop improving. Visit art galleries, read art books, and visit the web to get inspiration. Standing in front of one of the master paintings of the past in the Louvre or Tate Gallery is humbling and moving.


Draw freehand in pencil from life and from imagination every day to train your hand and eye. Do lots of thumbnail sketches.

Learn the basics:


Color Mixing

I found it best to make my own color chart from a limited palette of acrylic colors. The color chart has pure colors across the top, and a color wheel of complimentary colors to the right. The final rows are exercises in making various browns, greens and blues for landscapes. I thin with matt medium or water.

For flesh tones, I use a slight modification of Portrait Painter Howard Sanden's palette. After mixing the basic flesh tones, adjust the tint with the different primary colors.

Brushstroke Technique

You need to master the basics of brushwork technique, including washes, drybrush, etc. I've found this book to be good: Brushwork Essentials

Gallery Digital Works

I've done a test render of a kitchen for a remodel project. The layout is imagined, but the materials are from photographs. And here's a work in progress on female modelling.

Digital Art Techniques

I'm learning Blender, a powerful CGI program which can do practically anything from helping with perspective and lighting for traditional painting to creating a complete animated film or game! It's free software, and can be downloaded as executable or built from source.

For digital painting, and doing quick studies for traditional painting, I use Gimp

Blender Worked Example

Blender is super powerful and will take time to learn.

The video tutorials on Blender Cookie - Introduction to Blender are really excellent. Also view the tutorials on Blender's Web Site.

What follows is a worked example of a digital painting, using a female model I created and compositing her with a science fiction landscape backdrop.

Mesh Modelling

First view the excellent tutorial series Modeling the Female Body where you'll learn about keeping the topology clean so it's easy to modify and animate.

Here's a sample mesh I did for a female figure,

I created only half of the mesh as a shortcut since the human body has mirror symmetry That's done by adding a mirror modifier (before the subsurf modifier). Select mirror in the x axis. I set the merge limit to 5cm and enable clipping which causes vertices along the mirror line to snap together without a seam.

Select the body and hit m to move it to its own layer,

Mesh Tips

To copy mesh geometry, select a portion of the mesh with B, then Shift D to duplicate, then move into place and connect the edges.

Hand Mesh Select Hand Mesh Move Hand Mesh Join
Copying a Portion of the Mesh

To fix inconsistent normals which make odd looking holes in the object display, go to edit mode, select the mesh, then spacebar to search and select Make Normals Consistent

Inconsistent normals Fixing inconsistent
Fixing inconsistent normals

Grease pencil is useful to sketch on top of the mesh.

Torso Rigging

We'll want to create a skeleton for the figure and pose it by moving the bones. See how to do it in Introduction to Character Rigging

To create the rig, I first do Shift A to create a single root bone and move it between the feet. This will position the whole figure. Then selecting the root bone in edit mode, duplicate it using Shift D and move it up to the pelvis to be the first bone in the spine. Next use E to extrude the second bone in the spine, and so on for all the bones including the head bone. For the left arm bones, duplicate the top spine bone with Shift D and move it into position to be the clavicle. Do similarly for the left leg bones, duplicating the bottom spine bone. Rename all the arm and leg bones on the left side, and add the suffix .L Copy the left side bones and move to the right. Now, selecting the right side bones, do W Flip Names to change all the names to the .R suffix. Now we do a bit of clean up and parent the two clavicle bones to the thoracic upper spine bone. Go into edit mode, shift select both clavicle bones and finallythe thoracic bone, then parent with Ctrl-P keeping the relative bone offset (so one bone doesn't automatically connect to the end of the other bone). parent both femurs to the lumbar spine bone, Parent the entire body armature to the root bone, For the root bone, we just want it to move the body rig, not deform the mesh, so we unset deform, The bones are chained in child/parent relationships, By duplicating bones with Shift-D, we keep all the bones as part of one single object even though they are not directly connected to each other.

Torso Skinning

Go into object mode, click on the mesh, then shift click on the armature, then Ctrl-P with automatic weights to tie the mesh to the armature. You'll see new vertex groups in the mesh controlled by the bones in the armature.

You'll now need to weight paint the vertex group on the mesh associated with each bone. In the List View window above, select the bone in the vertex group of the mesh. The name will be highlighted in white. Turning on the names of the bones will help. Go to Object View in the 3D view and select the mesh. Next go into Weight Painting mode and bring up the brushes with T, selecting the weight between 0 and 1 and selecting the Drawing brush. Weight paint the mesh in the neighborhood of the bone. Default is zero weight (blue) and full weight (red).

Now go into Pose Mode and move the hand bone. You'll see the mesh of the hand move also.

Be sure to weight paint all parts of the hand or you'll see this when moving the bone,

Torso Posing

Select the rig and hit m to move all the bones to their own layer,

You can adjust the pose in pose mode and keep the new pose as the resting pose,

You may need to reset the armature to its resting position,

You can position from inside the object if that's easier. Here I'm moving an eyeball using the eyebone from the inside of the head,

Here's an example of what you can do with the rigging. I went in to pose mode and moved the head bone to tilt the entire head, eyes, hair and all. Then did a test render.


First view the excellent tutorial Blender 2.66 Tutorial - The Basics of Cycles Hair - YouTube by Sardi Pax


I wanted to do hair directly on the female torso, but I couldn't figure out how to mirror the hair. Instead, I will create a separate scalp.

First, we'll copy a portion of the head mesh. Go into edit mode and use B to select the hairline.

Duplicate the mesh with Shift D, then create it as a separate object using P,

The scalp inherits the mirror modifier of the female model. Apply the mirror modifier to generate the complete mesh and remove the modifier so we can place the hair on the entire scalp,

The scalp is the same size as the head, so you'll have a duplicate render of cap and skull. The 3D view shows the overlap, Shrink the scalp slightly smaller than the head so it doesn't render instead of the skull by bringing up the tools window with N and adjusting the xyz scalings less than one,

If you adjust the skull shape you may need to adjust the scalp again so it fits inside the skull. Viewing the mesh by pressing the Z key in edit mode can help show you where to adjust the fit to avoid protruding. You can then select scalp vertices with B, turn on proportional editing, dial up the radius and pull out the vertices of the scalp closer to the surface of the skull, If you go too far, you'll see the scalp mesh protruding and you can shrink it back,

Parent the scalp to the head mesh so it moves with the skull.

Creating Hair

Hit Tab for edit mode and C to vertex paint. This will put the hair where you want it. Scroll to adjust the radius of the paintbrush. Escape gets you out.

Go to the mesh tab, add a new vertex group called hairline, and assign it. Click select and deselect to make sure it's really assigned.

If you look at the weight painting mode, you'll see red where you've selected the vertices, and blue otherwise. You can weight paint to fine tune the hairline.

Select the scalp, add a particle system, select Hair, select advanced. Rename to Hair. Dial down the hair length and number of hairs. You get hair everywhere with the hue of the object.

Now make the vertex group control the hair density.

You can adjust the vertex groups hairline using weight painting. Get the paintbrush tools with t, adjust the brush radius and weight from 0 to 1 and paint over the mesh.

Hair Color and Texture

Next add a new material for hair so the hair color is not inheritied from the mesh material color.

Use Hair Shaders for the base hair color and brown and white highlights. The Hair Info node is 0 at the root, where it tells the mix shader to select the black color, and 1 at the tip where it selects the brown and white highlights.

Go back to the particle system tab. Change the material from the default Skin to Hair, which is a glossy black color that I've created.

Hair Styling

Go into Particle Edit mode. Set deflect emitter so the hair does not fall through the mesh when you comb it. Leave Children unselected for now. You want to evenly space and comb very few parent hairs and let the child hairs do the work.

You see with zero deflection, you can comb the hair inside the scalp mesh, If you up the deflection number, it will prevent you from doing so,

Set the number of steps to get hair that looks smooth, and add interpolated child hairs. Choose Long Hair and dial up the Display: and Render: number of hairs.

To view the children, toggle on Children in the particle edit tools window,

Do a test render in the viewport.


To create eyebrows, create two objects eyebrow.L and eyebrow.R consisting of planar mesh. Parent each one to the head by selecting the eyebrow, then shift selecting the head as parent object using Ctrl-P.

Add hair as above, adding a partical system, materials, combing and so on.

Position the eyebrows and move the vertices just below the skin surface so we render the hair only.

Toggle the wireframe mode with z to see the vertices below the skin more easily.

I cloned the material for the hair in the eyebrows, but modified to make it use finer hairs and different colors. The color of the object, I left as the default skin material. Assign the new eyebrow material in the hair particle system for the eyebrows,

Finally do a test render in the viewport:

Before Eyebrows After Eyebrows
Before and After Eyebrows

Scalp Rigging

Now, when posing the figure, we want the scalp to move with the head. So we'll need a new bone for the scalp, tie it to the scalp mesh (and its particle system, then tie it to the head bone in the skeleton.

Use Shift A to create new scalp bone. Name it, and turn off deform and turn on xray. Now parent the scalp mesh to the scalp bone by selecting the scalp, then shift selecting the bone, the Ctrl-P bone. You have to be in pose mode

Next, parent the scalp bone to the head bone so it moves when you pose the head, Check the results in 3D view window by selecting the Rendered option in Viewport Shading

Select scalp and hit m to move the hair and scalp to their own layer,


Adjust the angle of the sun relative to the objects.

Adjust the sun intensity to lighten shadows. Adjust the sun size up from zero to give softer shadows. Use multiple importance sampling to reduce noise. Check the results in 3D view window by selecting the Rendered option in Viewport Shading


Background Image in 3D View

Composition can superimpose rendered objects over a painted background image.

But before get to rendering the background, we'd like to position the background as an image plane behind the figure so you can see it during modelling.

Create a new empty image with Shift a

In the settings, tie it to an image file,

Select it and type m to move it to its own layer,

You can paint the image with the UV Editor tools (hit Ctrl-T),


Use an Image node for the background. Send it to a scale node and a translate node to position it relative to the render layers node. You must send the render layers node to the composite node or else the render won't enter the composition stream.

Send the scaled translated background image and the render layer to the Alpha Over node and then to the Viewer node to view the results on the screen.

Hit the n key to view the backdrop positioning and image zoom controls. You must have backdrop enabled.

Render Settings

Enable Transparent in the Render options so the background will show through. Set the render to the highest quality settings.

After you hit the render button and rendering completes, the composite output will be saved to file.


I use a simplified model of skin material explained in Ben Simonds Three Layer SSS in Blender Demystified. See also the Blender manual for subsurface scattering

Skin Material

Here are the material nodes for skin, showing the render preview (Blender's Suzanne) at the right. Note I've used N to bring up the node properties and change the names and colors of the nodes. I'll explain the UV settings later. The subsurface scattering radii are and

UV Wrapping For Skin

First mark seams with Ctrl E Mark Seam on the figure so we will get a clean unwrap. I've separated out complicated parts such as the ears, nipples and separated the head and torso. Go back into edit mode, place the cursor within one of the body part delimited by the seams, then select the mesh for that body part with L then unwrap the mesh. Here we show the head being selected and unwrapped. Do the same with the torso.

Note:After unwrapping the head, I selected the head mesh in the left window with L and temporarily moved it out of the way off the image before unwrapping the torso. I found the two meshes otherwise were stuck to each other. After unwrapping the torso, I moved the head back again.

In the left window which shows the UV map, bring up the brush tools with T. Select a brush and color. Paint it either on the UV map image or on the model itself in the right window in Texture Paint mode. The skin color is, You can select connected components of the uv graph with L and scale them with S and move them with G.

You'll have to connect the UV texture with the skin. Shift A to select new nodes. The UV coordinate mapping is output by the Texture Coordinate node and feeds into the Image Texture node which pick up the color from the UV image above. Together they map the image color to the object surface. I feed the UV mapping color with the skin color in the Mix node, which then feeds to the Subsurface Scattering shader node. Check the results in 3D view window by selecting the Rendered option in Viewport Shading


I followed Blender Cookie - Creating an Eyeball to construct eyes from a ball containing the iris and a larger clear shell shaped like the cornea. We UV map to get the iris color of the inner eyeball, leave the cornea clear and turn on caustics to get good reflectons off the eyeball, parent inner eyeball to the cornea, and create eyebones and tie them to the headbone so the eyes move with the head when posing.

Parenting Inner and Outer Eyeballs

To get objects to move rigidly together, use parenting. I parent the inner eyeball to the outer eyeball, for example.

In Blender, select the child object first, then shift select the parent object, then do Ctrl-P to parent the child to the parent. The relationships show up hierarchically in the outline view:

Rigging Eyes

See the torso rigging example for the scalp where we use a bone to control the position of the mesh object.

Create two new eye bones with Shift A. Go to bone properties and click deform off because we don't want the bone to change the eye shape. Then select the outer eyeball object, shift select the bone for the eye. Repeat for the other eye.

Tthen Ctrl-P to parent the eyeball to the bone. Select keep offset since we don't want to connect the bones directly to each other. Similarly parent both eyebones to the head bone.

UV Wrapping for Eyes

To get a decent unwrapping, partition the mesh at the cornea edge. In brief, select the eyeball, tab to go into edit mode, then alt on the cornea edge to select the edge loop, Ctrl-E Mark Seam.

Finally a to select the whole mesh spacebar Unwrap to unwrap the mesh onto the image.

The unwrapped meshes will be at "random" positions.

You'll have to select the meshes with g and the mouse or L to select a connected component, then move and scale them over the image with g s and the mouse. Select the bottom box which keeps the meshes synchronized.

This is the UV unwrapping for the inner eyeball for the iris and the rest of the eye,

The iris pattern was painted in Gimp,

The material nodes use UV mapping for the coordinates, select the image above to use for the texture color mapping through a diffuse BSDF and output to the surface.

The inner eyeball after rendering,

The outer eyeball is just the clear cornea,

Select eyes and hit m to move them to their own layer,

Rendering Eyes

Renders of inner eyeballs and outer cornea.

We have to turn on caustics in Render to get the effect of eyeball seen through the glassy cornea, but we will get fireflies.

So let's turn on clamp indirect slightly to suppress them.

Coordinate Systems

Let's clean up our coordinate system prior to creating a really large object.

Set Blender units to metric in the scene. We'll use meters.

To avoid clipping the object when zooming in close, in every viewport window, type N to bring up the transform pane and set the clipping minimum range to 1mm,

Make our female figure the origin and line her up with the coordinate axes. Do this by selecting the entire armature and lining up the figure with the axes. When she's in position, hit Ctrl-A to apply the coordinate transforms.

Large Objects: an Orbital

We are going to input a huge object: an orbital. It's a ring with radius r = 1.5 x 106 km Spin up the orbital to a 24 hour day/night cycle and check the acceleration, r ω2 = 0.808639 g, which is comfortable for us Terrans. The side walls are 500km up, the trees are 100km tall, and the base of the orbital is 400km wide. Create the orbital with Shift A select mesh torus. Rotate it 90 degrees. Apply the rotation factor to the object with Ctrl-A so the rotations return to 0 and the torus lines up with the coordinate axis in its rotated position. Finally, we want the torus origin to be it's center, not the bottom, so bring up the tools with T and select Origin to Geometry. The yellow object center dot will shift from bottom to middle.

Checking Backface culling will help you view the mesh better as you edit it to remove the inner rings. Also you can select the seam in the middle with Alt Shift Select and dissolve To see the orbital, you need to greatly extend the clipping end range Finally, enter in the dimensions of the orbital and translate it upwards in z by the orbital radius so that the female figure is positioned near the bottom inner surface. As you zoom out to see the huge orbital, you may lose the female figure. Select the figure and hit space bar view selected to find it. The same goes for zooming out to see the orbital, with the origin marked near the bottom,

List of Objects

The blender file is composed of a list of objects, including cameras, lighting sources, meshes, armatures, etc.

Body Proportions Guide

You can enclose the figure in a wire cage tagged with body proportions, by creating a cube, deleting faces, creating text, and parenting to the cage. We switch to orthogonal view 5 to get the proportions correct, Here's the list view showing we turn off rendering for the guide,


Who doesn't like trees? Please see this three part tutorial series from Blender Smoothie: Blender Smoothie: How to Create a Realistic Trees I'll go through a worked example for a painting I'm working on. First you'll need to activate the Sapling add on by clicking the checkbox, Sapling is a python program which generates a tree model as a series of curves. It's located in the directory

# Mac OS: /Applications/blender-2.78c-OSX_10.6-x86_64/ # Ubuntu Linux (assuming you've downloaded and unpacked the Blender distribution into your home directory, ${HOME}/blender-2.78c-linux-glibc219-x86_64/2.78/scripts/addons/add_curve_sapling

To add the tree, do T to get the tool window, then do Shift A and select curve/sapling, You'll see the tree outline and the settings appear in the toolbar. I'm going to load the Callistemon preset tree type in the toolbar, In the tree settings in the toolbar, set the bevel to 4 so the trunk isn't square, There's lots of settings. Try adjusting the tree scale, the number of branch splits, branch lengths, random seed, leaf scale, etc. You can click a box to show the leaves, If you move the tree, the tree settings go away. As soon as you are done with your tree design, name your tree and save it in export presets, At this point the tree is all curves. You can move it around and scale it. The next step is convert curves to a mesh with Alt C. Be aware this will slow down viewing and rendering considerably. We will separate out the trunk. Shift select vertices on the trunk, then Ctrl L to select connected vertices, Then P choose separate by selection to separate the trunk mesh from the branches mesh. Obtain an image of tree bark, Now go into UV Editing, select the trunk, go into edit mode, Shift Alt Select a a few edge loops and mark them as seams with Ctrl-E Mark Seam. Select all the vertices with A, do u to UV unwrap. Load the tree bark image. Now resize and position the mesh on the image. You can let uv mesh extend beyond image, it will repeat. Go back to Compositing, select the trunk and create a new material. Use the tree bark as texture image in UV mode,

Now let's do leaves. I captured a photograph of a leaf, then used Gimp to erase the background: the foreground is the leaf and the background has alpha = 0. Also create an alpha mask by painting the leaf white and flood filling the transparent background with black, Go to UV Editing, select the leaves and go into edit mode and mask mode. Sapling has already unwrapped the leaves, so each leaf is mapped to the image with an orange mask. However the orientation of the image and leaf square don't match, so you'll have to rotate, translate and scale the mask, Here's the final mapping and how it looks on the leaves in both mask mode and image mode, Now go into Compositing and create new nodes with Shift A. The leaf image feeds into the diffuse BDSF shader and the leaf alpha mask feeds into the mix shader. One more thing, to avoid showing the leaf background as white in the viewport, dial down the alpha setting in the materials pane, Do a test render,


If your object handle isn't in the center, bring up the tools pane with T and Set Origin to Geometry.

User Settings

I'm selecting with the left mouse button, so I give up selecting vertices with a lasso. Since I'm on a Mac, I emulate the numpad.

These are the local directories.

Region overlap lets T and B superimpose their menus on the 3D View without shifting the view left or right. Viewport lighting can be adjusted to make the solid figure more realistic,

Use gradient backgrounds.

Building Blender from Source Code

Building Blender on Mac OS

I built Blender on my Mac OS X El Capitan 10.11.5 MacBook Pro (Retina, 15-inch, Mid 2015).

First of all, install CMake, then add the CMake binary to your path:

cat .bash_profile ... # CMake tool used for Blender. cmakebin="/Applications/" PATH="${HOME}:${cmakebin}:${py3bin}:${bins}:${PATH}" ...

Then follow instructions at Build Blender for Mac OS X from Source Code

Building Blender on Ubuntu Linux

Follow instructions at Building Blender in Ubuntu from Source Code

Art Online

Copyright © 1986-2017 by Sean Erik O'Connor. All Rights Reserved.     last updated 20 Jul 17.