Wednesday, 30 October 2024

Building my Content Warning Cosplay


Hanging out in the underworld

At the end of August, I attended Toronto's Fan Expo. After a fun experience dressing up in my techpriest cosplay (maybe I'll finally finish my making-of post for that costume too), I started thinking of the plan for my next halloween costume. I thought it would be a fun idea to dress up as a Content Warning player character. I figured it wouldn't be too hard of a cosplay considering there are two primary pieces that need to be built. The O2 tank and the scuba helmet.

But that's when the scope creep nation attacked! Like any project, the ideas start flowing. What if we could light up the helmet? Change colors? What if the O2 tank had an actual functioning timer? Also, now my sister and friend are interested in joining in on the cosplay.

So. It's the end of August. We've got 2 months to pull this together. Let's take a look at the 4 main parts of the cosplay we need:

  • Scuba helmet
  • Oxygen Tank
  • Electronics
  • Clothing items

Doesn't seem so bad right? Well once we start really breaking down the nitty gritty of each part, we'll see there's a lot more to it than originally planned. Part of this to be fair is my own fault. Since I was going to have to be making 3 of these costumes, it meant that I wanted a lot more of these pieces to be accessible and repairable. So my design had to incorporate some ways to get at electronics especially in order to fix them if something broke. 

Note: though I am going to be explaining what I did in a decent amount of detail, this is by no means a comprehensive step-by-step guide.

Scuba Helmet

Completed helmet

 Parts that make up the scuba helmet: 

  • Foam
  • Adhesive
  • 3D Printed Front Helmet Attachment
  • Polycarbonate Sheets
  • LED/electronics assembly

The biggest design pain point for the scuba helmet was designing a round helmet. I'm sure for some cosplay experts out there this is a cakewalk. But I am no expert, so I went with a basic method of grabbing a globe and duct taping all around it in order to build a pattern. 

Prototype phase (model: my sister, Kiki)

In order to protect the globe itself, I first wrapped it up in a plastic bag so the duct tape would stick to that instead. I actually ended up doing this twice. As I realized that my very first attempt I didn't draw any reference points and it would be a major pain to draw them on a blank canvas. So I just built a test helmet to see if the size was something we wanted to work with. 

Version 2 pattern development

 For the second tape helmet, I used the reference lines of the globe itself copied onto the duct-tape. Once we'd decided on the sizes of all the holes and drawn them on the duct-taped globe, it was time to draw all the cut points as well so we could form a round shape out of multiple foam pieces. This involved a lot of guessing about where the best places to cut would be without a lot of notches to flatten each piece of tape.

Resizing the original helmet pattern
 But eventually we had the pattern marked out and all we needed to do was cut the pieces and copy the pattern onto a flatter piece of paper. I didn't take many photos of this part. And there was also a final protoype pass where we actually increased the size of the original pattern a touch to make the helmet larger. That was a massive pain as we wanted to make sure the holes remained the same size but we increase the overall size of the helmet.

Helmet pattern on foam and shaped cutouts
Next steps were to mark the pattern into our foam an cut out all the pieces with a scalpel. Once that was done, I used a heat gun to heat each part and pre-shape the pieces into rounder shapes. This way when we glue it all together with barge cement the pieces will roughly be in their correct shapes. 

Gluing the helmet shell together
This was also the first time working with an adhesive like barge-cement and I've got to say it works incredibly well. I've used spray adhesive before (for my tech-priest cosplay) but it doesn't hold together nearly as well as this glue. This stuff is toxic though so I did make sure to use PPE when working with it and kept all windows open in the house whenever I had to glue inside. 

Cutout plan for helmet peripherals

The next challenge for the helmet was planning out all the peripheral pieces. I needed to build the little side pieces that stick out as well as the front helmet visor support ring and the neck support. I mostly just winged it, using the helmet shell I'd already built and took a measuring tape to it

Proportion check and heat shaping

I was still figuring out some parts of this design so I just used the shell of the helmet to measure roughly how large I wanted all the pieces and cut them to size. The neck piece design at this point was still unfinished but I got all of the other pieces cut. I also tested my loose pieces on the helmet itself to make sure it would look how I wanted it to. 

Completed peripheral piece
Once that was done, I used my scalpel to cut a chamfer into the top pieces to give the attachment points that angled look. Then I heat-gunned all the long foam bars into cylinders and glued all of the pieces together. I also added a chicken-wire mesh to the inner ring so we could still get some airflow through the helmet but not have to leave it fully open.

