Helldiver Cosplay


I’ve attended gaming culture conventions like PAX East and MAGFest for many years, and one of the highlights is seeing attendees dressed as their favorite characters. Cosplay is a fun way to show how much a piece of media means to you, connect with others who share your passion, and to develop many craft skills.


(10/18/2025 – 1/6/2026)

Over roughly 2.5 months I produced a suit of armor to wear at MAGFest 2026, January 8th to 11th.

Cosplay project tasks

  • Set of B-01 Tactical Armor
    • Calf guards
    • Knees
    • Thighs
    • Chestpiece
    • Backpiece
    • Shoulders
    • Forearms
    • Tacpad
    • Helmet + Visor
    • Jacket
    • Cape
    • Belt Buckle
  • Liberator assault rifle
  • Sample container
  • Strategem orb
  • Super Credits

Throughout the project I learned tradeoffs and requirements of different plastics, as well as techniques for post-processing and painting 3D printed objects.

  • Material: PLA is known for easy printability, which reduces time spent on failed prints and testing settings. However, its low glass transition temperature of around 60°C means it can melt together rather than form particles when sanding. Filament vendor Polymaker sells a PLA variant called CosPLA specially designed to avoid fusing when subjected to sanding, which is what I decided to use for this project.
  • Fastening: While cutting large models into pieces, I discovered Prusaslicer’s connector tools to add mechanical dowels for rebuilding the parts. I picked up a can of 3D Gloop PLA solvent as well, which I heard from exhibitors at 3D Printopia was excellent for forming permanent bonds.
  • Post-processing: I learned a process for removing the layer lines of prints, and the grits/primers/paints needed. Along the way I picked up on relevant print settings to reduce the amount of work, such as reducing infill density while increasing number of perimeters, and using Prusaslicer’s “Automatic Infill Combination” to set the infill’s layer height as thicker than the perimeter height.

Creating a Custom Tacpad


Creating Interchangeable Nozzles

The two mating parts, nozzle in orange.
Excel calculator. Constants at top left, stock parts and performance characteristic on right. Design variations are described in the lower left table.
Stock o-ring design process.
Modified nozzle cross section.
Final nozzle test.

Printing

Core One L printing the dome part of a helmet.
Core One L printing the body of a sample container.
Before printing in final material, I created fit checks in random plastics.
Back plate cut into pieces to fit on my MK4S. Dowel connector pins join the parts.
Irregularly shaped part split for ease of printing. I use text embossing in the slicer to identify parts.
A whole bunch of parts in progress.
Chest part split across seven beds. I printed this part before getting my Core One L, which would have reduced the number of splits needed.
One chest part sliced. From trial and error I learned to use supports not only for overhangs, but also for additional stability on upright parts.
Helmet front plate in progress on my MK4S.
Finished print job.
Calf guard printed as a single piece. The Core One L is ideal for jobs like this.
Some scale context for the job.
Helmet dome printed as a single piece. This is close to the limits of the Core One L’s build volume.
Supports on the helmet interior.

Assembly

Most of my pieces were printed as multiple parts, so they need to be joined back together. I used 3D Gloop PLA adhesive to weld the parts into one. Use a respirator, gloves, and wear long sleeves when working with 3D Gloop.

Lower right plate of the back assembly clamped while glue cures.
I repurposed a clothes drying rack as a print curing rack with some flattened cardboard boxes.
All glued parts laid out. Some have been primed before gluing, which in hindsight is not helpful 😅

Retouching

Many of the seams left after the assembly process were oversized, so I used Apoxie Sculpt to fill gaps between parts and cover up visible glue seams. The compound was surprisingly easy to work with, like handling firm Play-Doh or Sculpey modeling clay.

Filling a gap between plates caused by the top part curling away from the bed during printing. The wooden skewer helped access tight spaces.
Filling detail seams in the right shoulder.
Front of chestpiece before sanding.
Inside of chestpiece before sanding.
Comparison of filler stages. Top to bottom: Overfilled, sanded with 60 grit, sanded with 400 grit.

Masking for Adhesives

Some parts (strategem orb, sample container, parts of the rifle) are made of small pieces that each only have a single color. For these assemblies I painted the parts separately and masked their attachment points to the largest/main body.

Overall masking guide I created highlighting contact surfaces.
Using an X-Acto knife to trim the mask.
Mask before and after trimming. Surface beneath tape stays in better condition for PLA gluing later.
Removing a similar mask after the main parts is painted (Charcoal Metallic) to add a rail.

Creating Stencils

