Brian Sellors showed us the workflow behind the NUMA LP55 project, discussing creating a game-ready weapon asset with subtle details such as engravings and a transparent plastic material using Plasticity, Blender, Substance 3D Painter, and Marmoset Toolbag.
Introduction
My name is Brian Sellors, and I’ve been creating 3D art for over 8 years. I first discovered 3D while working at the National Film Board of Canada in Montreal. At the time, I was mainly focused on motion graphics until a friend, Dan Thornhill, introduced me to Cinema 4D. Not long after, I stumbled upon polygon modeling, and it completely blew my mind. I had this realization of “wow, I can make anything.”
Back then, I was working full-time as an Instructional Designer, so most of my evenings were spent learning 3D. I built a habit of dedicating time every night to improving, whether that meant following online courses, joining workshops, or working with mentors. My first real mentor was Mario Bradich from Elementza, whose guidance shaped my early approach to SubD modeling. One thing that Mario taught me is repetition. When you make something and don’t like it, do it again. Repetition builds understanding and eventually skill. Never be afraid to do something again and try a different approach; this is, after all, what learning is all about, so give yourself the space to do it. Over time, I transitioned from Cinema 4D to Maya, and eventually to Blender as my primary tool. I also explored CAD software, starting with MOI, then Fusion 360, and more recently, Plasticity. As a side note, all these tools don’t matter; the skills you learn in poly modeling, topology, and Boolean-based approaches can carry into any software that supports them.
At some point, I looked at my portfolio and felt I needed to tackle something bigger and more meaningful. Like many artists, I would often look at my work and think, “This isn’t good enough.” Most of my projects were prop-focused, and I wanted to take on something more ambitious. That led me to recreate Daniel Simon’s Bubble Ship from Oblivion. It was a turning point, proving to myself that I could manage large-scale, complex work while still caring about design and detail. Knowing Simon had built the original ship in CAD, I used Fusion 360, and the project took about six months to complete. That experience taught me the value of choosing projects that challenge me and pushing through them, similar to practicing an instrument every day.
One project I am especially proud of is Point Linden, inspired by Simon Stålenhag’s The Electric State. I collaborated with two talented artists, my brother Jason Sellors and Nicolas Gagnon-Picard, on what became their final thesis at NAD (École des arts numériques, de l’animation et du design) in Montreal. Contributing to that project was both rewarding and inspiring, and it reinforced how much I value working alongside passionate, creative people. Both Nic and Jason went on to get Jobs at Ubisoft and are still working there today.
Getting Started
A couple of years ago, I was laid off from my job at the National Film Board of Canada, and I decided to give myself one year to try and break into 3D professionally because I loved it so much. One of the projects I set out to complete for my portfolio was the NUMA LP55. My goal was to take an existing, complex concept and create a fully game-ready version of it. I wanted the piece to showcase clean topology and highlight every detail of the weapon.
In the end, I sent out more than 300 applications to 3D companies in Montreal but never received a single response. Even though I eventually moved on from actively applying to 3D jobs, I was determined to finish the gun. There was also another reason; man, was I sick of this thing, it was taking way too long... Maybe I bit off a bit more than I could chew. Do any other artists feel like that? You’re sick of the thing you’re working on?
Anyway, I think it is very important as an artist to give credit where it is due, and The NUMA LP55 is based on the fantastic work of Filippo Ubertino. I used a number of references from this project to help me build out the handgun from scratch. The first was a side view that helped me get the base shape going.
I started this project in Fusion 360 and switched to Plasticity about halfway through. There was no real reason for this switch other than I didn’t want to pay for a full Fusion 360 license and opted for a more affordable CAD solution that was more artist-focused. The profile shot of the gun can be imported into Fusion 360 as a reference, and from there, I literally started blocking out shapes from sketches. If you have never used CAD software, you can draw silhouettes and then extrude them into a 3D shape. The other useful reference was the “exploded view” of the gun. This view helped me model the interior of the weapon.
Another reference for this gun that I found online was a toy version. You can buy this thing on Amazon. I have no idea if this gun is based on Filippo’s 3D version or if Filippo was inspired by it. Either way, I found the details to be rather similar and used them to help me get a sense of the shape, but also the plastic materials.
Modeling
I started modeling the weapon in Fusion 360 and finished it in Plasticity. Again, there was no real reason for this software switch other than the higher price tag of Fusion 360 and enjoying the vibe in Plasticity. So, essentially, CAD is used to make the model. Below is a screenshot of my history playing out in Fusion 360.
The thing to remember with the modeling process is to limit small bevels or, what is called, micro bevels. Unless the bevel is “form changing,” don’t do it in CAD and leave it for ZBrush and the high poly model. The main reason for this is that exporting a low from Plasticity with tiny bevels makes the cleanup workflow in Blender painful, and this process is already quite time-consuming.
From the view below, you can see the shelling process a little bit. It is hard for me to get a better view, but essentially, I copied the solid version of the gun, scaled it, and placed it on the inside using a different material to see how much space I was leaving. I wanted to make sure the shell still had a realistic thickness to it after cutting out the inside.
For the high poly model, I followed Asia Rendon’s method, which you can check out here, but let’s go over that process briefly. I export the model from Plasticity, adjusting the max width setting to something between 0.001 to 0.003. You want a lot of topology to make sure the mesh looks smooth in ZBrush. Import the exported OBJ to ZBrush, drag it into the viewport, click on edit, make polymesh 3D, DynaMesh at around 2500, and finally select deformation and polish crisp edges, and your high poly is done. This process adds micro bevels to the whole model. From here, you can then decimate the mesh, making sure to keep the topology lower on flat areas. This last step is all about optimizing the high-poly mesh. This process in ZBrush is a major time saver and essentially gets your finished high poly in a few clicks. What I described here is the appeal of this approach. Both the modeling of the weapon and the high poly are very fast; the slow part is making the low poly version. Texturing also takes time, but I consider that a fun part.
This is what a decimated high looks like in ZBrush. You have high density in curves and bevels, but flat areas should be much lower. I never thought about optimizing my high poly, but it’s a thing. Everything about this process was taught to me by Cohen Brawley. He is a fantastic teacher and is happy to share his workflows. Cohen still offers mentorships if you are interested.
Exploded view in Blender
The low poly follows a different process. For this, we export the model from plasticity again with these approximate settings.
We select quads and leave everything at the default. You can definitely manipulate these settings a little bit more to add or remove topology. Once this is done, you can start the cleanup in Blender or any other software that supports poly modeling (3ds Max, Maya, C4D). Cleanup in Blender means going through the mesh and cutting down on extra verts, edges, and faces, and making the geometry cleaner overall.
The other option is retopology, which I tried, but it was way too time-consuming for this model. Here is what that looked like for one part of the handle.
Retopology & Unwrapping
One thing you can do with the low poly is delete any holes or tiny details in Plasticity before exporting, and bake those from the high. If you’re aiming for a game-ready asset, this is the standard approach. It makes cleanup a lot easier, too. In my case, though, since this was for a portfolio piece, I kept more of those details in the low poly. I also had way too many separate meshes, so I didn’t go through with a full cleanup.
For the UVs, it’s rather straightforward. I usually select hard edges on the imported low poly and mark seams. That gets me about 80% of the way there. After that, I add extra seams where needed, then organize the meshes into groups based on material type. For the whole low-poly process, cleanup, UVs, organizing, and applying materials, I used Blender.
Texturing
Texturing was done in Substance 3D Painter. The main focus was on ensuring that the see-through plastic elements were always distinct from the opaque parts. To manage this, I grouped nearby components of the gun, creating a total of 32 groups and materials. This approach allowed me to tackle different sections by isolating them, while transparent sections could either share the same material or be instanced across the weapon for efficiency. I could have optimized all of this way more by splitting the weapon in half and only texturing one half and then mirroring it, but I ended up making each side unique. Let’s be clear, there is nothing optimal about having 32 texture sets, but I can admit that I took this a bit far, and the final result is in no way game-ready. Literally, more than half the textures are not visible if you only leave the outside of the gun.
Let’s talk about the transparent material. The setup is straightforward and typical for a material using the opacity channel. In Substance 3D, I created a new shader instance and selected PBR Metal Rough with Alpha Blending, which allows control over the weapon’s opacity. The base opacity was set slightly below the midpoint at 0.4440.
While texturing in Substance 3D, I also set up the entire scene in Marmoset Toolbag. I imported the gun, set up the lights, and created all the materials so I could preview my renders by exporting materials from Substance 3D and updating the scene in Marmoset. I would export only one or two materials at a time to speed up the process. The result in Substance didn’t always look the same in Marmoset, so I made adjustments based on what I saw there.
This workflow takes a bit more time, but it prevents surprises in the final renders. It’s also a flexible way to work: you can quickly iterate on textures, save a new Substance 3D Painter file, and reload textures based on the version you want to test.
Let’s break down the transparent material.
The base material is primarily about establishing values for color, roughness, opacity, and metalness. For me, texturing is all about creating variations within these channels. One way I added variation to the color channel of the plastic was by using a UV Border generator, followed by a white noise texture, and then a Warp filter. I find it best to keep these effects subtle at first and build on them gradually. The white noise also contributed to the roughness of the material.
I then added scratches and controlled their intensity using Levels and the Sharpen filter. For the scratches, I enabled the Color channel and set it to white, and adjusted the Height channel to -0.0093. The entire grip was painted by hand using masks, with additional white noise added and scaled differently to create variation. On the mask forming the ovals, I also added height to give them an indented appearance.
I also removed some of the white noise in the plastic by adding a white mask and painting on the edges where there would naturally be more wear, which helped smooth out some of the elevated noise. The remaining layers represent variations in roughness. I wanted some areas to appear almost wet, others more greasy, and some parts dirty. This effect was achieved by adding stains, fingerprints, dirt, dust, and even hair. In the preview, I focused on roughness instead of the material to clearly see the impact of the different layers as I turned them on.
The colorful plastic version of the gun is fairly straightforward to set up. The base layer uses a brownish color (#553320), with roughness at 0, metalness at 0.23, and opacity at 0.6. On top of this, create a new layer called Color Variation and start with a curvature generator. In the generator settings, set the global blur between 10 and 11, and raise the global balance to around 0.8. This generator should only affect the color channel.
Next, add a series of filters using Replace blending mode. Begin with a Blur filter (intensity 10) affecting only the color channel. Follow this with a Contrast/Luminosity filter, setting contrast to -0.23 and luminosity to 0. This one can affect all channels.
The key filter for the color is the Gradient. Set it to affect the color channel, then assign these values:
- First color: #D09748
- Second color: #D07C48
- Third color: #D05B48
After that, apply an HSL filter with saturation around 0.6 and lightness around 0.3. The hue slider here controls the overall look – adjusting it is how I achieved both the turquoise and the orange versions.
Finally, to darken the edges, add a new layer affecting color and roughness. Set the color to #332D2A and roughness to 0.3. Add a black mask with a mask builder generator, a Blur filter (intensity 1.5) set to Replace, and a Fill using your input curvature map in the grayscale uniform color box. Adjust the curvature max so that only the edges appear white.
Lighting & Rendering
The final renders were created in Marmoset Toolbag. I started by removing the brightness from the skylight and setting up a simple three-point lighting system, using only directional lights. I always adjust lights one at a time so I can clearly see their effect. The lights that made this render work are the ones placed inside the gun, which are also directional and set quite high. I added a few extra lights in the scene to create specific highlights on the plastic. For post-processing, I only added a bit of contrast and sharpening, since I always bring my renders into Photoshop for a final pass. There, I adjust curves, brightness/contrast, hue/saturation, vibrance, and color balance to push a subtle blue tint. It is a fairly basic edit, but it makes a big difference in how the final image pops.
Conclusion
I think creating appealing props comes down to effort. It is about taking the time at each step, paying attention to the modeling, getting the details right, and experimenting with different texturing options. Honestly, I was not even a fan of the colorful plastic I tried, but I showed it to my 4-year-old son, and he loved it. He told me I should put that one on the cover, so I did.
The biggest challenge with this project was how large it was, with so many pieces. It can feel overwhelming when you realize you might not be able to do everything the way you want. Getting the topology perfect alone could have been a full-time job. And then there is the gap between what you want it to look like and what you can actually achieve, which is frustrating. There were times I stopped for weeks before coming back to it. I even wanted to make a full animation with all the parts, but I never did.
My advice to beginners would be: do not start with a huge project like this. Start smaller, build your way up, but always challenge yourself. If there is something you cannot do, it is not a defeat; it just shows you what you need to work on next. There is a line from Zima Blue I love: “draw some simple satisfaction from the execution of a task well done.” Whatever you are making, even something small like a bottle, you can always find that satisfaction.