Magnetized Seraphon Stegadon/Engine of the Gods Build

31 Jan 2019

Here are some pictures of my newly created (and thoroughly magnetized) Warhammer: Age of Sigmar Seraphon Stegadon/Engine of the Gods model.

Saurus Stegadon - Sixteen Magnets of Fun

This miniature boasts sixteen magnets.

  • Four 1x1mm neodymium magnets for the mountable flamethrowers
  • Twelve 2x1mm neodymium magnets:
    • Two on the base to hold the spare Alpha/Priest
    • Two per Alpha/Priest (feet)
    • Two in the skink’s contraption to hold the active Alpha/Priest
    • Two in the Stegadon’s back, to switch between:
      • Decorative headpiece (used with flamethrowers)
      • Crossbow

The model can be converted between three configurations using magnets:

  1. Stegadon - with Flamethrowers
  2. Stegadon - with Crossbow
  3. Engine of the Gods

By adding magnets all over the model, I was able to achieve a dual-function model, something I’m quite proud of.

Saurus Stegadon - Color Scheme by Amanda Killingsworth Saurus Stegadon Saurus Stegadon
Saurus Stegadon
Guinness for scale, of course.
Saurus Stegadon
Six skinks steer Stegadon, semi-successfully.
Saurus Stegadon Saurus Stegadon

End Result

This was my first time magnetizing a model. I learned a lot. I’m writing this blog mostly as a way to recap what I’ve learned.

Lessons Learned

  • Use eBay to buy magnets. Amazon is not great.
  • Use a hand drill, not a powered drill, for more precision.
  • Don’t be afraid to use green stuff liberally to fill in your mistakes
  • 1x1mm magnets are not strong enough to hold much weight
  • 2x1mm magnets, on the other hand, are perfectly strong enough for most applications
  • Stick your magnets together and mark the ends with a sharpie.
  • Never trust your previous markings - always test the magnet polarity before affixing them.
    • I learned this multiple times.
  • Magnetizing things is fun!

Here are some pictures from the build:

Priming the model.
Drilling a shallow hole for my 1x1mm magnets.
1x1mm magnets are used for the flamethrowers. In retrospect, I would have used a 2x1mm here.
I drill about 2mm deep into the plastic with my hand drill, and then add a dab of superglue. I then place a small ball of green stuff in the drilled hole, and place the magnet on top of it. This method lets you angle and adjust the magnet - keep it flush!
2x1mm magnets are used everywhere else on the model.
The crossbow magnets - now 2x1mm!
Crossbow test fit. The Stegadon back originally featured two 1x1mm magnets - but they couldn't hold the crossbow in place. I had to dig them back out and replace them with 2x1mm.
Early test fit - everyone aboard! I had to make sure my models didn't end up blocking each other with all of the various configurations.

I can’t wait to use this guy in an upcoming battle. Being able to alternate between model types will be awesome for future replayability.

While the model technically is lacking an Engine, I’ve made up for that with lore! You see, the Engine on this particular model broke down many years ago and was discarded. The mighty Skink Priest was so clever and determined to succeed that he managed to channel the spirit of the Engine through himself.

So, the Skink Priest == Engine, on this model. Don’t think too much about it.

Seraphon Sunblood, Kroxigor, and Oldblood on Carnosaur

20 Jan 2019

Some great photos of my Warhammer: Age of Sigmar Seraphon models. All of the photos were taken by Nicole Griffin. The desert scene was edited and put together by Fulton Griffin.

Saurus Sunblood - Color Scheme by Amanda Killingsworth Kroxigor Saurus Sunblood Saurus Sunblood Saurus Oldblood on Carnosaur Saurus Oldblood on Carnosaur Saurus Oldblood on Carnosaur Kroxigor
Saurus Oldblood on Carnosaur - Edited by Fulton Griffin Saurus Oldblood on Carnosaur Kroxigor Front Saurus Oldblood on Carnosaur Kroxigor - Color Scheme by Amanda Killingsworth Kroxigor Kroxigor Saurus Sunblood