I used my Cricut vinyl cutter in years past to create layered stickers and other small art projects. Using the vector image editor Inkscape, I created stencils of the decals for spray painting. I opted for paint over vinyl stickers as vinyl may struggle to adhere to a painted surface, would have a different surface texture/finish than the paint, and may not match the shades of white and yellow I use for the armor.

Before and after skull stencil.
Before and after chest emblem stencil.
Preparing the rifle decals.
Scaling the rifle stencil.
Skull stencil cut in paper.
Chest emblem stencil cut in paper.

Sanding

Every printed part needs a thorough sanding to remove visible layer lines. This can be reduced at the cost of longer print times by using small layer height, but a certain amount of sanding will always be necessary. Sanding was probably 40% of all the time spent on this project…not very interesting but required for a good end result.

I sanded in stages, 80 → 120 → 220 → 320 → 400 grit. For a mirror finish I would need to go further but up to 400 was about all I could stomach this time 😫 Didn’t take many pictures, as this part is pretty dull.

Wet sanding involves immersing the part in water to reduce heat and dust. I prefer power tools and managing the dust.

Priming

I coated all parts in a layer of Rust-oleum Flat Gray primer.

Priming some parts.
Try to finish outdoor tasks of your projects before it gets cold 🥶
Primed parts drying, indoors this time.

Learning What a Base Coat Is

At the start, I didn’t realize the best way to get a clean paint job is to base coat beneath all decals and accents first, then to put those details on top after. So my first try with the helmet went a little awry 😅 This was definitely a learning process for me as someone who had little experience with spray paints.

Masking for yellow stripes WITHOUT putting a base coat down first…
Please don’t lean your drying parts against another surface 🫣
Masked decal on the helmet came away looking quite messy.
Blurry lines are a result of the tape I used. Blotches and drips in the coat are consequences of me spraying too close to the surface, not letting coats fully dry, not moving the can as I spray, and leaning the part against my overspray shield.

I understand now that accents and decals are coats on top of a solid base layer. Expecting everything to perfectly align as a single layer is unrealistic.

Sometimes things look worse before they get better…
Sanding helps a lot on its own.
After priming, ready for another attempt.

The good thing is that cosmetic issues can usually be fixed without replacing the part entirely. I was NOT eager to go through the round of printing and sanding again 😥 Trying again, a bit wiser than before…

I printed a helmet stand (purple) to support the part from the inside and avoid leaning drying paint on anything.
Here I lay down slate gray on the brow, faceplate, and central stripe. This time, I paint beyond the features because I know I will cover the excess with new paint later.
When the slate dries, I use better quality tape (green) to mark the boundary of what will remain slate as I apply Charcoal Metallic.
After Charcoal Metallic is applied, a complete base coat is achieved.

Applying Base Coats

Equipped with an understanding of base coats, I gave every part a proper coat of its most prominent color.

Painting spoons as a way to compare colors.
Silver parts.
Charcoal Gray metallic paint was the most common color.
Some rifle parts getting Charcoal Gray.
Only these parts of the orb got full yellow.
Each color gets its own box.
Pretty much all the armor got a layer of Charcoal Gray metallic.
Closeup of chest plate.
Closeup of back plate.
Calf.
Knee.
Shoulder.

Yellow Accents

Just like how nearly all parts are primarily gray, most parts also have some kind of yellow mark to them.

A challenge I ran into while masking the knees and bottom of the chestplate was how to accurately mirror patterns on curved surfaces. I came up with a method using Post-It notes, which could wrap around the parts and be reapplied without damaging the surface.

I started by lifting some reference edges from the first freehand strips of tape by marking on the note with a pencil; the edge formed a darker line in the midst of all the scribble. Then I sketched out some concepts for the mask borders, marking the space to be painted with cross hatching fill. Once I had a layout I liked, I placed a new note on top of the template and traced only the borders in a pen. Finally, I placed another note on the pen template so the sticky strips touched, then placed the pair with the pen note on bottom onto a lightbox/LED light and traced the pen lines, producing a chiral version for the mirrored side of the armor piece.