Helmet with side and top pieces complete

The next step was to get these pieces glued onto the helmet shell itself. Not too challenging, just barge-cement it up and then attach. Had to be careful with the helmet visor cylinder the most since I wanted to keep it symmetrical. The foam wasn't long enough for the full length of the piece to be cut so the lower section was added later. 

Cardboard neck prototype design by Kiki
The last part of the helmet I ended up asking for help with. I was getting swamped finishing up everything else so Kiki stepped in to design the neck support for me. Since this was another piece that needed more organic design, she used cardboard to prototype a design.
Neck piece build process
Once we had a pattern built and we cut a foam prototype out, we put it on with the helmet and made a couple slight adjustments from there. Because the foam is thicker than cardboard it can sometimes change how good the fit is and we needed to adjust the shoulder points a touch. 
Helmet with foam work complete, unpainted

Being the perfectionist I am, I did a final pass on the pattern based off of our adjusted foam prototype to make sure we had a perfectly symmetrical design. Once those were cut, we glued them onto the helmet, added a neck ring, and added some foam to the inner helmet visor ring so our front plate would hold it's position better once attached. 

Helmet painting steps
I closed up all the gluing gaps with some plumbers caulk (foam clay is another good alternative, especially for large gaps) and then the helmet went for painting. I made sure to seal my foam with a heat gun. Then removed the wire mesh and used coat-hangers to hang the helmets up for easy painting. The painting layers were: plasti-dip as a primer, silver/grey spray paint for the highlights, tape up the silver, black spray paint or more plasti-dip for the rest, and finally a full coat of matte clear spray paint to add a touch of protection to the paint job. 

There are a lot of different ways to choose to paint your foam but I tend to be most comfortable with spray paints so I chose that method. You also get the benefit of leaving no brush-marks.

But that's it! The helmet's done! Or is it?

Front face plate how?
Let's finally talk about the front plate of the helmet. Where's it been all this time? How are we going to do this? Well, it's all been happening somewhat in parallel with the rest of the design. It was one of the first things I started investigating since it was the piece that could make or break the whole costume. 

The front plate had the following design considerations I needed to account for:
  • The full plate had to light up
  • Had to be able to see through it (at least a little bit)
  • Outside viewers shouldn't be able to see our face
  • Wearer shouldn't be blinded by the led's when it's on
  • Had to have a plate that could be marked up by whiteboard markers to draw the face
Testing variations of marking up a polycarbonate sheet
That's quite a lot of requirements. Now by this point I'd already figured out some basic LED light strip control (refer to Electronics section for details), so I decided I needed to prototype the plate. My plan was to mark up a polycarbonate sheet with a dremel. With LED's set up on the side the light coming in should be capable of refracting off of the marked points and helping to light up the sheet. 

I bought a small polycarbonate sheet and cut it into test pieces, marking up a couple different patterns into the sheet with my dremel to explore what pattern would work the best. I had to make sure that the pattern wasn't so tight we would be completely blind, but also not too spread apart that something like a whiteboard marker face couldn't be seen through it.

MVP Kiki for dremelling out all those dots (3x!)
 Eventually we settled on a very tight dot pattern. Originally I was trying to see if we could maybe get an acrylic sheet fully cut and etched by a professional company. But responses were incredibly slow so we had to go by hand. This pattern would take absolutely forever to mark up, especially onto 3 plates. Thankfully my sister came out as the MVP here. She dremelled the dots onto every sheet and then I drilled and cut the circle into it's final shape.
Solid Edge 3D model of the front faceplate
This circle actually had to be pretty precise. We needed to have a couple different layers of plating for the front visor, and then a place to actually attach the LED's into the correct position too. So I ended up 3D modelling the front faceplate to figure out the exact measurements we would need everything at. The copper looking part we would need to get 3D printed and that would be the main attachment piece for everything. I got my best friend to help me out here as she was able to print everything out for us.
Front helmet rings
Once we had everything, it was mostly just assembly and painting. I installed some heat-set inserts into the 3D part, glued it into the front plate, and then painted it.

Front plate assembly (from top right going counterclockwise): Foam plates with LEDs, M3 screws and washers, main front plate, thin protective sheet for drawing on, rear LED cover

