3D Scanning and Printing as a method of replicating discontinued parts


I’m not huge fan of Jay Leno, but this is a great summary of some of the cool aspects of 3D scanning and 3D printers.  He uses a scan/print setup to reproduce a part for an old steam car which hasn’t been made since 1910.  But in my mind, he missed the most revolutionary aspect of this production system.  

Sure, you can make a 3D model of a part you already possess, but that’s just an evolution of 2D scanning techniques.  And 3D printers, with their ability to make these 3D models into physical, plastic objects, are simply amazing.  But for the most part it is just an evolution of the same techniques used in plotters like the ones I used in drafting class in high school.  Both of these technologies are amazing, and I’m not trying to downplay how cool it is to see a functional copy of a physical object made..   When this technology is truly affordable, I’m sure I’ll be tempted to dive in and screw around with it.  But there is nothing particularly revolutionary about any of this.

In my mind, what is revolutionary is that after you take this physical, tangible, object and scan it into the machine, it becomes content.  Content which can be shared just like movies, music, writings, ideas, and source code online.  Sure, it’s cool as hell that Jay Leno can reproduce a broken steam valve a century after production was ceased and restore his car to working order.  But what is even cooler is that once he is confident in his copy, he can share that 3D model online with anyone else interested in this part, who (with access to a CNC), can create their own replacement part.  

Once the information is in the computer, it is just as malleable as other digital media.  While it’s not as cool as the Linux Kernel or The Grey Album, one could envision a hacker in his garage taking that 3D model and trying to improve it.  This hacker is able to use a common 3D modeling package to tweak the existing part, printing up their own plastic test piece to test it for fit, and taking it to a CNC to cut one out of metal to actually test it in operation.  If it does happen to improve the part, they can then go ahead and share their changes with the world again.  They could even take their improved model, 3D print it, then take a mold from it for mass-production, selling the parts to people without all this equipment.

Maybe this is just obvious to me and others with a particularly nerdy perspective..  I still find it amazing though how computers and networking are fundamentally changing the way with think of information.  Hell, it’s fundamentally changing what we consider information.  The 3D scanner takes something physical and turns it into information.  And as we’ve seen time and time again, once something is information it will find a life online which no one had imagined.

If the nanotech vision of The Diamond Age ever comes to fruition, where even the idea of matter itself becomes information we can manipulate, things are going to get rather interesting.

2008 Films in Review

Another great year for film..  Trying to pick my favorites this year might have even been harder than in 2007.  

To reinforce my tradition of not placing importance of one film over another in each category, I decided to alphabetize the lists this year.  

Watertown Burger King BS


Watertown Burger King BS
Originally uploaded by seangraham

(Spotted at the Burger King at the Arsenal Mall food court)

So let me get this straight, Watertown Town Council President Clyde Younger:

It’s a SAFETY issue that you can’t offer cups of ice or water to customers, and has nothing to do with you trying to save a buck? Do you use some kind of magical, safe ice and water when I order a soft drink? Of course you don’t, you are just not interested in giving out free cups of water to your customers. If that’s your decision, fine, but don’t try and pass it off as some sort of bogus safety issue!

Bizarre Dream

Last night, I dreamed that I had lost/stolen my MacBook Air.  In the dream (as in real life), I knew I had good backups, so I was less upset about the loss as I was about the cost of replacing it.  Continuing this uniquely rational dream logic, I decided that I needed a larger salary to be able to afford to replace it.  I instantly found myself in the lobby of my former employer, Goodrich Surveillance and Reconnaissance Systems.  I told the guard in the SRS lobby that I was here to see my old boss, who wasn’t expecting me.  I told the guard to tell Brian that I was looking for a job, so he’d obviously want to talk to me immediately.

At this point, Sue, who is in charge of HR at my current company, met me in the lobby;  she was apparently working at SRS in this dream.  She began to show me around the building, which was odd, because I had worked there for 2.5 years.  Of course, the building looked completely different, and we came upon this large room with glass walls which looked more like one of the GCCIS labs at RIT.  It was here where I ran into an old friend from High School, Doug Palermo.  I haven’t seen Doug in ~14 years, and while I did buy his aforelinked book, I haven’t read it yet.  In the dream, I asked Doug if he was working for SRS, and he replied no, he was just visiting.

Finally, I ran into an former coworker, Ed, who I chatted with for a few minutes before waking up.  What amused me most about the dream was, once I first appeared in the SRS lobby, how strongly I rejected the notion of going back to work there.  Before I had even talked to the guard I had decided there was no way I was going to come back and work there, but figured I’d play along so I could see some old friends.  I wasn’t banking on seeing old friends from High School…

ljdump -> WordPress conversion tool

I spent some time this weekend hacking together a python tool that will take an archive from ljdump and massage it into something the WordPress LiveJournal importer can digest.

The WP importer seems to be expecting XML in the format used by ljArchive. ljdump also stores each entry in a separate file, and comments for each entry in another file still. The WP importer is a web form which allows you to submit an XML file, and doing this once for each entry would be excruciating. Furthermore, there are some differences in the structure of the XML used by ljArchive and ljdump, so some restructuring was necessary.

My script, ‘convertdump.py’ is still a little rough around the edges, but it seems to work (with some caveats listed below). I’m going to hold off on a ‘less geeky’ release until I polish it up a bit, but for those of you who want to grab it now and start testing or playing with it, you can clone my repository here:

git://donkey.csh.rit.edu/ljdump.git

A few things to be aware of:

  • There are two arguments required on the command-line:
    1. username of the archive to process
    2. a number of entries to limit the resultant xml to. WP tends to time out on large files, so for people who can’t adjust their PHP timeouts and file upload size parameters, they can create several smaller archives as opposed to one large one
  • My script is currently messing up when processing the security information for posts. Therefore it will make public any private or friends only entries. I also think that even if I was processing this information correctly, the WP importer would ignore them anyway and still import them as public entries. I’m going to look further into this, but my plan in the short term is to add a command line argument which omits protected/private entries from the archive file.
  • WP doesn’t do any of the special LJ tags (such as <lj user=…>), so I think I’ll modify the script to convert some of these special tags into normal hrefs. I probably won’t try to do anything special with lj-cut, however, because that could turn into a can of worms.. :)

Anyway, if this is useful to you, and you aren’t afraid of hacked together, barely tested software, give it a swing.   I’m happy to hear about bugs, feature requests, or accept patches. :)

Update:

A few other things to know:

  • I’m a git newbie, so I very well may have messed things up
  • I’m (mostly) a python newbie, so this might not be the most elegant/neat/efficient python code ever produced
  • I’m not planning on abandoning LJ any time soon, I’m just preparing a set of contingencies "just in case".  My plan is to be read to replace sean-graham.com with little effort and incident in the case of LJ’s early demise.