Making a sticky note draft template for the lower chestplate.
Progressing through the templates. Draft on left, cleaned up version in the middle, and chiral/mirrored version on the right yellow note.
Placing the pen templates on the armor piece, using the topmost lines as reference to align the notes.
With templates in place, placing tape up to bottom lines.
With relative position of the strips fixed, I adhered the ends of the strips to the armor so I could remove the templates.
The result is a fairly precisely placed tape mask!
Body armor pieces masked to receive yellow accents. This time I used Frogtape (green) for sharp edges and painter’s tape (blue) for blocking large areas.
Yellow accent areas on the shoulder pads.
Removing the tape is super satisfying…
The Frogtape left much sharper edges.
Removing tape from the chestpiece and the resulting accents.
Masking the helmet for yellow a second time, a bit wiser now.
Looks promising…
So satisfying to see it bursting through the masking tape. Silver face vents also glued in place.
Parts after yellow accents are added. Helmet was done a bit out of order…

Masking for Silver/White/Black Accents

After doing yellow I moved on to the rest of the colors.

When it comes to curved edges, it’s better to just use the Cricut.
Now these nubs will look clearly bounded.
With lots of concentric shapes it can get confusing. I make notes to give myself a chance.
More circles? More Cricut.
Side elements getting their silver paint.
The shoulders get the fabric patch painted black, with the skull in white.

Adding Rubber Tactility

One cool idea I had was to make the grips and other high friction contact points of the rifle actually tactile, using a modeling tool and a leftover material I had from an earlier project. In PrusaSlicer there is a “fuzzy skin” feature that adds a lot of texture to surface(s) of the user’s choice. I selected all the grippy surfaces in the models and tweaked the settings to make the effect more pronounced.

Foregrip.
Butt stock.
Stock connector.
A preview of the fuzzy skin effect in PrusaSlicer.

From an earlier cosplay attempt years ago focused on EVA foam, I had unused cans of Plasti-Dip spray rubber. The fuzzy skin provides MUCH more surface area for the Plasti-Dip to adhere to, so the result is a grip that behaves and feels pretty close to the real thing. However, to keep the rubber feel it must be the outermost layer, meaning don’t apply a clear coat finish to it like the rest of the painted parts. Either mask the rubber region after rubberizing and clear coat the rest, or keep the rubber region masked and untouched since print completion while fully finishing the rest. I did both ways across my three parts that received rubberized surfaces.

I left the foregrip masked while painting the rest of the rifle gray. Removing the mask shows the raw print beneath.
I then masked everything besides the grip. Removing the masking after Plasti-Dip application reveals a rubber grip!

Applying Decals

The paper stencils I made earlier yielded mixed results. Without an adhesive backing to the paper I cut them from, there was always the possibility a gap would be left between the paper and target surface. I learned from the rifle label that this could be a significant issue for intricately detailed or tightly packed stencils. On the other hand, the skull stencils were alright, where there was primarily one shape to secure.

Similarly to the first helmet stripe, I removed the first rifle label attempt with a putty knife. Then I sanded the surface in stages up to 400 grit, repainted the base gray layer, and used a new stencil I cut on my Cricut out of Frogtape. As expected, this one produced a much cleaner result.

Setup for first attempt using paper stencil.
A gap between paper stencil and gray surface let paint travel between letters. The result looks really bad…
…so I scraped it off, sanded, and put a new layer of Charcoal Metallic down. There is a noticeable transition at the boundaries, but it is worth getting to retry the decal.
the skull looks OK. The soft feathered edge is a result of the imperfect contact, but not too bad.

To get rid of the bridge outlines, I apply the adhesive stencil and cut its bridges away. Then spray a few coats of white down. Of course, you could (and probably should) just start from a tape stencil to save time and get a better result anyhow.
Cutting adhesive-backed stencils using Cricut Maker and Frogtape laid over textured paper.
Some adhesive stencils after “weeding” (removing unneeded content).
Applying the new adhesive label stencil to the repainted rifle.
Seems like it went well…
This one looks MUCH better.
Messy result from layering straight strips.
Masking with Cricut-cut dot over silver to keep.
Spraying Charcoal Metallic over the excess silver.
Removing the dot mask shows a cleaner result.
Addding side decals to the helmet.
Clean result.

Paint Complete

With all painting done, I took a moment to lay it all out.


Vacuum Forming a Visor

Though fully painted, the helmet still needed a visor. Visors at 100% scale from Galactic Armory’s website were $50 each and I initially thought I was going to scale my helmet differently anyway, so I went the path of creating my own. I reached out to my local library makerspace and my alma mater UD asking about their vacuum forming capabilities, and was told none of them had working machines. And thus, the sub-project of creating my own vacuum former was added to this one. 😮‍💨

The ideal finished visor shape.
The idea is to get the greenish visor shape by pulling plastic over the buck, in orange.
Vacuum formers can get real big, but for this project I only need about a square foot of surface area.