Because the LED's are so bright, I also added a small ring to block off the light being visible from the inside of the helmet, adding aluminum tape to the inside to increase light reflectivity into the plate itself. We also chose to add a thin layer of window mirror film to the inside of the faceplate to make it harder to see the person wearing the helmet. 

The view from inside

To answer a question I'm sure a lot of people are asking. Can we see through this? Well... the answer is yes. And also no. When the lights are on and it's very dark then we are effectively blind. Lights off we can see. And during daylight it's not bad at all, even with lights on.

All done

With that, we just need a quick light test and to press the front plate into the opening. The helmet is finally complete!


Oxygen Tank
Completed O2 Tank

Parts that make up the oxygen tank: 

  •  Foam
  • Adhesive
  • 3D Printed Top Cap
  • O2 Level Indicator Assembly
  • Door Hinge
  • Electronics Bay
  • Nylon Straps

I made the decision here that I wanted the tank to be functional as well, so we could potentially store items within it and I could access the electronics bay if I needed to fix anything. This meant that suddenly there were a lot more design elements I needed to take into account. I needed a functional opening mechanism, a storage space for the electronics (I chose inside the top of the cap), and a sturdy enough design that it would hold together under some weight. 

Solid Edge model of O2 Tank

The tank needed the most amount of 3D design on my end, and to be honest I definitely over-engineered it. Since the entire thing was mostly just cylinders of various sizes, I figured it would be easy to just 3D model it out so we could get exact sizing cuts for all of the pieces. I modelled the tank in solid edge, similar to what I did with the front helmet plate. All of the copper colored pieces are going to be the 3D printed parts. I wanted to keep the 3D printing to a minimal level so I wouldn't have to rely too much on another friend who helped get everything printed (my 3D printer build is not complete yet). 

As you'll see further in the build, you'll notice that this model does not contain all of the elements that are going to go into the tank. I usually use the modelling phase as a way to gauge proportion and figure out the best positions and lengths for every part. That way I don't need to physically prototype as much (which you saw with the helmet shell and resizing needs). But most of the other elements I just figure out once the main tank is put together. 

Reference sheet and blueprint for parts

One thing we forgot to account for was the size of the walmart foam mats. These tanks were so big that a single mat was not actually long enough to cut the full cylinder out of. So we had to cut them in two parts. A couple of the larger cylinders on the helmet were the same way. 

3D printed parts courtesy of my bestie

The tank also needed the most amount of 3D printed parts. I will admit this was very much over-engineered because I decided I wanted this tank to be functional as a backpack as well. The top cap is capable of opening up so you can access the electronics and also throw some stuff into it.


I chose to use an overlay hinge for the opening mechanism. I wanted the hinge to be hidden when the tank was closed. Before I printed all of those pieces above I actually had a small prototype print made in order to test that my measurements in the solid model were correct.  

Epoxy coated 3D printed top-caps

You may notice that I actually messed up the print as I didn't have the correct Solid Edge export settings set up for my stl. The caps and rings were not perfectly round but we were able to work around that. I ended up using epoxy to glue the two top halves of the cap together and further painted the outer surface with it in order to help round out the shape some more after sanding. 

Foam cap install

These printed caps were heavy, luckily the foam toppers didn't add much weight. We cut the foam cap pieces and shaped those with a heat-gun. Glued them together and then glued them into the 3D printed cap itself. Honestly I wish I'd made the 3D cap walls thinner but it was too late at this point.

Hinge install and painted top caps
Next, I installed the hinges, using epoxy as thread-lock since I was threading machine screws directly into plastic. These things would not be coming back out. Once those were installed the caps were also painted and ready to go. 

O2 tank beginning of build
The main tank cylinder had some pretty large foam pieces that took a bit of work with the heat gun to round out. We glued the largest piece onto the 3D printed cylinder support rings and used tape to make sure all the ends were sticking properly. To the side you will also see the missing o2 timer piece. It was prepped with small 3D printed end-caps to support the led light strip and a Mylar plastic cover on the outside to protect and diffuse the lights. 

Backpack strap prototyping and support plate install

Before we could install the final piece however, I wanted to make sure we figured out where we could install the backpack straps and make the holes for that. While doing that I was also pretty worried about the strength of the foam and wasn't sure if it would be capable of holding up to the pressure the straps might put it through. So we got some scrap plastic sheeting and added a backing plate into the tank as well. 

Front O2 light install
 Next was the install of the front O2 foam piece. We had to be really careful with the barge cement here as any tiny mistake with placement would cause very visible deformities on the edges. 

