Week 4: 3D Scanning & Printing

alttext

Due to the limited number of printers we had (3 total), the quantity of prints I had, and size of prints, I opted to print on my home 3D printer in order to free up valuable printing time in the EDS shop. This is probably the first week I'm starting to think about how we can visualize data differently!

3D Scanning: 'Photo(de)grammetry'

The concept behind this was to examine how much detail would be lost if I were to repeatly scan and print an object over and over again, similar to the experiment of compressing a JPEG several hundred times over (to demonstrate to novice photographers why to work in RAW, rather than lossly formats!). This also nods to error propagation in software (and end-to-end machine learning models), since I do not intend to clean up any mistakes or issues in the process!

I chose the name "Photo(de)grammetry" as a play on the term "Photogrammetry" (using photos to 3D scan), and how absolutely garbage the open-source form of that technology appears to be at the moment. Even though I never ended up using photogrammetry to do my scans, I thought it was appropriate given the ordeal I endured painfully suffered through to scan anything.
photogrammetry attempt of a cat in a box photogrammetry attempt of a camera
This was largely inspired by my initial frustrations with photogrammetry using Meshroom. As a joke, I attempted to scan my Siberian forest cat, Atlas (to his credit, he sat incredibly still for me!). When it failed to capture anything, I decided to try scanning my Fujifilm XT-4 with its chonky XF50mm f/1.0 WR lens. Despite shooting almost a hundred images, and spending hours on community forums to tweak the settings of Meshroom, only barely a dozen shots placed within the program.
alttext alttext
I was incredibly frustrated. I brought my camera in to the EDS shop to use the 3DSense 2 scanner, and... it wasn't much better. To add insult to injury, it repeatedly lost tracking, and was unable to regain it once lost. I found out later that because it uses a reflected dot matrix, very dark (see: black) things didn't scan well using it. While I was mulling over what to scan next, Michelle and I took turns to scan each other in as a joke.