Before you build, you gotta learn how these work. The “vacuum” part of the tool is kinda a misnomer, “suction former” would be more accurate. But it’s a familiar misnomer at least, wrong in the way that vacuum cleaner should also be called a suction cleaner. Some research later and I had a working understanding of what I was trying to build.

At its core, the vacuum former is just a box whose lid has holes and some other wall has a port to connect a typical shop vac. Plastic is prepared by clamping it in a thermally stable frame and heating the assembly in an oven until the plastic sheet starts to sag. Then the frame assembly is removed from the oven and swiftly rammed over the buck on the activated box. The visor will be significantly smaller than the stock plastic sheet, so the pull need not be perfect all across the buck, just the top surfaces. Anything unneeded (called the flash in injection molding and other forming processes) can be trimmed away.

My 3D printed buck, with contact surfaces sanded smooth to 400 grit.

My initial plan was to create the box mostly from MDF panels and only 3D print a port to connect the vacuum. Then I learned that MDF is porous enough that it needs a surface treatment to seal it, and that the addition of a baffle layer would help even out suction. I started to wonder why I couldn’t just print the whole thing. It took some doing to fit the large plates in the build volume of my Core One L, but after several hours I modeled up a concept. Because the parts are large, I didn’t want to risk not having something that worked, so I ended up making both.

Concept sketches for baffle layer.
Tongue and groove positions and considering how to assemble pieces together.
Isometric view.
Side view.
CAD model of suction port.
2.5 hrs later and it’s in my hand. 3D printing is just the best.

Before dedicating days of print bandwidth, I printed several versions of just the corner to test the fits of the parts. It was a good idea that helped me catch a few mistakes quickly.

The region of the model I cut for testing.
The test print geometry.
First test print.
Tongue and grooves were a bit tight.
Second test print with revised tongue and groove.

The frame for holding the heated plastic needs to be metal for thermal stability. The PETG sheets I ordered are 12″ x 12″, so I need a metal frame of that size to clamp the sheets tight. I got right angle aluminum stock from the hardware store along with some countersunk screws, a countersink bit, and flat corner braces for the frames. Things got a bit jank as I tried to use a hacksaw in my miter box, but several hours later I had a pair of appropriately sized aluminum frames.

Drilling holes for corner braces.
Keeping the pieces straight with labeled ends.
Using my 1-2-3 blocks to align the clamping faces of two segments as coplanar, and inner faces as perpendicular. It becomes clear that my corner cuts were not 45° 😅
Single, vaguely square frame.
Pair of frames completed.
Plastic sheet with protective films sandwiched between the frames.

With frames done, I returned my focus to the box made from MDF. I used my miter saw and circular saw to cut the large sheet down to the pieces I needed for a design to fit inside the frame. Because some of the 12″ x 12″ plastic sheet is clamped between the aluminum, the box actually needs to be around 10.5″ to a side at most, which I rounded down to 10″.

My cordless miter saw.
Cut parts.

I sealed the inner faces of my MDF boards with polyurethane to reduce leaking through the faces.

With the boards sealed, I needed to drill a lot of holes in the platen. I went with a scale paper template taped to the board.

Using a lamp as a lightbox to align printout template for platen holes.
Template in place.
When you’ve got 361 holes to drill, use a drill press.
Rough result.

The suction port used a template, too. I placed it on the underside for symmetry with the platen lid.

Suction port print installed. I added a layer of black EVA foam between the print and board to seal.
Inside face. Ran out of M8 nuts 😂

With each face ready, I started assembling them together. My initial attempts to use wood glue didn’t work, so I designed some corner clamps that ended up adding too much to the size. So with clamps holding the proper shape, I taped it together as best I could.

Outside corner.
Inside corner.
Adding tape.
Taped box just barely fits in the aluminum frame.

Now for the forming! I heated the oven to 380° based on very little at all, precariously balanced the frame on some upside-down loaf pans, and did a few pulls. Thanks a lot to my mom for being an extra set of hands, it’s tricky to move quickly while carrying the frame out of the oven. I can understand why professional products connect the heating and suction elements with rails…

Ingredients for a plastic visor.
Connecting the MDF box to a vacuum. Box is propped up to give suction port some room.
Using small spacers to raise the buck off the platen lets the holes located beneath the buck contribute to suction.
First pull. It cooled too long and I didn’t press it down hard enough 😣
The aluminum cools slower than the plastic so it’s helpful to have something to rest the frames on.
The four pulls I did, chronologically from left to right. I got the best results from removing the protective film first, heating until the center drooped 3-4 inches, and ramming the frame down hard through the box rapidly after removing from the oven.