Rings and bottom cap installed, painted
Gluing the rings and bottom cap on was much easier. You will also note I added some construction glue to connect the backing plate with the ring. I'm not sure how much extra support that would add but I figured it couldn't hurt. We also added velcro to the backing plate and nylon straps so the backpack straps could be removable. This was the moment we painted everything too.

O2 tank top cap install
Finally, after the nylon backpack straps were attached we installed the top cap. The tanks are almost complete now!

O2 led light bar

The last piece of the puzzle is installing the electronics. The first thing that needs to be installed is the O2 light bar that will go in the front of the tank. I used some spare polycarb for the actual bar that I taped the led strip to. I also added some reflective tape to the back and then used M3 screws to install them into the tank.

Electronics install into tank
Finally, I had to install the electronics bay. Again just a bunch of M3 screws and washers. The battery pack is installed on the outside so we can easily replace batteries and turn on/off the circuitry. And with that, the O2 tank is done!


Electronics

Final electronics assembly

Parts:
  • Arduino Microcontroller
  • Arduino Shield
  • HC-05 Bluetooth Module
  • WS2812B RGB light strip (I went with a 5mm wide 120 leds/m strip)
  • Resistors
  • Capacitor
  • 5V Power supply (4x Rechargeable batteries)
  • Velcro (for attaching all the electronics to the wood board)
Software:
  • Arduino IDE
  • MIT App Inventor

Let me say right at the start that this is in no way the best or most optimal electronics design. There is a lot here that can be improved and adjusted but I was limited on time and the amount of iterating I already did was a lot so I had to take shortcuts at some points.

Prototyping


Test LED on/off circuit
For this project, I needed to do some testing and prototyping to figure out how best to make our setup work. It's been a while since I made any Arduino projects so I had to re-learn some of the basics and so the first thing I did was try to build a bluetooth controlled on/off led. It was pretty easy to do by following a guide I found online. 

Failed attempt at Android Studio App
For the controller, I originally wanted to create an app with Android Studio. After a lot of struggles trying to figure out kotlin and if I wanted to stick to xml or move to jetpack compose, I ended up giving up. I didn't feel like I would have enough time to properly learn the new syntax and code language as I don't have a ton of experience with app dev.

My first MIT App Inventor App
Instead, I chose to move to MIT App Inventor. It is more of a 'codeblocks' style code development tool but it was very easy and intuitive to learn. I was able to build my first bluetooth led control app following a guide and knew this would be the tool to use for my very short timeline.

Once that was figured out, I renamed my bluetooth controllers so each of my friends could identify and connect to their specific one. I also changed the default pairing password. 

Further Testing and Debugging

First LED strip prototype
Now that I have my code tools decided, I added a test LED strip to the Arduino circuit and got started on building the full app and Arduino code. There are two main parts of the code that I need to build: the helmet light controller and the O2 tank timer.

 
Neither of these bits of code are particularly difficult. But there were a couple road-blocks I still needed to solve. The bluetooth serial-read function is pretty limited, and I wanted to pass multiple bits of data over. I also wanted to run some operations in parallel but the ATMEGA chip cannot run multi-threaded tasks. Both of these issues were resolved with the help of some googling! To save you the effort, I will link the two posts I used that helped make my arduino code function: 

Read serial data onto the Arduino: https://majenko.co.uk/blog/our-blog-1/reading-serial-on-the-arduino-27

Perform imitation multi-threading by using timer variables: https://docs.arduino.cc/built-in-examples/digital/BlinkWithoutDelay/

Controller App V1
The app itself ballooned into a pretty big project as well. With just my first version already being built up of quite a few code-blocks. This is really where the scope creep started hitting. As I was considering what sort of control options I'd want to give the user. This current version of the app is capable of setting the helmet light color as well as setting a timer for the oxygen tank lights, this timer can be set at a halfway point too so you're not stuck having to start from full O2 every time you want to change something.
Circuit Diagram
 
Now for the circuitry. I didn't want to keep having to mess with the breadboard and trying to debug issues when one wire might randomly come loose and break everything. So I built a circuit diagram, and decided to use an Arduino shield to solder all the pieces into one complete unit.

Note: This circuit is by no means the best solution out there. I am risking my arduino by feeding power directly into the 5Vin pin and relying on the rechargeable batteries to stay near 5V of power. You DO NOT want to use normal 1.5V AA batteries in this setup as 4 of those will hit 6V and very likely break something.