Although the scans of her were hilariously terrible, it planted the seed for what became my idea to get a good scan of myself, print it, scan that, print that, scan that, and print that. The question in my mind was "how many iterations does it take before I become an amorphous blob?"
alttext alttext alttext
alttext alttext
The initial scan resolved into a model fairly well, managing to capture the folds in my clothes as well as subtle details like my mask. Others, however, like the grommets on my head and my safety glasses, were lost in the process. A quick planar cut at the bottom of the model (to ensure it would lie flush against the base) was the only edit made to the model - no cleanup was done in software otherwise. All other imperfections, including from my cleanup of the supports, remained, as I wanted to see what happened with analog "error propagation".
alttext alttext
After sanding down the printed model with 400-grit and 800-grit sandpaper, it went back through the scanner, flaws and all. Oddly enough, some strange hole appeared in my chest, and some of my "errors" from before - such as the brim of my hat - indeed propagated. Forms are less distinct, but it's still distinguishably me.
alttext alttext alttext
And lets do it a third time! Now we're seeing much greater loss in details, ending with a vaguely human-like form.
alttext alttext alttext alttext
Here's the lineup of all three prints, close together.
alttext
And mounted on a display base - owing to a lack of time to print the large surface (almost 30cm by 20cm, which fit neither the Prusa nor the Sindohs!), I chose to thin the top and bottom skins in order to create an intentionally-distressed look, while reducing my total print time by 4 to 6 hours! (It's worth noting at this point that I have under 12 hours to print my actual 3D print piece, "Yin & Yang".)
alttext
Ta-da! I'm quite proud of this piece!

3D Printing: 'Yin & Yang'

The core concept for this piece was to take audio recordings, process them into spectrograms, and print them into a 3D sculpture. I envisioned separate audio tracks "twisting" around each other in a helix-like pattern, with the spectrograms facing inside as a nod to the "secret nature" of the conversation (or the "hidden nature" of the actual audio), while also acknowledging the interconnectedness of our conversations and relations with one another. I opted to print with a transparent/clear filament, in order to emphasize the invisibility and ephemerality of conversations. My initial plan was to do a four-part piece, with one audio recording from each of my three teammates from the TangiBel Soundscapes project at the Media Lab (who also happen to be in HTMAA: Cathy, Joanne, Olivia), but I realized that everyone was incredibly busy with this assignment, and resolved to do that at a later time (and first establish my workflow for this art piece).

I chose a two-part passage from Sun Tzu's Art of War that have held significant meaning for me since my teenage years, and recorded myself speaking those lines. The audio clips were pre-processed and down-sampled in a combination of Ableton Live, TouchDesigner, and some Python scripting to generate a 3D spectrogram (plotting frequency and amplitude over time) that was exported to an .STL file. However, it became apparently that despite my down-sampling, artifacts from the export process did not have the desired "low-poly" effect I was hoping for. In Fusion 360, I iteratively processed it with the Mesh Reduce and then Mesh Smooth functions, producing a much cleaner "low-poly" mesh.
alttext alttext
However, I was still at something close to ~10k polygons (faces, for those not coming from a 3D modeling world). Fusion 360 lacked the ability to twist an existing object, and so off to trusty old Solidworks I went! ... Except I proceeded to crash Solidworks repeatedly trying to twist it.

Let me preface this by saying that in my engineering undergrad, I have never ever crashed Solidworks, even on a crappy management student Lenovo laptop.
(Is it just me, or is modern software incredibly brittle?)

I spent the better part of an entire day trying to further reduce my poly count in order to not break Solidworks, letting Solidworks try to run, and trying a bunch of other tools (including Adobe Meshmixer). Finally, at almost midnight on Monday, after a frustrating series of venting messages to the TangiBel Soundscapes Whatsapp chat, Cathy helpfully suggests, "maybe blender?"

Blender. The software that, when I was first learning to model in Maya (and later 3DS Max, then Solidworks for CAD), was dismissed as a not-serious, amateur's tool. Alright, well, what's the harm in trying? I told myself. "good shout, I'll probs try that tonight", I responded as I set Blender to download while I went to look for dinner.

Food in hand and a quick install later, I Googled a quick tutorial, imported the .obj file, and applied the Simple Deform Modifier to it. It. Just. Worked. Where hours beating my head on Fusion 360, Solidworks, and a host of other tools and workarounds didn't work, Blender applied the 180-degree twist perfectly.
alttext alttext
A quick check of the mesh for watertightness, and a simple base later, the model was ready to print! The clear filament, which I had ordered over the weekend, had arrived as a white spool - luckily, I had banked on Amazon letting me down, and had placed a second order of a different brand, which did arrive just-in-time. I have never printed clear filament before, so, only equipped with lots of praying and whatever my Google-fu pulled up for knowledge of working with it, it was off to the printer.
alttext
My 3D printer tripped overnight, and so the print was only 60% complete when I found it several hours before class. I've ramped up the workspeed to 150%, rationalizing that "there's no difference between terminating a print before it finishes and the print going spaghetti at the end, right?"
alttext
The final product didn't end up looking too shoddy, thankfully. I do wish I had dissolvable supports, however. I discovered that clear PLA is quite brittle, and rather than the support material coming off cleanly, it ended up shattering into small fragments that flew everywhere.

3D Printer Design Rules Characterization

As a group, we printed a set of test pieces to characterize both the Prusa and Sindoh printers. Michelle and I further examined and tested each test part's characteristics to determine the design rules. For 3D printing, every design rule is incredibly important, as it determines the limitations of your print designs and has the potential to save hours of time! While I have not done a formal design rules characterization for my own 3D printer (and I ought to, honestly!), I have learned most of the design rules through trial and error.

The below design rules characterization are in fulfillment of the group component of this assignment. In the below images, all black (left) prints are that of the Prusa, and yellow/blue (right) prints that of the Sindoh.

Overhang Angle

alttext alttext
Printer Angle Result
Prusa 0 Spaghetti.
10-30 Passable, increasingly better. One bottom corner partially slanted.
40+ No issues
Sindoh 0-10 Spaghetti.
20 Minor spaghetti'ing. Diagonal lines on the angled face due to the directional change of the hotend.
30+ No issues.

Freestanding Overhang

alttext alttext
On both printers, 0.1mm was starting to have issues. Past that, the prints spaghetti'd.

Supported Overhang

Our section mistakenly printed these without the supports; we understand the point in combination with the freestanding overhang test, however - supports are needed for 0-degree overhangs!

Support Clearance

alttext alttext
Printer Gap Result
Prusa 0.1-0.2 Stayed stuck.
0.3 Spun with difficulty, required a lot of force.
0.4 Spun, with less force needed.
0.5 Spun, with some difficulty rounding corners.
0.6 Ideal.
0.7+ Too loose, wobbly.
Sindoh 0.1-0.2 Stayed stuck.
0.3 Some wobble, no spin.
0.4 Spun, with some difficulty rounding corners
0.5 Spun, but not quite smoothly.
0.6 Ideal.
0.7+ Too loose, wobbly.

Bridging

alttext alttext alttext alttext
For our bridging test, the Prusa bridged fine up till 20mm. Past that, there was some stress separation of the bottom layers of the bridge starting from 18mm. The Sindoh was the same, except that the stress separation started at 12mm.

Wall Thickness

alttext
For the Prusa, all wall thicknesses were fine down till the minimum print resolution (0.5mm), with gaps going down to 0.2mm. At 0.1mm, there was some messiness in the print. On the Sindoh, the wall thicknesses were similar, with gaps going down to 0.7mm or 0.8mm, with messiness in the print below that width. It was difficult to differentiate a mis-print from stringing due to the hotend running a little too hot for the filament.

Dimensions (Calibration Cube)

alttext alttext alttext alttext
See calibration cube images above. Wall thickness was 5mm, and overall cube width was 20mm.

Anisotropy

alttext
Layer lines are visible, showing the anistropic properties of FDM printing. We can see that thin tall structures will be weak from shearing forces, and ought to be printed with the long side down. This visibly caused more issues during the print process with the Sindoh, leaving a ragged vertical edge (although this can be resolved with a slower print speed).

Print Finish

alttext
We can see that the layer resolution/thickness here determines how aliased the convex half-sphere is. The convex sphere was generally unproblematic due to the nature of additive manufacturing.

Infill

alttext
We can see the infill amounts based on the percentages set. The print time trades off with stability and strength of the top and bottom skins, all of which are largely dependent on the infill percentage set. Fun note: we had to bandsaw a couple as they printed with their top skins!

3D Scanning Bloopers

Lol.
alttext alttext alttext alttext