Destiny Ghost Lamp: an Exercise in Practical CAD
by chimerical in Craft > Reuse
108 Views, 1 Favorites, 0 Comments
Destiny Ghost Lamp: an Exercise in Practical CAD



Destiny 2 is a videogame where you wrestle with deep questions about humanity, forgiveness, and morality, but the real game is making sure that you and your tiny robot follower have the nicest outfits possible. To reflect this fraught balance, I thought it would be fun to make a a functional desk lamp shaped like the Ghost.
"Doesn't this exist already?" you might ask, and you might even provide lots of links to inexpensive kits available on multiple e-commerce platforms. And it definitely does! But I could totally make it myself. It would take way more time and cost way more money, and ... well, at least it would be pretty fun. Right. Right?
I also wanted some features in this lamp that I haven't seen in other products:
- Useful improvements (requirements):
- Usable as an actual lamp, i.e. for reading or scope-creeping on other craft projects. This mostly means brightness, but also area of light affect.
- Madness and scope creep (features):
- Has a color mode (blue) to match canon, as well as a neutral white/yellow mode for everyday functionality.
- Has swappable shells (outfits). The ghost is actually a little grey ball, which is not an incredibly compelling CAD challenge on its own; however, it has several customizable shells that you can put on it. The most iconic is the white "generalist" shell, which is highly geometric, but my partner's favorite shell is the Ladylike shell, which looks like a cute little ladybug, so I want to make that as well.
- It should be possible to switch between shells without major disassembly/tools.
- It should be possible to, long term, create and add more shells beyond the two we're starting with (Generalist and Ladylike).
- The rear half of the generalist shell should be able to spin on its central axis. This is not helpful as a desk lamp, but is how the Ghost gets around in this shell, and feels pretty iconic.
This is, broadly, a pretty cut-and-dry 3D print -> done project, and it's fairly light on the crafting side of things. However, if I actually want to pack all of the features above into a small footprint, there's a lot of CAD to dive into--and, surprisingly, none of those convenient e-commerce versions have 1) published STLs or 2) felt the need to make the cute little ladybug shell or any of the other scope creep features I wanted to add, so. It's time to get modelling.
This is, of course, presented with the benefit of hindsight--there's a bunch of deleted sketches, delete-face-17s, and erased/suppressed features in the tree that I'm not going entirely into detail here. This definitely was a messy feature tree for a while. However, I'm going to do my best to describe high-level thought processes--I think a major part of progressing up the CAD skill tree involves moving from knowing how to model things, to thinking consciously about what to be modelling.
This modelling writeup uses SolidWorks (sorry), but most of the heavy-hitting features being used are universal to most engineering-oriented CAD packages. My focus here is primarily on pointing existing 3D-modelling knowledge into practical design--this is, again, less about how to model and more about when/what/why to model. There are plenty of good tutorials for your CAD package of choice, but I'd consider this writeup geared towards intermediate/advanced modellers.
Supplies
- Mechanical:
- 3D printer filament
- Salvage lamp(*)
- Depending on your exact lamp, you may also need to obtain mating hardware. Lamps in my area use 5/16-18 threads; you can either thread directly into the print (possible) or see below for interfacing with 1x 5/16-18 nut.
- Neodymium disc magnets (I used 9x2mm, but follow your heart)
- "Electrical":
- E26 PAR16 light bulbs (I use this one for color changing, though I've switched to this one for dramatically improved lifespan)
- E26 socket (I used this one)
- 14-18ga wire, 24-48" (length depends on your salvage lamp; at these voltages, gauge mostly depends on what you've got handy)
- Crimp splices or wire nuts
- Misc spray paint (white, grey/silver, and a bright red will cover your bases for the main skins; yellow/orange, white, and black will be used for touchups)
- Optional: Weathering washes (black and red)--folks in miniature painting would have you know that you need something ultra-specialized for this; I've been using $2 watercolors for years with great results
- Optional: Clear coat--I layered this in with watercolors on top of the base to give the Ladylike shell a very car-like, enameled exterior
- Hardware: 6x M3x0.5-8mm button head screws, with 6x M3x0.5 plastic inserts
- You can also thread directly into the plastic if you're feeling frisky.
- You can swap these back to #4-40 to avoid the heinous convention of metric/imperial hardware (since the lamp hardware is much harder to change), but bear in mind that we don't need tools to access the lamp hardware ever again, so this is primarily in metric.
- ~50x50mm squares of parchment paper ("we have light diffusers at home")
What's this about a "salvage lamp"?
Great question! You can probably make the whole lamp and body from scratch. I might even be able to do that. However, I had a pretty specific (read: expensive) design aesthetic for this in mind: I wanted the Ghost to be pretty much floating in midair, so I wanted a pretty long/dark/slender gooseneck desk lamp style.
The gooseneck alone is about $15-25. I'd also need to get a nice, safe power cord with a switch, which runs at least $10, and probably a bit more for one that looks/feels nice. And then the base would have to be a similar color and quality, probably some sort of dark powdercoat (glossy) or maybe something anodized--this could maybe be done with some really good spraypainting and hiding rocks in the base for counterweight, would probably cost between $10 and $90 depending on if I wanted to go full metal vs 3D print ... but at this point I am literally describing a lamp.
So I wandered into my local goodwill shop and bought a little LED lamp with the features I wanted (long dark gooseneck, classy looking base, some sort of power switch in the cord), for maybe $7. The socket/light side fell off while the cashier was ringing it up, which saved me the step of figuring out how to remove it! And I found a tiny cowboy hat that I think would look great on this in the end. Awesome.
I forgot to take pictures during this part, but effectively, this style of gooseneck lamp is a long, hollow tube that is connected to a base. Mains power runs through the base, up the tube, and connects to the socket. This is the case for most desk lamps. Seems pretty straightforward--we can just find the shortest possible socket/bulb (so that the Ghost isn't too large) and basically build a little shell around the socket/bulb to form the Ghost. If we're smart about it, we can also make sure that the only place we have to join power is in the base, where it'll be neatly tucked out of the way. Let's go with that for now!
This does pose the unique attribute of making this Instructable not entirely replicable, sorry! However--again I think the heavy lifting here is done in CAD-land, and I'm happy to give a much more documented breakdown on how all of that shook out, which should give you more than enough tools to customize things the way you want.
What's this about color changing lightbulbs?
Imagine my surprise to learn that not only have we switched to easily-obtainable individually-addressable LEDs, but we've also done them in compact lightbulbs. I had this whole convoluted plan to run a bunch of LEDs all throughout the inside of the Ghost and then make a PCB in the base to handle color switching, but this is way easier and less expensive. The bluelight feature ends up being one of the easiest features on the list, which leaves plenty of time to scope creep the other ones.
Planning Your CAD



I find it's really helpful to think through CAD by what pieces I need to have in the final assembly, how they'd interface, and what needs to go with what. For starters, we know that just the base Ghost (the little silver ball) needs to be standalone, and the Shells are purely accessories and shouldn't be handling any of the major lighting/functions, so we can start with just the things that the Ghost should be doing.
The rest of this process is often guided by starting with the constraints/features/requirements that I've put on myself for the design, though in this case there's also the unspoken constraint of "looking sufficiently like existing IP" that sneaks up in every line item. Let's start there.
The Ghost only has three splitlines, which implies at most four parts:
- The front half.
- The back half.
- The front cap.
- The back cap.
The caps are flat instead of spherical. The caps are mostly identical to one another, and the halves are also mostly identical to one another. We could technically have more external parts, since this lamp is unlikely to exist as unshelled Just Ghost, but that means more seams than technically canon, and the perfectionist in me cannot abide by this. So let's start with the 4 core parts and start looking at our constraints:
- Swappable shells:
- Conceptually this is always solved with "magnets". Today is no different.
- The base Ghost has 8 little divets on its body, that conveniently line up with the 8 polyhedra that form the Generalist shell (it's almost like someone designed in that way). 8 also feels like a good number and gives us shell engagement in every direction, so let's stick with that.
- The divets and the curve of the shell also give us access to built-in clocking, which will be helpful for making sure that things don't spin around--two divets and the spherical curve of the Ghost will completely constraint a Shell placed on just those two divets.
- The divets are tangent to the surface of the Ghost sphere, which means we probably want to leave the Generalist pieces as 8 separate ones (rather than doing them in pairs or halves/4s).
- If there are magnets between the Ghost and its Shells, we'll need internal access to both of those pieces. The Ghost was going to need this anyway, and it's probably best practice to print the Generalist shell as a shelled surface (say that 10 times fast) to use less plastic, but this is important to keep in mind--we can button everything up at the end, but if we don't want the magnets to be visible at the end (we don't), we have to be able to put the magnets into the pieces at some point.
- Bulb access:
- I actually didn't list this as a requirement when I started, which is silly--let's add: "should be able to switch the light bulb without tools or disassembling everything" to the list of must-haves.
- Looking at the Ghost design, there's a few natural breakpoints: the front and back halves are pretty distinct. We could probably leave the back half fixed to the lamp gooseneck and have the front half uncouple, leaving the socket exposed. Seems simple enough.
- Wait, but--the rear half needs to be able to spin.
- Thinking this through, this is actually a terrible feature request. We could fix it with a slip ring, but:
- I do not want to implement a slip ring for a lamp that I dug out of a goodwill bin.
- Also, I do not want to have to keep replacing cheap slip rings in my lamp for a throwaway feature that no one asked for.
- So this means we should rethink some things! Let's look at some unspoken constraints that this feature is revealing:
- The socket should basically be hardwired to the gooseneck (and by extension, power), with no moving interfaces between it and mains.
- The lamp gooseneck interface is a single, hollow 5/16-18 threaded connection.
- Looking at the parts we have available to us, it seems clear that we need the rear half to rotate on something. The Ghost geometry is radially symmetric on the socket axis, so I think there's some potential there:
- The socket itself: technically feasible, and in the right area, and intrinsically I know the socket is ceramic and will probably outlast the prints, but it pains me to even consider using an electrical component as a mechanical wear surface.
- This probably leaves--a new 5th piece to serve as a shaft. We probably want something that's rigidly fixed to the lamp gooseneck--but we need the socket to be included on that, and the lamp gooseneck only has its own point of interface.
- We can get around this by fixing the socket to the rear cap, and then fixing the rear cap to the socket while pinky-promising not to pull the wires too tightly. I went back and re-specced the socket to find one that had through-holes that we could use (the BOM above is correct) for this purpose.
- This mystery 5th piece, a shaft, could just be the front half, since they need to be rigidly connected, but:
- We still need to access the inside surface of the front half to put magnets in the divets. We could do strategic keepouts, but:
- I'm 3D printing this, and it would be a pain to remove all that support.
- This all kind of works, in the sense that we should probably prototype some CAD and see how badly it goes, but now we've unanswered the bulb access question--under this solution, the front half is now rigidly connected to the socket via hardware.
- We could probably fix this with magnets, but at the same time I do want the front half<>shaft connection to be structural. If the magnets hit that sweet spot of weak enough to be removable, but strong enough to stay intact during operation, great; however, I still don't want to have to disassemble core structures of the lamp to change the lightbulb. This project is already deranged enough.
- We could consider using the front cap as a breakaway point--if the opening is just large enough for the bulb, we could remove the front cover and then delicately unscrew/remove the bulb for replacing.
- This is less ideal, and requires a bit more precision (and probably kills the punchline of several "how many X does it take to change a lightbulb" jokes), but it's better than slip rings, so let's go with that for now.
This line of thinking broadly leaves us with designing the following 5 parts:
- The front half
- This is mostly unchanged, but now will need some hidden/internal mounting features.
- The back half
- This is mostly unchanged, but will now need its own internal rotation axis.
- The shaft
- This is a new addition, and is hard-mounted to the front half.
- It also will have a concentric/rotation feature with the back half, and has a lip/bounding feature to prevent the back half from moving too far forward.
- The front cap.
- This was almost entirely aesthetic, but now provides the primary access for changing the light bulb. We'll probably want a bayonet feature, like a camera lens, or some other hidden but easily accessible removal feature.
- The rear cap.
- This mates to both the socket and the gooseneck
- This also mates to the shaft.
- This also has a lip/bounding feature to prevent the back half from moving too far backward.
All that work to add ... one extra piece? It doesn't seem that dramatic even spelled out like this, but we do have a much more firm idea of what we want to make now.
(did you really go through all of this thought before making a single sketch in SolidWorks? no. not at all. do as I say, not as I do, and you will be saved hours of madness.)
Starting CAD




5 parts is a good number for a basis--this means we can probably keep everything in a single part file, rather than messing around with passing information back and forth between files. This is generally called multibody part design, and is useful when we want to be able to have a lot of linked information, such as keeping the front and back half the same size, or making sure that the hardware holes line up between the rear cap and the shaft.
I like to start with blocking out my major keepout zones--for example, we can't edit the circumference of the socket or the height of the lightbulb; ideally, we'll be building around them instead. I like to just block those areas out in CAD with funky-colored surfaces, to remind myself not to pass screws through the power cord or something later. I use the first sketch of the model to lay out the important keepouts, and also to set up some other useful heuristics via global variables, including:
- The typical thickness of the part (1.5mm--this is a bit smaller than usual, but I feel like the hemispherical shape of most of the parts will impart a lot of strength)
- The minimum thickness of the part (here, also 1.5mm)
- The dimensions of the socket
- The dimensions of the light bulb
- The areas I want to clear for wires
We can also easily start to set up a general sense of size now. When the light bulb and socket are fully assembled, their end-to-end length is about 80mm; we can circumscribe them and see that, accounting for part thickness, the overall diameter of the Ghost would be 94mm. This is a bit bigger than I'd been hoping, but it's not showstopping large, so let's proceed with that.
This one sketch is pretty dense, but it also lets us knock out the next four bodies pretty quickly, since they're just simple revolves off of the main sketch.
Core Geometries and Rotation






Next, we'll want to add that support/spinning feature onto the front half, in a way that makes it possible to print later. I'm planing on doing this by splitting it into two pieces, so there's one half dome piece, and one hat-shaped piece that forms the rotation shaft. We'll want to add in some bosses for the screws, and drop some holes in there for our plastic inserts. 4 should be plenty for a piece of this size. We'll also start roughing out that plate and rotating surface. For aesthetic reasons, I've put the plate as straddling the split lines (this should help hide any light shining through across the front/back halves), and for clocking/extra stability, I've sunk the plate in a little.
Let's clean up the end caps a little bit. Both of them are in need of some 3D print clearances, and the front one is going to get a little quarter-turn lockout--this lets us swap lenses later (so we can have one front cap that's just a light diffuser, and one that's got the Ghost/Destiny logo and a light diffuser).
Turning to the back cap, this one is slightly more complicated--we'll want to give it some support structure to mate to the gooseneck, and we'll want to attach it to the central shaft and the socket. The first one will be solved with a hex cutout for an inset nut--we could thread the plastic, but this is way easier. The socket will get screwed in from the inside. We'll also drop in some through-holes to mate with the rotating shaft, Dropping some fillets on this cleans things up a little. I don't love that this has visible hardware, but the 4 screws here between the rear cap and the shaft are holding all the weight, so better safe than sorry. At this size we could definitely get away with 1-3 screws, but 4 at least feels reminiscent of the rest of the Ghost's geometry, so perhaps it'll look a little more intentional.
Magnets and Booleans







The divets on the Ghost are pretty integral to its character design (it's. just a ball otherwise. so the bar isn't high), so adding these in helps a lot with the character, and we'll be using these magnet divets for all of our shells in the future. We can rough out a shape on the same plane as the main sketch for where we want the divet to occupy (this is the material we'll need to remove from the shell), and then another shape, also on that plane, for the divet itself (this is the material we'll add back to the shell).
We could technically do this with revolve cuts and then revolve extrudes, but the placement of the 8 divets means we need at least 4 axes of symmetry to perform that--which basically means 4 revolve cut/extrudes, which means that if we want to change these features later (which we will, it's prototype CAD), we'll need to edit a minimum of 8 features.
However, if we treat these changes as a pair of bodies, we can then rotate just move the completed add-body and subtract-body to the 8 locations we want--and we will only need to keep adding or editing those bodies for the changes to propagate.
Speaking of changes, we're going to start adding in little magnet holders--since the only force they'll be seeing is pulling on them outwards (through the shell), I'm planning on just press-fitting them into place on the inside, and using the compliance of the plastic to hold them in. I'll also throw in some vanity fillets and ribs for support, as well as a nice little lead-in chamfer to guide the magnet during placement.
We can also go in and add a few little revolved cuts to this body, and some seams. This doesn't really do anything mechanically, but adding the appearance of parting lines will add the appearance of complexity--for cosplay-adjacent things like this, especially in a sci-fi setting, it's crazy how quickly these details stack up (or get buried and never noticed).
We can then go ahead and drop in a circular pattern around the main axis, and a mirror pattern across the front/back, to get a feel for how the halves look. And we can also immediately place them in a different location--originally I had them on a 45 degree tilt, but it's pretty clear that that'll get cut off by the front and back caps.
An Interlude in the Real World: Fit Checks, Sizing, and Wiring







At this point, I find it helpful to pop out a 3D print and get an idea for form and function. We've decided that 94mm is "okay enough" as an outer diameter; is that the case? How does it feel with an appropriately sized Generalist shell? Did I leave any interferences in by accident? How are the clearances? How does that really arbitrary quarter-turn fitting feel on the hands?
(it's kind of large; let's see; yes absolutely; 3D prints are self-sanding if you believe in yourself; it's okay for tiny people with tiny fingers)
To help with our physical fit checks, I went through and roughed out a size-accurate-ish model of what I wanted for the Generalist shell, using really basic extrudes/cuts to form the rough shapes. I have a hunch that getting the true geometry in Generalist shell is going to be a bit of a pain, so I'm mostly just putting out some blocks that are roughly the right size--I'm going to be prototyping this with a paper flat pattern, so the nuances are going to be destroyed anyway.
Once we have the paper flat pattern, we can fold up a few and stick them to the sides of the Ghost to see how big it'll look at full muster--it's definitely on the cusp of "perhaps larger than I'd expect for a lamp", but it's not quite large enough for me to jettison all of the work I've put in so far, so we'll keep rolling with it.
Also not shown are a few intermediate steps to the core 3D prints, like adjustments for fits/chamfers. Overall it went together way more smoothly than I thought, so now tragically I can't even bail on it.
In this process, I ended up placing the socket--this entails removing the initial wires it came with, as they were too short, and adding on longer ones. The socket model linked uses screw terminals, so perfectly safe at the top. At the bottom, I cut the original cord and crimped on the new wires. The socket and rear cap are then screwed together permanently. I did some quick checks with the light bulb to make sure I hadn't managed to mess up two (2) wires (happens to the best of us), and also did another check with the socket, light bulb, and 3D print assembly wrapped in a cloth to simulate a really bad heat load, to see if the LEDs would have issues with a few layers of plastic. I also cut some "diffusers" from my parchment paper and attached them to the inside of the caps.
It didn't look like there were any overheating issues, so there's nothing stopping us from delving too greedily and too deep in the CAD mines again!
The Generalist Shell








I have a hunch that getting the true geometry in Generalist shell is going to be a bit of a pain
I had no idea.
Edison once said he found 1001 ways not to make a light bulb. I found about 6 ways not to make this specific lampshade shape in CAD, so. Maybe there's hope for me yet! I'm skipping the first 6 attempts in the name of keeping this writeup from becoming a small novel.
This was, at its core, a surfacing question for me--the issue was just, how to make surfaces that were radially symmetric and also looked correct. A big realization for me was that the pieces actually form a triangle across the centerline, and the entire shape is basically two interlinked V's, which is how you can get them to form rigid lines in the circular pattern--if that doesn't make sense in words or pictures, don't worry, it took me forever to figure out (and may even be wrong. the joys of design).
From there, we can subtract out the Ghost main shell, and also add in our magnet boolean to make a piece that will mate with our sphere/divet combination. This is, in a literal and metaphorical sense, only half of the problem, but it's a huge improvement off of the first 6 or so attempts to make the shell.
The Generalist Shell, Part 2








Remember ages ago, when we talked about needing to do something with the Generalist shell parts to make the magnet install locations accessible, at least for a little bit? The time has come. I decided to put the split lines on the face touching the sphere (aesthetically logical), and also extend them up to the frontward faces (less aesthetically logical). Keeping the splits on just the face touching the sphere would be the cleanest, but also leaves us about to interfere with the magnet, so it's a bit of a tradeoff. Since I'll be painting the seams shut after this, and the front split line will be under a ridge, hopefully we can keep this unobtrusive in post.
I work in halves for this section, mostly because it's going to be so fillet-heavy, and I hate going back and making sure I got all of the edges. I start by just shelling the entire solid piece, and then creating two trim surfaces offset from those internal faces. After cleaning up the trim surfaces, we can use them to cut the Generalist shell into our two parts. We can then drop the magnet boolean back in and add in some chamfers/fillets for lead-in.
Since there are 8 of these and we want them to look the same, we'll want to put a little lip/groove feature in for alignment. SolidWorks's in-built function for this really hated the shape I was making it offset (understandable), and it wasn't like I was going to brag about this CAD to anyone, so I ended up brute-forcing this via some Move Faces and trims (CAD professionals hate this one trick). A few trims/offsets/fillets later, and we've got a fairly serviceable base geometry here. We can then mirror both pieces to give him a cute little hat (important).
The Generalist Shell, Part 3










It's not worth thinking about how the Ladylike shell is way cuter and is probably going to be used all of the time, because it's time to make tiny detail differences in the Generalist shell pieces to make it recognizable--the little orange tops and black sidebars. The feature tree for this section is about as long as the previous two steps combined, demonstrating the 80/20 rule in full force.
We'll start by patterning the completed two-piece fin portion over 90 degrees. The top and bottom fins are the same, and the left and right fins are the same (and the front is the mirror of the back), so we can get away with just four total unique parts. The notch on the top fins is done pretty quickly with a cut/extrude to reform the wall lower, and then we can drop a little seam on it to make it look like a distinct part.
The side fins are similar--the notches ended up landing a little deeper into the part. We'll then want to basically cut the whole thing in half down the centerline so we can start to rough in those sidebars. For some reason, sweeping really did not work here, so I ended up resorting to extruding up, chamfering on the centerline, and then mirroring. So much of CAD really just feels like tricking the software into doing the things it told you it couldn't do. We go in and drop a few cuts to remove extra material, merge the relevant bodies back together again, and drop in some vanity fillets (we are at 66 of those so far, lucky number).
Then, we can re-merge in the magnet booleans, unhide all of those features, and slow our computer processing to 2fps by patterning everything around--and hey, that looks really good, actually! Sure, we could've gotten this on freecad in about 90 seconds, but it wouldn't have had all of the dumb little screws and hidden complexity, and it wouldn't have been as fun. 30 more fillets later and we've got something pretty respectable looking on our hands.
Extra Credit CAD












We'll quickly run back most of the techniques we've used so far for the Ladylike shell and a few extra features. First, we'll clone the front cap and drop a quick extrude on it to form the signature Ghost "eye" pattern--these are relatively small parts physically, and we've made the little quarter-turn features already, so I don't mind having an alternate front cap on hand.
The Ladylike shell is similar to the Generalist shell, except it's mostly in two halves instead of 8, meaning we can do it in 4 pieces instead of 16--just as before, we'll have an inner/outer shell feature, so that we can access the magnets during install and also keep the paint lines super distinct. I rough out the shell with revolves and then pattern around my magnet booleans from before to see which ones we actually want to use--the shape of this shell means we won't actually be able to fit all the magnets without making the shell super thick, so we'll do without the bottom 2.
Then, we'll go through and carve an S-shape across the middle with surfaces--this prevents us from having to deal with splitting the magnets in half that are on this center line. In a future rev, I'd probably just take advantage of all of the work that I did to make the back magnets rotatable, and just have those offset 45 degrees so that each half of the shell gets 2 magnets. Hindsight is 20/20 sometimes!
Same as before, we'll split out both sections and shell them, and then clean up our magnet booleans--the solid bodies do extend past the confines of where we're putting the shell, but the magnets themselves don't have to, so it's a matter of merging the magnet holding ribs back into the walls of the shell. Some cleanup later, and we've got the interior looking pretty good.
The outer part of the shell looks really simple, and it is! The inside is way too many features--it needs to interlock with the inner shell and cover up all those gaps, which is mostly done by extending the walls of the inner shell and then subtracting that entire piece from the outer a few times. Because of the way I chose to do the S-shape, and because the shell is slightly longer in the front than the back, these two pieces both aren't identical and also have to be made largely with different (but similar) feature trees--kind of a pain, and a good candidate for improving in future versions. After a lot of agonizing over surfaces that can be done for free with add/combine bodies, we get this funky little pair of parts that are lobed on the bottom and have a straight-line seam on the top.
We also need to make a new-new-front cap to go over the current front cap, because in this shell the front is black instead of grey. We could've just as easily built this into the already-very-complicated Ladylike shell that we had, but that would leave an extra split line down the middle, and as you can probably tell, I could still not abide by that.
This is mostly handled by one major revolve and then subtracting out the body to give it these nice little interlocks--during assembly, the two halves of the shell will stay on with the magnets, and then concentrically hold this front piece in place--super simple, no extra hardware needed, and it only took me about 20 more features in CAD! Totally normal use of time.
Bringing It All Together













The rest of this project is pretty simple--we've already wired up the main Ghost body, so it's mostly painting and post-processing, which I admittedly didn't document very well.
For the Ghost body, I hit everything with a base silver spraypaint coat, and then sandpapered/cut away at the paint in certain places to give it a bit of a weathered look. I used black watercolors to catch into the sandpapered/weathered sections--I applied them with a wet paper towel, let it sit for a bit, and then wiped it off, which left the grooves darker and helped them pop more. I also put a tiny little alignment dot on the lenses so that it'd be easier to locate the quarter-turn features--not canon compliant, but very helpful.
For the Generalist body, I inserted the magnets, glued the whole thing shut, and then sanded the parts forever because I "didn't think that the layer height would be visible". I should've sanded more--I ended up having to try to cover this up in the painting step, and I think it made the whole thing look a little blockier than I would've liked. I left this section unweathered (I liked the idea that the shells are nice and clean), but added in black and yellow on the notches and little sidebars.
For the Ladylike body, I painted the inner liners black and inserted the magnets. I painted the outer liners red, let that dry, put in the little spots with black, and then applied some glittery watercolor paint on top of that, let that dry, applied a clear coat, and then reapplied the watercolor/clear coat--at the very end of a scope-creep ridden project, this was a really terrible place to experiment new techniques, but I really liked how it gave the paint a sense of depth.
And that's mostly it! Little guy has his different outfits, his rave mode, and his spinny mode; already, I can tell he's going to spend 95% of his time in the basic Ladylike shell with just yellow light--but the other 5%, trust me, that's where all of this hard work pays off.
Thanks for reading to the end of this, and please let me know if you have any questions! I think a full CAD deep-dive might be even longer and poorly-served by this "several pictures and then several paragraphs" formatting, so if I haven't explained anything, please let me know!