The atmega chip itself can handle some more voltage fluctuation so it would have been safer to just program those and directly solder them to a perf-board with a quartz timer and etc. I was being a bit lazy with the design and also didn't want to use two separate power sources to feed the arduino and LED's independently.

Circuit build with Arduino shield

I started off by just soldering up one shield that I would use to continue testing. I had short LED connector cables soldered into it so I could continue testing and working on the code with two light strips. This would let me really get into being able to code for the interactions between the two strips and what various android app commands could do. 

And that's where things really started growing. I let scope creep win here. I added a second color-picker that was a color-wheel. I added a brightness setting to it. I added an intertwined death button that would send a command to flicker the helmet light off to mimic dying. We played some more content warning and I realized the O2 timer changes color from white to yellow/orange/red the closer it is to running out so I had to quickly add code to handle that too. It was a ton of fun though figuring out all of the logic between each command and intertwined step took a little doing.

Final Electronics Setup

Top view of electronics assembly
I didn't finish the electronics until the very end of the cosplay build. I needed to wait to get most of the rest of the costume complete so I could figure out what length I needed the LED connector wires to be, and then I just had to add an additional sneaky hidden button into the code at the end too. 

Final app design

My app had grown and I had 4 screens that were working in tandem. I also added small customizations to each persons code. Such as starting with their preferred helmet color on boot. As well as each person having a custom App icon. It took some doing but it got done and I'm glad I chose MIT app inventor. It may not be the most sophisticated tool out there but it's fast and it's easy so it was exactly what I needed.

Arduino IDE code snippet of O2 timer
The Arduino code was full of functions that just barely made sense to me. I'm just thankful I added comments with links to all the other pieces of code I referenced in my own so when I forgot what something did I could always go back to check.

I'm no expert at coding or electronics. I know there are plenty of points where I could probably have written cleaner code or improved my circuit. But at the end of the day my solution works! And I'm proud to have managed to pull this off. 


Clothing

The Uniform
Parts: 
  • Black Work Coveralls
  • Black/Grey Utility Belt
  • Black Gloves
  • Black/Grey Boots

Honestly nothing super special here. We chose to order matching work coveralls and utility belts so our costume would remain consistent. We just looked for the cheapest stuff we could find off online retailers. Gloves and shoes were whatever we already had on-hand. 

This part of the costume could have gone both up or down in price. It would have been pretty easy to just wear a black hoodie and pants to create a similar vibe and not spend any money but then we wouldn't match as well. I could have also tried to make oversized shoe covers to match the grey boots the characters wore but frankly by this point we were low on time and I was tired from all the work I'd already done.


Props (hidden 5th item!)

Content Warning is a game with lots of fun props you can run around with! Guess who did none of that work? Me!

As you can probably tell, I was pretty swamped doing the majority of the work on the main costume. So I left most of the prop building and design to my friends. Here is what they completed!

 Camera

Chris built this incredible camera out of cardboard and boxes! you can even put your phone in the slot so you can be a proper Spooktuber!

Radio

Another fun creation courtesy of Chris! The radio is a box that can still open so you can put a bluetooth speaker into it. Time to dance to the beat while getting some cool monster footage!

Shock Stick

One of the best tools in any Spooktubers back pocket. This piece is brought to you by Kiki!

Microphone

Gotta interview those monsters somehow!

... I made this one. I swear, I can explain!


Final Thoughts

Helmets fit perfectly on top of the tank!
When I got into this project at the start I really didn't think it would take as long as it did. Or be as much work. There was a lot to do, and as the person with the most amount of relevant experience and tools, I did end up doing the majority of the work. 

It was worth it at the end of the day. I like challenges and I like to build things.But I think for the future I might stick to more solo projects. Putting together 3 sets of the same thing holds less appeal to me than just trying to kludge one thing together enough to get it all working. I'm the type of person that wants to find new challenges and new problems to solve, I don't like repeating what's already been done.  

For anyone that read all the way to the end, phew! That was a marathon. I wrote a ton and I know I still left things out. Thank you for your time and taking an interest in my little project!


Links/Promotions

If you guys want to see more stuff from me and my friends, whether it's related to this cosplay or other things we do, feel free to check us out in the following links!

Kiki:
Tiktok: @runkiwirush
Instagram: runkiwirush

Chris:
Youtube: @Chr4ce
Instagram: c.lamboni