I am extremely happy with how my Kroxigor’s back scales came out! The Sunblood’s mace and shield are given the glowing effect with a liberal application of polyurethane.

Aggregated Summary Table VBA Macro for Excel - Merge Data from Multiple Worksheets

09 Jan 2019

The Problem

My girlfriend wanted to combine three tables in Excel. They all existed in the same workbook. There are three different tabs with data, all with the same headers.

The Failed Attempts

Somewhat unbelievably, it is very difficult to join these three tables in Excel and perform operations on the data. There are many ways to unsuccessfully skin this cat, including:

  1. Long IFERROR/INDEX formulas that bring data over from other tabs
    • Doesn’t allow for filtering or sorting, very breakable, not dynamically scalable to multiple sheets
  2. VLookups
    • Not very dynamic, doesn’t work for this purpose well
  3. Pivot Tables
    • Pivot tables don’t offer the ability to display raw data - only aggregate numbers.

The Working Solution

I ended up pulling together a VBA script to copy and paste the data from each sheet into the Master sheet. It is very simple. I cannot believe Excel doesn’t offer this functionality built-in.

There are a few steps to the script:

  1. It creates a sheet named “Master”, if one doesn’t already exist.
  2. The script clears the existing text from “Master” in preparation for the next step.
  3. It copies the content of each sheet in the workbook to “Master” - starting each sheet on the second row.
    • Starting on the second row allows you to use headers without copying them over.
    • Sheets are copied in the order that they appear in the workbook.
  4. Done! Enjoy your merged tables.
Contents of Sheet 3
Contents of Sheet 2
Contents of Sheet 1
The contents of the Master table, before running the macro.
The contents of the Master table, after running the macro.

If you don’t care about code and just want a sample workbook, here’s your chance.

The Code

Below, I’ve embedded the full contents of the macro that can power this feature. You can drop this macro into your Excel workbook and begin merging tables immediately.

The sample workbook has a button provided hooked up to ThisWorkBook.RunMe. The RunMe subroutine will create a “Master” sheet (if it doesn’t already exist), and then copy data from every other sheet in the workbook over.

If you want to extend this script, I have commented it pretty thoroughly.

If you want to change the name of the generated sheet, change the masterSheetName in the RunMe subroutine.

If you add more columns to your tables, make sure to adjust the subroutine ClearMasterSheet - it currently clears A2:H9999. Adjust to your needs.

AWS RTMP Live-Streaming/VOD Solution using MediaLive, MediaPackage, CloudFront, and S3

24 Dec 2018
My solution for streaming, high quality 360 video using the Media Services provided by AWS. This is a fully serverless, scalable solution.

Here is my working, production design for an AWS architecture capable of receiving 360 degree panoramic 8k video via an RTMP endpoint and live-streaming at varying bitrates and resolutions to various client devices. The architecture also includes an archiving step for users that may find it necessary.

Architecture Walkthrough

  1. The client records stunning 360 video (preferably using a Bonsai Excalibur) and uses OpenBroadcaster Software (OBS) to stream the feed to an AWS MediaLive RTMP endpoint. MediaLive offers dual ingest - two endpoints capable of receiving the stream.
  2. MediaLive saves the incoming live stream to .ts files in S3. This allows us to support highly durable storage of important video files. These files will later be moved to Glacier to save on storage costs.
  3. MediaLive compresses and transcodes the incoming streaming into various output formats that will support low and high bandwidth users. Everything from 320p to 8k video is supported!
  4. MediaPackage uses the MediaLive channels to prepare the videos for distribution to various devices.
  5. The live HLS streams are available via CloudFront endpoints - using a CDN cuts down on cost, and allows us to distribute high resolution video from low latency endpoints around the world.

Note: I am working on a CloudFormation script to automatically deploy this. More to come.