These may look rough, but most of the plastic is cut away keeping only the top face. So all the wrinkling by the base will be discarded, making these good enough for this project.

Pull 1.
Pull 2.
Pull 3.
Pull 4.

It was at this time that the last job for the printed version finished. It went together pretty well, and though I had a usable pull from the MDF version I did a pair using the printed box to see if it had a noticeable effect. I wasn’t able to notice any difference!

Printed parts.
Assembling the layers.
Assembled box, without baffle insert.
Top platen of box.

With my pulls formed, I moved to dyeing the plastic dark. I used iDye Poly black synthetic fabric dye and made three visor candidates with different exposure lengths.

Stirring the pot after adding dye packets.
Dunking a pull into the pot. Securing on opposite ends of the pull is ideal.
The water is hot enough to deform the plastic, so it’s a balancing act.
Pull after 5 and 10-15 minutes of exposure.
Two trimmed visors.
Transparency is decent when looking at light sources.

Cape

The costume includes a cape and jacket, both of which require breaking out the sewing machine. I didn’t have much experience with sewing before this project, but learned a lot over the week or so it took to do all the straps and fabric padding.

A draft cape made from wrapping paper to test dimensions.
Unfolded draft cape.
Fabrics I used to make the cape.
Laying the cut duck cloth layer on the waffle knit.
Pinning the two fabrics together.
Waffle knit cut to shape, pinned layers ready to sew.
Sewing the cape.
Cape after sewing.

After sewing, it was time to iron on the emblem across the back.

Laying the trimmed decal in position and covering with parchment paper shield.
Transferred decal.

Jacket Kilt

In-game, each Helldiver has the front of a military jacket poking out from beneath their torso armor. Rather than make a whole jacket, I focused on just the visible parts as a kilt-style garment.

Concept sketches for the jacket kilt.
Fabric sizing notes.
Sewing trim on the corner of a test leather strip.
Using clips to secure the narrow trim.
Trim being attached.
All trim added. Time for belt loops.
Making strips of material into loops.
Adding loops to garment.
All loops in place, with belt running through.
Finished jacket kilt.

Final Assembly

With armor pieces painted, I figured how they fit together and make them at least modestly adjustable/comfortable.

Sketching out how to connect chestpiece and backpiece.
Reasoning out how to make adjustable straps. From my mechanical engineering background I found it helpful to compare to pulley systems.
Stitching a male buckle onto a nylon strap for the chestpiece.
Male buckle strap after stitching in place.
Chest/back buckle assembly, joining at brass tab. Left side is adjustable, right is fixed in length.
Stitching a friction slide onto a length of nylon strap for adjustments.

I added some fabric-covered foam as padding to the torso, forearms, and thighs to match the in-game models.

Foam and Velcro setup for forearms.
Devising a support system for the large and heavy thigh plates.
Transferring the rough forearm outline (in white foam) to final black.
Forearm padding was thin foam.
Chest and all other padding was thicker 5mm foam.
Chest front after fabric is sewn on.
Sewing fabric onto back foam. Probably not great for the machine 😅
Back after fabric is sewn on.
Thigh padding with fabric.
Installed into plate using Velcro strips.
Chest padding (torso is upside down).
Both chest and back padding in place.

I went through a lot of trial and error as I learned some basics of harnesses. Knees could be held in place with elastic straps and a Velcro knee wrap, but the shoulders were too heavy. I created a pair of armbands connected together to support the shoulder plates.

Foam and Velcro setup for forearms.

Wearing It

The time finally came to try everything on together! Although it’s a bit difficult to move in and gets really hot, I think it may be manageable.

So many pieces I had to make instructions!
I’m very happy with how everything looks.
Visor is surprisingly difficult to see through into the helmet.
Cape looking democratic.
Side view close.
Many pouches on the waist. Wearing no less than three belts!
I made a whole lotta stuff in only a few months!

Conclusion

I am thrilled with how I was able to finish the printed parts to match their appearance in-game! Unfortunately the armor pieces weren’t that comfortable to wear and Velcro was a troublesome attachment method. I didn’t consider just how hot and difficult to move in the finished setup would be, either. Now I know to consider how to wear the items as I work on them, rather than as an afterthought at the end. If a cosplay is too demanding in the best of conditions, then it won’t be pleasant to wear in public around others.

This project provided me with experience sewing, vacuum forming, and painting that will make my future cosplay even better! I hope to incorporate electronic motors or lights into whatever I work on next.