Mowing Foam

Dan Egnor sent me this nice example of bitmap-based toolpath generation, or 'pixel mowing'. It's a slightly exaggerated topographic relief of San Francisco machined in tooling board using a very simple 'lawn mowing' toolpath generator.

The explanation of how it works below is mostly Dan's, not mine.

This is the input to the toolpath generator for one of the Z-slices.

black - material which must not be touched
green - to be removed, is safe (at least one tool radius from black)
yellow - remove if possible, is dangerous (within tool radius of black)
purple - has been cleared, is dangerous (machine limits or similar)
white - has been cleared, is safe, is not blue (below)
blue - this spot has been cleared, and is safe, but is within one tool radius of material that needs clearing (green or yellow)

Note that you don't see blue in either "before" or "after" images, it only occurs transiently. (In theory it could show up in "before" as area outside the workpiece.)

And this is the resulting toolpath. Green circles are plunges and red circles are lifts. The thick grey lines represent actual cuts, the thinner lines are rapid feeds.

The basic rule is that the tool *centroid* is only allowed to visit safe areas (green, blue, and white). Green and blue represent work to be done (safe areas that need visiting). Of course, as the tool moves, green changes to blue and white, and (some) yellow changes to purple.

The real trick is in efficiently tracking the "within tool radius of" zones (material to be cut, or material to stay away from). Every pixel keeps a count of how many pixels of each type ("nearby-blocking" or "nearby-cutting") are within one tool radius of that pixel. Whenever a value is changed ( e.g. the simulated tool moves and changes some points from "cut" to "clear"), every counter within the appropriate radius is updated.

That would be rather costly to implement directly, each simulated pixel move would require N^3 updates, if N is the diameter of the tool. Instead those counters are only kept as *differences* between each point and its neighbours. That means changing a point only requires updating the values along the *perimeter* of the radius surrounding that point, meaning that a simulated pixel move only requires N^2 updates, which makes things a lot more tractable (though it still takes the old laptop I use a couple minutes to complete the toolpaths for a 5" x 3" x 1.5" model at 1/256" resolution). Of course this means that the "color state" isn't directly accessible for a random pixel, but must be figured incrementally from neighboring values. Fortunately most operations don't access random pixels.

You would probably not want to cut metal with this kind of algorithm as there is no control over material removal rate or cutting forces, but for foam, tooling-board, or wood it should work ok.

Dan's program is written in C++ and available here (http://svn.ofb.net/svn/egnor/boring/), but it's not well documented.

We are standing by for a video of this kind of cutting!

Small Yachts

I remember a quote from MMI some years back on the IOM "there's nothing wrong with it another metre wouldn't put right!". Well the days of the A-boat and 10-Raters are pretty much gone in most countries, and now there are a number of sub-1-metre boats or kits becoming popular. Some are popular in great numbers, like the Micro Magic (see my post from Feb 2007). Here are two home-built boats/boat-types I've been notified of lately:

This one is 750 mm long, comes from NZL, and is called a Racing Sparrow. The website looks exceptionally good with a lot of information, pictures, and downloadable plans. Designer Bryn Heveldt has also written a book, available on Amazon, about building the boat. There's a YouTube video here.

This is a Strathclyde 70 class (does the class have other 'homepages'?) boat, also around 700 mm long, planked in balsa by Peter Trimmer (AUS). It's actually a 70 % scaled down version of the Laerke IOM.

I wonder how these boats sail? I've sailed a MicroMagic a couple of times, so if anyone can comment and compare these two to a MicroMagic or an IOM I'd be interested. Do people really want the 1+ metre boats, or is racing just as fun with a smaller cheaper boat?

As before I would predict that any class that aims to be popular needs to have good availability of boats. There are a lot of MicroMagics and RC-Lasers around because you can buy them (more or less cheaply) over the counter at the hobby shop. It's just a shame that usually the designs and class rules of home-builders and accomplished radio-sailors (you know, the ones who still have their A's and 10R's in the basement) seldom meet with the needs/requirements of people who are able to mass-produce a boat. I think currently there is no commercially mass-produced kit or ready-made boat sold that fits in any international class (A, 10R, M, IOM) ? The Windstar probably comes close, but I understand it requires a lot of modifications before it's competitive with a standard IOM.

I've toyed with some ideas around IOM-production, but it's not likely that 2008 will see major progress (too much else to do...). If anyone has some news or ideas let me know! Now it looks like we will have MicroMagic sailing at both the Helsinki Boatshow (Feb 08) and the Helsinki Model Expo (Apr 08) - and I did sort of promise last year that I would turn up with a boat of my own in 2008...

Update: There's an article in the latest Model Yachting magazine about Jon Elmaleh's latest project the Twang IOM. It's going to be mass produced and will hopefully be available in the summer of 2008. No word on Jon's site yet...