3D Printing, Programming

Today’s Functional Print: Cootie Eyes

In today’s “is he posting about Cootie again?” news, I’ve printed replacement eyes for our Cootie game. The eyes are tiny and get lost really easily, so they are a natural candidate for replenishment.


These eyes are so small that I had to dial the print speed down to 3 millimeters per second (from 30 mm/s) so that plastic would have time to cool before the next layer was added and so the motion of the printer didn’t tip over the eye as it printed the top of the peg.


That’s a face that only a mother cootie could love.

The OpenSCAD script and STL file are available on GitHub.

3D Printing, Programming

Today’s Functional Print: Cootie Legs

In today’s “does that really count as functional” news, I’ve printed replacement legs for our Cootie game. You can’t buy replacement parts for Cootie, so the retail value of these legs is literally priceless.




These legs are low-polygon because I’m not yet experienced enough in OpenSCAD to replicate organic shapes. I generated these legs by intersecting the extruded x, y, and z profiles of an original leg, seen here:


The OpenSCAD script and STL file are available on GitHub.

3D Printing, Programming

Today’s Functional Print: Train Valve Gear

In today’s “how did I ever live without a 3D printer” news, I’ve saved a decades-old toy train from the trash heap by printing a new valve gear for its left side of its wheels. The train is a 1986 model New Bright toy train, and it was destined to encircle our Christmas tree, but a missing piece was causing the front left wheel to get lifted off the track by a dragging piston rod. It took about half an hour to design a replacement in OpenSCAD and an hour to print. Its value is immeasurable.

Here’s the component by itself.


And here it is in place:


You might not be able to pinpoint it, since it fits so perfectly that it’s undetectable as an aftermarket add-on. Here’s a closeup:


The OpenSCAD script and STL file are available on GitHub.

3D Printing, Programming, Woodworking

Today’s Functional Print: Shop-Vac Adapter

In today’s “printing meets programming meets woodworking” news, I’ve printed an adapter that allows me to hook up my Shop-Vac hose (1 1/4″ diameter) to my planer’s dust port (4″ diameter). The adapter was designed in OpenSCAD using a module I wrote that can create adapters between two hoses of any size.


This print was also my first time using a cold acetone vapor bath to smooth out an ABS print. A vapor bath melts the edges and ridges in the print, smoothing out the whole thing. Here’s how the adapter looked after three hours soaking in vapor:


Whoops! Three hours was too long… although it is very smooth and shiny. I printed another adapter, but this time, I cut the layer height in half, to 0.1mm. This resulted in a much smoother surface that didn’t need acetone smoothing, but it took twice as long to print.


The largest available Shop-Vac adapter on Amazon is 2 1/2″ across and retails for $8.37, so this 4″ adapter can be reasonably appraised at $10. Money in my pocket, and it sure beats the duct tape I was previously using to connect the two machines.

The OpenSCAD script and STL file are available on GitHub.

3D Printing

Today’s Functional Print: Drawer Hardware

In today’s “we’re living in the future” news, I bought a dresser for only ten dollars because none of the drawers slid smoothly, and I printed replacement drawer slides, returning the dresser to a fully functional state. (The original slides that came with the dresser were all broken for unknown reasons.)

The hardware I printed is a suitable replacement for the Rite Track brand Kenlin socket and case runner. Each set’s retail value is approximately $4.90, and because I needed eight of them, I saved $39.20.

This is the socket that attaches to the drawer:


It was printed in two pieces and glued together to avoid needing to print excessive amounts of support material.


Here it is in place:


And here’s the corresponding runner that it fits into on the under-drawer metal bar:


The SketchUp models and STL files are available on GitHub.

Life, Music

Dies Irae: A Composition for Wind Ensemble

In 1998, when I was 14, I wrote a song for wind ensemble: ten brass/woodwind parts and three for percussion. I just recently found the original sheet music (which I think I made using Finale 97), and I transcribed the entire thing again so that I could share it here.

It’s called Dies Irae (“Day of Wrath”), and it’s meant to evoke a fateful day in the life of an unnamed protagonist, using unorthodox playing styles ala Daniel Bukvich’s Dinosaurs. I was inspired to write it after my dad (a professional musician and composer) remarked in the car that the rhythm of the windshield wipers would be an interesting basis for a song.

The full list of the events I was trying to portray is listed below, but listen to it first and see if anything comes to mind.

(If you can’t see the player above, you can access the MP3 directly.)

Here’s what I was hoping you heard:

  • 0:00: Morning. The protagonist sleeps.
  • 0:20: The protagonist’s alarm clock beeps.
  • 0:23: The alarm clock is hit, and the protagonist falls out of bed.
  • 0:27: The protagonist stands and stretches.
  • 0:34: The protagonist begins the day, following the usual routine.
  • 0:48: The protagonist’s car won’t start, but then it does.
  • 0:56: The protagonist begins driving.
  • 1:01: The turn signal is activated.
  • 1:08: It begins raining. Windshield wipers are running.
  • 1:25: The protagonist nears a railroad crossing and hears the bell and the train whistle, but tries to make it across the tracks anyway.
  • 1:51: The train puts on its (squealing) breaks.
  • 2:03: Car/train crash.
  • 2:07: Ambulances on the way. Horns honking, alarms ringing.
  • 2:23: A heart monitor is hooked up to the protagonist.
  • 2:30: Paramedics working on our protagonist, but the heartbeat becomes irregular.
  • 2:45: Cardiac resuscitation attempts. The heart monitor flatlines.
  • 3:09: Dirge.
  • 3:22: The heart monitor suddenly begins beeping again, erratically and then regularly.
  • 3:34: Oh happy day, the protagonist is not dead.

I consciously decided not to try and improve the song as I was reproducing it; if I rewrote it now, I’d give each section way more room to breathe, and I’d go for richer sounds that deviate further from tonic chords. But I don’t particularly have time or inclination right now to rewrite, so I’m leaving it as is as a testament to my fourteen-year-old self’s musical decision making process. (Not that I’m completely unhappy with the choices I made; I’m quite proud of many of them, and I still especially enjoy the sequence starting at 2:23.)

I’ve licensed the song and all of its associated files under a Creative Commons Attribution 4.0 International License. Basically, you are free to do with it what you want (reproduce, edit, perform, publish, etc.) as long as you give credit to me as the original author. The MusicXML file (containing all of the musical notation information), PDFs of the director’s score and individual parts, MIDI files, and a WAV audio version of the playback-quality MIDI are here on GitHub.

This song has never been played publicly and was only attempted privately once, by the George S. Parker High School Symphonic Band in Janesville, Wisconsin at the end of my sophomore year in high school… It did not go well. If you play it with real instruments, I would love to hear how it goes.

I used NoteFlight to re-score Dies Irae, and I would recommend it to anyone looking to write music in a Web-based editor. Word of warning, it is Flash-based. Still not bad though.

And as a testament to how far MIDI has come in 16 years, here’s what the one I saved back in 1998 sounded like:

Apparently, I used to live inside an 8-bit video game.