Stefan Mayr walked us through the process of creating a realistic version of Gremlins' Gizmo for a cinematic short film, focusing on the fur grooming workflow using Blender's new hair system.
Introduction
My name is Stefan Mayr. My first steps into CG creation were my studies in Digital Film Design from 2009 to 2013 in Berlin, Germany. However, these studies were not focused on teaching techniques or learning software. Therefore, I did a lot of self-teaching with the help of online resources. Community sites like Blender Artists are a very valuable platform since questions can be asked, feedback can be collected, etc.
Currently, I am working at Framestore VFX in London as a Senior Visual Development Artist, which is giving me the great opportunity to work on multiple well-known movie productions.
The 11:58 Project
I got started with 11:58 because I wanted to explore Blender's new hair system and see how it could be applied to character creation. I needed a project that would allow me to dive into it deeper and figure out its weaknesses and strengths, so I set out to find the perfect target to experiment on. As someone who often works on designing characters in my job, either from scratch or by reinterpreting existing ones, I thought it would be fun to bring a beloved character into this new space.
I really like the Gremlins franchise, and Gizmo was an obvious candidate. I've always loved his design, and it felt like a great opportunity to recreate him using Blender's updated tools. The next challenge was thinking about what kind of real-world animal Gizmo might resemble. After some research, I leaned toward references like pygmy monkeys and cats, along with toddlers, for their proportions and movement. These references really helped guide the way I approached his textures, fur, and overall appearance, trying to convert the puppet-like appearance to something more lifelike. My goal was to see if I could capture that blend of cuteness and realism while pushing the limits of Blender's hair system.
Modeling
For the character modeling, I started with a generic human model in Blender, which gave me a solid base to work from. The initial shape and anatomy were influenced heavily by monkey features, but I adjusted the body proportions to resemble more of a toddler. It was important to keep as many Gizmo-like aspects as possible, such as the number of fingers and toes, his large ears, the rather bald areas around his mouth, and his eyelids. At the same time, I decided to ignore some of the exaggerated cartoonish features, like the overly round or horizontally large head, to make the design feel more grounded.
To allow more freedom in shaping, I switched to dynamic topology early on. That way, I didn’t have to be restricted by the base mesh’s topology. Once I was happy with the proportions, I used Blender's retopology tools (made even better by the new retopology overlay in Blender 4.0) to finalize the geometry. After that, I brought the model into ZBrush for more detailed sculpting. In order to save some time and avoid unnecessary work, I ignored any fur-covered areas as far as details are concerned but only focused on the broader anatomical aspects.
During the entire project, I relied heavily on Blender's new Geometry Nodes wherever it seemed appropriate. A good example is the meniscus (water line) for the eyes. Usually, it's a piece of hand-placed geometry. However when driving the facial performance with shape keys, it quickly becomes extremely tedious to have the meniscus follow the eyelids properly.
This Geometry Nodes-based setup dynamically creates the meniscus, and therefore, I never had to worry about rigging it up or giving it its own deformer in order to stay in place.
The eyes were modeled as a sphere with a bulge for the cornea, ensuring a realistic curvature. Inside the eye, I included an iris and a lens behind the cornea to give depth and detail.
The overall eyeball acts as both cornea and sclera at the same time. It simply uses a mask to blend the cornea shader and the shader for the sclera.
Composition
When planning the composition of the scene, I started by sketching single frames for each shot on paper. This helped me visualize the key moments and how I wanted to frame the action. After that, I set up a rough 3D scene in Blender, focusing on camera placement, movement, and focus. Especially for the shot pacing, it was extremely useful to have an animated scene with the rough action in place.
From there, I would watch the blockout repeatedly, making adjustments or even completely changing shots if they didn't feel right. This iterative process allowed me to continuously refine the composition. I also involved friends in the process, having them watch the blockouts over and over, which provided valuable feedback and fresh suggestions to help improve the scenes.
Topology
For retopology and UV unwrapping, I used Blender's modeling tools exclusively. Blender's retopology tools, especially with the new retopology overlay since Blender 4.0, made it easy to clean up the mesh and prepare it for texturing. Since I started from a generic man-base model, I could reuse a lot of its topology and only had to make some adjustments due to the proportion changes. The head, however, had to be redone completely since it differs too much from a human head.
When unwrapping, I made sure to give more texel density to the exposed or hairless areas, like the face and hands, to ensure those parts had the necessary detail for close-up shots. In order to make texturing and painting any attribute mask later on a lot easier, I kept my UVs perfectly symmetrical. I even overlapped the UVs for the eyes, so both eyes are automatically sharing the same textures.
Multi UDIM UVs for the main textures with a focus on having more texture space on areas like the face, hands, ears, etc., which are not fully covered in fur:
Single UDIM UV for grooming:
Texturing
In this project, the texturing process was primarily done in Mari, which is well-suited for creating high-quality textures. Given that the character is mostly covered in fur, the texturing was relatively straightforward. I initially covered the entire body in a tileable skin texture. By implementing the displacement map extracted from ZBrush, subtle details like bumps and lines could be enhanced. With this as my base, I added redness and adjusted saturation and the values on specific areas.
Render with textures and lookdev applied:
For the fur, I fully used Blender's new geometry-based hair system. After all, this was the initial spark to start this project. Due to its node-based workflow and having Geometry Nodes' full set of tools at hand, it offers a lot of flexibility. Unfortunately, however, it can become rather slow rather quickly. For this reason, I separated the fur into three parts: the head, the torso, and the lower body. Focusing initially on the head only, gave me a lot less impact on the performance and made the overall workflow smoother.
The first set of guides were placed by hand to the entire body, making sure the overall flow of the hair feels right.
Once these guides were set, I started separating them into body parts to help performance. The separation only happens inside the node tree, and all parts are combined into a single output at the end of the tree. This way, I had only one hair system for the entire body but individual control over each body part.
Node tree section of the head only:
Surprisingly, when I applied the same node setup, which I had for the head, to the rest of the body, it was really working out of the box, and only needed little adjustments.
I used property masks to control specific areas of the fur's appearance, allowing me to fine-tune the density, length, and clumping. My clump size map i.e., specifies how dense the generated clump guides will be. The more clump guides there are, the tighter the clumps will be, which is rather important in areas like the face, where the hair is very short.
RGB map to control the size of clumps. Black: smallest clumps, Red: small clumps, Green: medium clumps, and some Blue: large clumps:
Generated clump guides with the help of the clump_size_mask. More guides, where I want the clumps to be tighter, less guides, where the clumps should be broader:
As far as the texturing of the fur is concerned, there is actually only one texture being used, which is a probability mask. By using this mask in the lookdev, I can dynamically specify, which hairs are how likely to have a certain color.
Probability map for shading. Black: base brown color, Red: Probability of white hair, Green: Probability of yellowish in the whites:
The entire hair is, by default, brown, with some hue, saturation, and value variations per hair. Then, with the help of the red channel of my probability map, I could specify which hairs are more likely to be white, etc. This way of texturing fur is quite common in the industry, since it gives a lot more believable appearance to the overall look.
Rendering
Since the scene was fully indoors, I didn't use any HDRI lighting. The main light source came from cold moonlight streaming through the window, setting a cool and moody tone. To balance this, I strategically placed visible string lights around the scene, which allowed me to cheat warm lighting on a per-shot basis. This contrast between the cool moonlight and the warm string lights created a visually interesting atmosphere.
For the previsualization, I used Blender's real-time EEVEE engine, which gave me quick feedback on how the lighting and composition would look in real-time. Especially the updated EEVEE-next since Blender 4.2 has some amazing ray tracing capabilities. Once everything was finalized, I switched to Cycles for the final render to take advantage of its realistic lighting and shading capabilities.
For post-production, everything was done in Blender's compositor. I rendered out three passes: the main_pass, dust_pass, and volume_pass. Additionally, I rendered each main light into its own light group as a multilayer EXR layer. This setup gave me a lot of control in compositing, allowing me to fine-tune the lighting after the render was complete. I could increase or decrease the strength of specific lights for each pass, making sure the balance of light felt perfect without needing to re-render the entire scene. Especially for the lightning, this was very helpful since I could time them in post instead of animating an actual light and baking this into the render.
The biggest challenge in the project was the animation. I haven't animated a character in a long time, so getting the movements right took a lot of work. But with some patience and testing, I was able to bring the character to life in a way that felt natural and expressive. The character was rigged up with a rigging add-on called Auto-Rig Pro. This addon is truly awesome since it's extremely easy and flexible to use.
For the facial animation I relied on shape keys instead of bones. Although face shapes are a lot of work to set up, the outcome is more artdirectable than working with bones. For this I started to create my own shapes network addon, which was a big help in the process but also took me quite a while to put it together and even now it’s not fully fleshed out yet.
Conclusion
It took me almost a year of working some hours on weekends to finish the project. One of the main challenges along the way was staying motivated, especially during the longer phases of creating the main character and figuring out the new hair system. At one point, I got sidetracked for several weeks while working on my custom shape network addon, which pulled my focus away from the main project. However, once I started the previsualization, my motivation came back quickly because I could finally see the project starting to take shape visually.
Probably every CG artist would agree when I say, a project never finishes, there is always something to improve. Towards the end of the project I had to cut corners otherwise this project would become one of those never ending ones. Many aspects I am not very happy with, especially animation, but at this point I needed to call it done.
For beginning artists, my advice would be to avoid setting goals that are too high from the start. While ambition is great, it's easy to get frustrated if those big goals become overwhelming or feel unattainable. Setting realistic, smaller milestones will help you stay motivated and achieve success bit by bit. Even as an experienced CG artists I keep falling into this trap and 11:58 almost became one of them.
Stefan Mayr, Senior Visual Development Artist
Interview conducted by Gloria Levine
Keep reading
You may find these articles interesting