this is a portfolio. an unabridged collection of things i've made or done; useless and useful, polished and rough-draft, for classwork and job work and for no reason whatsoever.
I taught myself Photoshop and Illustrator when I was in high school, and slowly worked up a reputation as a graphics freelancer. I continued accepting commissions after coming to MIT; commissions have included everything from tradeshow banners to visual mockups for mobile apps to start-up logos. Here’s some example work!
A lot of my stylistic choice comes from Bauhaus and 70s American ads. High contrast color, simple shapes, rounded corners, and sans-serif fonts. More recently, my preferences have undergone a heavy minimalist influence, but I still can’t resist the chance to incorporate geometric patterning.
A video summary of our yo-yo, scrapped together from pictures, screenshots, SolidWorks drawings, Snapchat videos and time-lapse footage taken over the semester. Created as part of the final documentation assignment. Bloopers included.Â
Production run of blades and other parts/partial assemblies of the yo-yo. Gold color of the final thermoformed part was added with spray paint. We fulfilled the 50 yo-yo production run easily.Â
The requirement is to make 50 complete yo-yos, made of two identical halves--which means 800 blades, or 400 cycles of the blade mould. Production time was ~2.5 hours; the noses, on the other hand, only needed 100 cycles and took 45 minutes for a full production run.Â
The dovetail “trees” are very satisfying to push in. Perfect fit!
Screen captures of the CAM and the resultant moulds. Draft angles are visible on the blade core and the nose dovetails. The 3D machining toolpaths required for the blade cavity/core was a great challenge.
I’ve probably spent at least 80 hours in MasterCAM during this semester alone--and even more hours in SolidWorks--but being comfortable with the software paid off tremendously. Tweaking and fixing the other moulds for my teammate’s parts (we only ever completely re-machined 1 cavity mould) was a breeze compared to these.Â
The picture of the nose core mould was actually taken after the nose production run; you can see the bags full of freshly-made rotor noses in the background.
Second iteration of the rotor design in a turbofan engine-themed yo-yo for the manufacturing/production class at MIT. Blades and nose of the rotor are split into separate parts, as creating the mould for a single piece proved too difficult.
Blades interface with the nose with a dovetailed interference fit, similar to the “trees” used to attach actual turbofan blades to the core housing of the engine.Â
My task (design of rotor, CAM machining of moulds to injection mould (IM) the rotor parts, and IM production of the rotor parts) was easily the most complex and the most time-consuming of the division of responsibilities. The constraints (small part size, ejector pin locations, designing for assembly and IM, available tools, etc.) meant that both sets of moulds--especially the blade mould set--had tight tolerances and required 3D machining.Â
Initial CAD model of a yo-yo (one of the two identical sides) design for the manufacturing/production class at MIT.Â
The design is meant to resemble the compressor of a turbofan engine. Next step will be to create core/cavity molds to create the housing and the fan (blue), as well as a die for the thermoformed stator (orange). The washer under the housing will be steel or another metal; the additional weight will improve the yo-yo’s performance.Â
Autodesk Ember: Print Process. (Internship and beyond!)
SLA PRINT FAILURE: TROUBLESHOOTING GUIDE
All content (text and pictures) is original work. Please don’t copy/share without crediting this post.
SLA printing is messy and frustrating and, despite the halo that still surrounds the phrase “3D Printing”, is still a developing technological process with strict limitations. You can’t just heave a 3D model in the direction of the printer and expect it to spit out a perfect print--without proper forethought put into print model design and print settings, there’s a fairly high chance your print will fail.Â
However! I personally think SLA print failure is really, really interesting (and sometimes pretty spectacular). Most of it, from what I can tell, comes down to the user’s lack of experience in optimizing the print model and print settings/process, as well as the current complexity of SLA-style printing.
In the interest of saving others the time and resin-covered effort, I’ve collected what appear to be the most common modes of SLA print failure (at least, for Ember), an explanation of why the failure most likely occurred, and some suggested “fixes”.Â
This is still an incomplete post--I’ll continue to update/fill in the blank entries as I have time and/or experience more weird failure modes. I’m also open to answering questions about why your SLA print failed (pictures help a lot!).Â
1. Residual print. There’s no print/a partial print attached to the build head, and there are partially-cured globs of resin stuck to the PDMS window and/or floating around in the resin tank.Â
Why did this happen?
Gooey bits of cured resin free-floating in your resin tank (as shown above) happens...pretty often, actually, because there are multiple possible causes.
a) If you had an unsupported overhanging portion of your print, it will have floated away, layer by layer, as there was nothing for the overhanging portion to adhere to.Â
b) Insufficient supports could have resulted in an unsupported overhang.Â
c) Insufficient supports could also have caused a piece to break off of the print, due to the motion of the printer or an external disturbance. That’s what happened to the poor stegosaurus shown above--the supports for his missing leg gave out during the print, and took his incomplete leg with them.
d) If you did not add supports and the model does not have a generous base area to keep it adhered to the build head, it may have detached at some point during the print.Â
e) A clouded PDMS window may result in incomplete curing beyond the burn-in layers, which would create globs of half-cured resin floating around the tank.Â
Possible fixes?
Luckily enough, there are multiple possible fixes to this problem. (Letters correspond to the “causes” listed above.)
a) Check for overhangs in your model, manually. Your 3DP software may have the ability to auto-check for overhangs and generate a support structure, but look over the auto-generated supports anyway (software isn’t perfect!). If you find any overhangs that are not amply and directly connected to the build plate through supports, add more supports yourself. If it’s impossible to create a reasonable support geometry to account for all overhangs, consider changing the orientation of your model respective to the build plate. If you can eliminate overhangs entirely by changing the model orientation, all the better.
b), c) Insufficient supports? Before you try to add a million more supports, try increasing the support column diameter for the supports you already have. Additionally (if you don’t mind the effect on surface quality), you can try increasing the attachment point diameter for the supports you already have. Both of these changes will decrease the chances of your supports snapping off during the print. Of course, if neither of these changes work, try adding a few more supports in key locations. Too many extra supports will make the model difficult to remove from the build plate, and will be detrimental to the surface quality of your print.
d) Try to have a base area whose smallest dimension is at least half of the z-height of your model. For example, if you’re printing a model of the Eiffel Tower, consider adding a “base plate” underneath the tower legs to ensure proper adhesion to the build head. If that’s not possible, change the orientation of your model and use supports to act as the adhesion “base area”.
e) Have you been printing all of your models in the dead center of the build head? If you have, you might notice a cloudy spot in the dead center of your PDMS window. The mechanism behind the clouding is explained later in this guide. For the fix: in future prints, try moving your model to be printed off-center on the build head. If you can, pick a different location for each print. This will spread out the degradation of the PDMS window over a much larger area and therefore, will give the window a much longer lifetime.
2. Thin wall/thin structure collapse. A thin-walled print (like the hollow sphere shown above; < 0.1 mm thickness) or a fairly thin structural member of a print has collapsed, broken off, or has “deflated”.Â
Why did this happen?
Thinner/smaller prints or print parts are, as you might guess, more fragile and difficult to successfully print. The collapse of the print might be due to:
a) Being struck by a floating piece of leftover cured resin. If there’s any large pieces of cured resin still floating around in the tank, it may have damaged your print.
b) Being struck and dislodged by the edge of the PDMS. Sometimes Ember’s build head doesn’t lift high enough for the next layer, and part of the print may have hit the side of the PDMS during the build head’s returning sweep.
Possible fixes?
If you can, thicken any walls/structures on your model to greater than 0.1 mm. 0.1 mm is only 100 microns, which is only 4 layers’ worth of plastic for the default print setting of 25 microns/layer.Â
If you need to keep the problematic dimensions of your model, try slowing down the approach/return speeds for the resin tray (you can adjust these under the advanced settings on Ember’s web interface; not sure if this is possible for other SLA machines). Default settings should be at 12 rpm for Ember; try decrementing the speeds by 1-2 rpm until you have succesful print. A lower velocity puts less force on the thin walls/structures as they are being pulled through the resin, and reduces the chances of collapse.
3. Small holes are clogged. Holes smaller than 1-mm in diameter are clogged up with cured resin, but the outline of the hole is still visible.
Why did this happen?
It’s likely that there is ambient UV light in the room you keep your printer, so if you don’t remove a print from the build head right away (say, overnight) or don’t clean off the print in isopropyl alcohol right away, there’s a good chance that resin will be trapped in small holes (due to the viscosity of the resin), and will cure from the ambient UV light. This won’t happen in larger holes, because the UV blocker in the resin prevents it from hardening past a few hundred microns.Â
Similarly, if you printed something and left it overnight on the build head, and found that it was larger than it should be, it’s likely due to ambient curing. If you had removed and cleaned the print immediately, you’d likely have found that the print was smaller than it should be, as the resin shrinks a little after it cures. (This is assuming that you have already accounted for any dimensional inaccuracies caused by the individual printer.)
Possible fixes?
Try to print models with small holes, intricate surfaces, or other similar details, at times when you are able to remove the print from the build head and soak it in isopropyl alcohol within an hour or so after the print finishes. Â
4. Z-axis waviness/banding. Print has visible “waves” that are a consistent distance apart, or has visible “bands” of slightly offset layers that are a consistent distance apart.Â
Why did this happen?
This answer is Ember-specific, though if your SLA printer also uses a screw-type linear drive to raise/lower the build head, this answer may still apply.
On an Ember, your build head is attached to a build arm, which is attached to the linear drive’s carriage. On the carriage, you’ll notice that there are four very small socket-head set screws (two on either side of the build arm). Due to unintended mechanical vibrations caused by the drive’s stepper motor, these set screws incrementally loosen over time. If the set screws are loose, the carriage (and consequently, the build arm and build head) will be sensitive to the rotational motion of the lead screw—and this sensitivity manifests as evenly spaced “waves” or “bands” in your print. For Ember, the spacing between waves/bands should be ~2-mm, as the distance between threads on the lead screw is ~2mm. Â
Possible fixes?
Check if your carriage is loose by gripping the carriage firmly between thumb and fingers, and trying to wiggle it laterally/around the z-axis. If it moves noticeably at all, it’s looser than it should be (this shouldn’t take too much force, so don’t go twisting the carriage off your Ember!). Find yourself a hex key set and tighten the set screws…but! Read the rest of this answer first, because this fix is a bit tricky.Â
Unfortunately, there is no mechanical stop at the correct position of the set screws on an Ember. This means that you can actually over-tighten the carriage and impede the lead screw’s movement, which will result in Ember’s drive motor emitting a rather loud, pained screech when you try to print. To avoid this, tighten the set screws a quarter-turn at a time, one at a time (i.e., tighten screw #1 a quarter-turn, then check if the carriage is still loose. If it is, tighten screw #2 a quarter-turn, then check if the carriage is still loose…etc. etc.). Once you can no longer wiggle the carriage noticeably (you’ll know when you reach this point, I promise), stop and run a test print to check if the waves/bands still appear.Â
If they do still appear, the problem may be that you are not sufficiently tightening the build head’s lock screw during calibration, or are not calibrating correctly/frequently enough. Either of these can result in a loosened build head, which may be incrementally rotating during a print. Try reviewing the calibration instructions, tighten the lock screw a little more, and remember to calibrate before every print.Â
Note: If you accidentally do end up over-tightening and the drive motor starts screaming or groaning at you, cancel the print immediately (or unplug Ember, as there isn’t really a power button…) and loosen up the carriage a little bit. Trying to continue the print anyway will damage the drive motor and will definitely result in a failed print (as the build head can’t reach the correct height for proper exposure).
5. First layer squashing. Details on first few layers of print appear squashed or are not visible at all.
Why did this happen?
Possible fixes?
6. Middle layer squashing/Z-axis distortion. Middle layers are offset randomly along z-axis.
Why did this happen?
Prints with large slice areas may not separate cleanly away from the PDMS, as the total adhesion force between the cured slice and the PDMS may be too much for Ember's stepper motor to overcome in one smooth motion. This will sometimes result in the resin tray "jamming"; Ember's most recent firmware has "jam correction", and for most cases, this feature will keep the print going. However, any amount of jamming--regardless of whether or not the print continues--can potentially result in the jammed layer being displaced or cured in the incorrect position. If this happens multiple times, the print can come out looking "jagged": some of the middle layers are displaced random distances. This is different from the Z-axis banding error, which manifests as layers displaced in a "wave" pattern.
Possible fixes?
1) Reduce your print's slice area.Â
2) Reduce separation slide velocity. This will reduce the moment that the adhesion force places on your print, and thus reduce the moment that Ember’s stepper motor needs to provide.
3) Check the PDMS window--how cloudy or weathered is the area you’re trying to print on? If you’ve continuously printed your model on the center of the window, the center might be quite cloudy or worn down compared to the window’s corners. Try moving the placement of your model on the build head over to one of the corners, where there’s more “fresh” PDMS.
7. Print has partially “peeled off” the build head. Print appears fully or mostly intact, but one side of the print is slightly detached from the build head, and print z-height is uneven.Â
Why did this happen?
Possible fixes?
8. Print was damaged during removal of support structures.Â
Why did this happen?
Possible fixes?
9. Print was damaged during removal from build plate.
Why did this happen?
Possible fixes?
10. Yellowing. Print is yellowed and brittle, and print surface is peeling in flakes.
Why did this happen?
Overexposure to UV light will cause these symptoms in your print. If you’ve left your print next to a window that receives sunlight, somewhere outside, or near any other source of UV rays, this may have occurred.
Possible fixes?
Unfortunately, there isn’t really a good way to restore an overexposed print. (But you can always make another copy!) Next time, keep these tips in mind when you’re storing your print:
a) Don’t leave prints on windowsills, porches, or anywhere else that receives direct sunlight at any point.
b) If you’re traveling outside with the print, wrap it carefully in a piece of opaque cloth. Avoid disposable tissues/paper towels/fabrics that pill easily--they’ll leave little bits of paper/fabric on your print. Microfiber or polyester works well. Â
Long overdue update! I’ve worked for TMG as an undergraduate researcher for my entire time at MIT, and have gotten to work on progressively crazier and more interesting projects.Â
This creature here is a custom CNC machine that the group built over the last semester--it’s designed primarily for extrusion printing, runs on Pronterface, as has a nominal z-resolution of ~10-20 microns (this number doesn’t account for print material properties, e.g. viscosity or curing shrinkage). Â
It’s...not exactly the sleekest-looking thing out there, but CNC machines usually fall into the “terrifying torture machine” aesthetic. I’m comfortable using G-code, too, so it’s all-in-all a pretty reasonable monster to work with.
The main use for this thing will be for the new “Edible Bits” project (basically: machining food). My primary work in this project, from now until the end of the school year, will be the characterization of the appropriate CNC settings for different materials and different functionalities.Â
Since the current most-used module for the machine is the “extrusion head” (a.k.a., a linear drive that slowly pushes a syringe full of whatever), I’ll first be working on characterizing the effects of the extruded material’s fluid viscosity and particle size on the CNC settings. Which is awesome, because I’ve been wanting to do fluids-related work for a while now.Â
As a personal pursuit, I’m hoping to get an independent project started; I’d like to take a look at the possibility of macro-scale propulsion of objects suspended in a fluid, by creating thermal gradients in said fluid. Updates on this to come.
Measurement and Instrumentation [2.671]: Conductive Graphite-Polymer Composites for SLA 3D-Printing
Poster for 2.671 Final Presentation, as well as some extra pictures of the “resistors” and mixed resin. Paper can be given on selective terms (as this project was completed under the Media Lab’s auspices), so please contact me if you would like to read it. This project was proposed out of interests developed during my internship at Autodesk.Â
Click “Keep reading” to see abstract and the 2.671 course description.
Abstract
Composites with useful mechanical and electrical properties can be formed when polymers are blended with micro- or nano- scale powders of different ceramics or metals. The creation of a graphite-photopolymer composite resin for a stereolithographic (SLA) 3d printer could enable low-volume, rapid prototyping of electrical resistors and other circuit components. Graphite, a highly electrically conductive, crystalline form of carbon, was obtained in micropowder dry lubricant form and mixed into a photopolymer resin used for SLA 3D-printing at different concentrations. Cylindrical test volumes were printed from these composite resins, and tested for electrical resistance. Average reduction of resistance in test volumes made from composite resins in comparison to unloaded resin was found to be -334 ± 24 [kΩ]. Future testing with improved instrumentation and a larger range of graphite loading are suggested, in order to demonstrate a more comprehensive profile of possible electrical properties.
2.671 Course Description
Experimental techniques for observation and measurement of physical variables such as force, strain, temperature, flow rate, and acceleration. Emphasizes principles of transduction, measurement circuitry, MEMS sensors, Fourier transforms, linear and nonlinear function fitting, uncertainty analysis, probability density functions and statistics, system identification, electrical impedance analysis and transfer functions, computer-aided experimentation, and technical reporting. Typical laboratory experiments involve oscilloscopes, electronic circuits including operational amplifiers, thermocouples, strain gauges, digital recorders, lasers, etc.
Introduction to Architecture Design: Intensive [4.02A]
Final project for a 1-month equivalent to a semester-long introductory studio class that focuses on “techniques for designing and developing 2-dimensional and 3-dimensional form and space in architecture.”
6x6x6 unit cube that swings open with a hidden “hinge” of interlocked pieces, meant to resemble the motion of a human arm when throwing an object. Initial iterations were made with foam (not pictured).Â
Made from spent 9-mm Luger casings that were sawed down to the right length. Popped out the primer and replaced it with a Swarovski crystal. Filled in the casings with epoxy, and capped the back with a 4-40 washer placed over the earring back.Â
A couple of the fun little side projects (is that a thing? FLSP?) I printed during my internship on the Ember team.Â
Top:Â
One of the custom sample prints I coaxed into printing cast some interesting shadows. After reading about 3D-printed spherical lamps that cast stereographic projections with the lamp shell, I figured that it wouldn’t be too difficult to print a stereographically-projected “business card”. I managed to fit my name, school, year, major, email, and signature onto a 1″ diameter sphere (shown above)--but only had the time to print 3 of them. I really want to make an improved version, print 20 copies of it, and bring them (and a bunch of the LED lanterns I’m using in the pictures) to the next career fair. Just for giggles.Â
Bottom:
Multi-colored printed pendant made by printing a hollow polyhedron with clear resin, then injecting colored resins into the hollow with a syringe. Resin in the hollow was then cured enough to keep from leaking out with a UV oven. Result: swirls!
What’s Ember?
Ember is Autodesk’s first hardware product--a high-resolution desktop DLP-SLA 3D printer. I interned on the team for summer 2015, in the SF Pier 9 workshop. The best phrase I can think of to summarize my role (since I wasn’t given an explicit job description) is with “Print Process”; i.e. developing and documenting what’s necessary for a better, higher-quality print. This included mechanical, material, and UX aspects of Ember.
You can see its two-servo rack-and-pinion lift (didn’t have time to make the outer casing--so I used rubber bands to provide enough compression for proper traction. It totally worked, despite looking a bit haphazard) in the pictures. The Arduino is strapped to the underside of the wood platform (you can see the green alligator clips running to it). I actually ended up using an old Duemilanove I had along with the custom one that was provided, because I wanted separate power sources for the lift and the wheels. Using the highest-torque servos and DC motors available meant Rhe ate through batteries rather rapidly--given more time, I probably would have remade the scissor bars from acrylic instead of aluminum, and reduced the gear ratio of the servos.
The illustrated slide with a diagram of Rhe was made for one of the last design reviews of the class. Stability is noted in red, and is the reason for the array of rubber bands along the scissor bars; they kept lateral tilting to a minimum.Â
(A quick aside: I had stopped being particularly interested in the competition a while before this, and was more focused on making Rhe do what I wanted it to do. Which, in my head, was to carry around food and serve it to people of different heights--I found this thought supremely entertaining.)
In terms of design failures: I made a lot! And consequently, learned a lot.Â
For one, I made the combo mistake of 1) leaving the potentiometers in the servos, despite having modified them to be continuous-rotation, and 2) not combining their input channels into one channel on the RC transmitter. This meant that under manual control with the RC remote, I was controlling the two servos separately, with added difficulty from the sensitive potentiometers.Â
I got a hang of it after an hour or so of practice, but ended up uploading a simple “up-down” sketch onto the Arduino for demonstrations. The sketch drove both servos simultaneously for a few seconds in one direction, paused, then drove them in the other direction. This worked most of the time to show off the lift extending/retracting, though the platform sometimes overbalanced due to the force of extension (I should have written a gradual increase in speed for the servos, rather than a sudden jump to a high constant speed).Â
In terms of design successes, though, I was quite happy with having such a simple “dump” mechanism--it wasn’t motorized, and only required Rhe to drive forward to actuate it. Quite a few bots had an entire servo/RC channel dedicated to a “dump” arm or lever; by avoiding that, I could focus most energy resources into the lift mechanism and the remaining energy into the wheels.Â
Rhe was kind of heavy, but I still preferred to take it back to my room so that I could continue working on it. There were a few days where I was lazy enough that I set Rhe’s wheels to max RPM with the Arduino and had it walk itself back to my dorm (East Campus).Â
Super duper short video I took of one of those days. (Snapchat video, if I’m being honest.) The looks from tourists in the Infinite were the best.Â
The second lift mechanism I tried was a two-servo rack-and-pinion (drawing shows a one-servo concept), the beginnings of which can be seen in the (rather fuzzy) picture on the right.
More importantly, however! The springs!Â
I had quite the movie-esque lightbulb moment regarding my poor overworked servos: after watching people in my gymnastics class do flips off the springboard, I remembered that the shop stocked different sizes of extension springs for our use. The length of two of the largest springs hooked together and un-stretched just happened to be the same length as two scissor ends at full extension--and the springs provided enough of a boost that, after a certain point, the lift extended and stood upright without any additional support or force. I was very pleased with this.Â
The most important module for Rhe was the scissor lift. Initial design had 6 sets of paired scissors (24 11″ individual bars, cut with a waterjet) with aluminum bars set with nylon bushings across the lift’s ends and scissor joints to improve stability. A scissor angle of ~60 degrees with 11″ bars got the top of the lift to the required height without losing too much lateral stability; intended full extension shown above.Â
The great thing about scissor lifts is: a forced height difference in any one pair of scissors will propagate through the lift. The lower the scissor pair, the more force is required to create that height difference, due to the weight of the other scissor bars--so, lifting from the second or third scissor pair is preferable to the first pair.Â
The first-draft lift mechanism consisted of 2 simultaneously driven winches on each open side of the lift that raised the second scissor pair to the necessary height (~9.5″). This (unsurprisingly) could fail in a whole lot of ways, and it did. The primary issue was simply that the two VS-10 servos I tried to use couldn’t provide the torque necessary to elevate the lift from the second scissor pair. Starting from the third pair didn’t create enough of a height difference to reach full extension. I didn’t have any higher-torque servos--which meant that I had to think of a way to reduce the work required of the servos.Â
A foamboard, cardboard, MDF, wood dowel, and god only knows what else prototype of my robot for 2.007, as well as the concept sketches that led to its birth and a layout of the arena. I’ll refer to it as “Rhe” in further posts (named after the rhea! A long-necked ratite bird that grows to be 3 to 5 feet tall).Â
The most important part of my strategy was to scoop up point-earning acrylic rods and dump them into a box that was ~4 feet above the starting elevation of the robot. I decided to forgo climbing up the inclined part of the arena altogether after watching a lot of other students struggle to prevent wheel slippage when trying to drive up the incline. 4 feet is pretty high when the starting height requirement is 12″ or under, so I decided to use a scissor lift and a push-to-tilt mechanism on top (basically, a box with a see-saw floor). Â
The prototype, of course, doesn’t have nearly as many scissor bars as required--I just wanted to demonstrate the main mechanisms I would need to make.Â
(Apologies for the potato-quality phone pictures; I was in a rush to bring the thing to lab.)
So, to elaborate on why I made this monstrosity in the first place. 2.007, or the first class in the Design and Manufacturing portion of an MIT MechE courseload, is a class in which your ultimate goal is to make a functional RC (and optionally, autonomous) robot that accomplishes a certain set of tasks. Those tasks vary depending on your strategy--and your strategy is to earn as many “points” as possible on a predesigned arena where certain actions are awarded points. There is a height, weight, and energy limit on your robot (though they are quite loose and rarely broken), and you have access to an Arduino-equivalent control board for any autonomous functions.Â