I wanna ShopBot
The ShopBot CNC router hasn’t always been an object of desire for me- It’s easy to judge it as inferior because it doesn’t use linear rail bearings, ballscrews or servo motors in favor of ball bearings on rails, rack and pinion gears and gearhead steppers. I have learned more of the capabilities and strengths of the ShopBot by seeing the work BecauseWeCan do with theirs, as well as hearing Jeffrey talk about it at EatFoodTalkShop. Last thursday he described the some features of the machine in a way that really piqued my interest- mainly concerning the “Job Code” that is used by the ShopBot’s control software. As well as mentioning that they were planning to open and document the language they created and use (as opposed to Gcode)- which it appears they have now done, he said it is a much more comprehensive script-capable language than Gcode, with lots of built-in functionality- including built-in randomization.
That in particular really got me thinking- After quickly reviewing the documentation, it appears that the ShopBot code- “OpenSBP” supports user vairables, some math (although it is not described in the manual), basic flow control, BASIC style subroutines, windows message box triggering, file I/O. It’s a pretty good start- I can imagine some reasonably interesting possibilities of dynamic part definitions from within the SBP files. I am really attracted to the idea of being able to define parts based on random variables, such that every part will be “designed” on the spot, randomly. It is of course possible to write a seperate script to generate some Gcode or “dumb” SBP code, but the idea of having the randomness executed at machining time is sort of the ultimate in instilling organic ephemerality to the machining process.
It’s clear that the SBP standard is still under construction, as is its documentation. I believe that it looks better than Gcode, and has a lot of potential in future revisions. That said, the documentation is a bit vague on key issues at the moment, and there are still some complex processes that aren’t going to be efficiently implemented in SBP. You can’t define even simple data structures in SBP and I personally am much more familiar and happy with with C-style programming over BASIC style programming. Although it is not described in the current programming manual, I presume there is a random number function- this could easily be used to vary the parameters of some texture defined in SBP, like by varying the Z axis plunge depth at each point in the texture. I have thought of an application where I would like a randomly generated pattern of overlapping concentric circles- for a more logically complex operation like that I would want to work with an environment that would let me have data structures- arrays at least, and very well implemented subroutines, looping and flow control. A script to generate complex random toolpaths could be written in C, or Processing, or PHP, or whatever- but that abstracts it from the actual execution of the job, which as I mentioned earlier, is one of the coolest parts about scriptable job code. At least it is clear that the ShopBot control software is command-line accessable- that helps. Maybe there could be some way to include hooks to other scripting software from within a SBP file…
Anyways, I like the direction the ShopBot folks are headed with SBP. It’s already better than Gcode, and is only going to get better by documentation and standardization. I can imagine that I would enjoy very much working with a ShopBot machine and using the SBP- it looks like lots of fun. I was thinking before about wanting to build a CNC router- but now I find myself qute attracted to the ShopBot package- I don’t doubt the machine’s quality or capability to do what it’s designed to do, and their software/hardware package integration and support is very attractive. I feel like I could actually get somewhere right out of the box with the ShopBot system.
So why exactly do Iwanna one now? Because my mind has, as is inevetable, begun to imagine what I could do with it. Just like Jeffrey and Jillian at BecauseWeCan did, I am definitely dreaming about what my ShopBot business plan would be. I can think of about a half a dozen different relatively simple things to start with that I could design and be able to manufacture with something like a ShopBot. I am excited about that quickness from design to prototype through to manufacture- just like it has for BecauseWeCan, it’s a straight-fire way for someone with a interest in visual or functional design to turn cheap materials into complex prototypes that would be very nearly impossible to make any other way- and then redesign or manufacture those designs with just as little trouble. Seriously it is amazing the variety of unique furniture and interior pieces BecauseWeCan make with the CNC, good bits, good wood suppliers, sanders and a good finish spray setup. The emphasis is able to be focussed much more on design rather than the mechanics of manufacture.
So, maybe within an few years I’ll borrow some money, crank out some designs and nab a ShopBot- I think it may be the fastest route to some of my biggest goals.