## That partial book

Wednesday, December 5th, 2007 at 9:55 am

For anyone who really wants to look at that book I 5% wrote back in 2002 (mentioned in my last post) between the time of leaving NC Graphics, and Cimco discovering that hunting down the actual programmers what did the work could be a lot more useful than talking to the MD who bought and sold him like a used car, it’s here in glorious LaTeX generated PostScript. (Use Ghostscript to read it.)

This was done before I discovered Python. The examples are all in Java, and so was my system for generating the diagrams in TeX, which were also created using lots of Java. I’ve never had a good time with graphics programs and always seem to make a lot more success simply hacking code that outputs basic pen width, w; move x,y; draw x,y systems.

Most of this is badly written, so I’ll make my apologies now. It was the diagrams and the topics as I was developing them that interested me. I gained a lot of respect for textbooks that contain useful drawings. Maybe if I re-implemented my drawing system in Python I’d be able to use it here. At the moment, I’ve been doing drawings in Microsoft Paint (I told you I didn’t get along with drawing programs), because I have still not found out how to do a plain straight line in Gimp. Maybe I’ll get back to SVG soon.

The bit I found interesting was the different ways of representing subsets of the real line for the purposes of computational geometry. There’s a lot of work on 2D and 3D structures, with quad-cells, oct-trees, BRep models, and so forth. But the 1-dimensional case is important to me because it is simple enough that there is a good chance we could categorize every single computational model for it. I found at least half a dozen, and they were usually an analogue of a familiar geometric structure used in higher dimensions.

The question was, was this all of them? Could I find such a model buried in a mess of code and say what it was?

One thing we don’t have in computational geometry is a clear idea of concepts. A course in the field is usually a list of examples, not how they fit into a bigger scheme. When you’re doing work in the private sector, you simply make these models up — whatever first comes to your mind — without much of a thought for the alternatives. You don’t know the alternatives. And if you do, you can only guess according to prejudices how hard of easy they are to program and maintain. And these ill-informed choices early on in the lifetime of the software constrain it utterly.

The taxonomy of geometric models determines how software develops. For each model, there can be several implementations of varying optimality. Conventionally, software development moves between these implementations, leaving the underlying model intact. Sometimes a small tweak can change one model into another, if they share enough characteristics. This gets development into a whole new zone for moving forward.

• 1. Anders replies at 5th December 2007, 5:50 pm :

Hi Julian,

I read the machining chapter – unfortunately the text ends right about where it starts to get interesting!

If you’re going to continue this project in some form I could contribute with some diagrams and descriptions of ‘drop cutter’, based on my earlier blog posts:
http://www.anderswallin.net/2007/07/drop-cutter-33-edge-test/
http://www.anderswallin.net/2007/06/drop-cutter-part-23-cutter-vs-facet/
http://www.anderswallin.net/2007/06/drop-cutter-part-13-cutter-vs-vertex/

If you were trying to publish on polyhedral(STL) machining much before 2002 you could have just been ‘out of fashion’. Drop-cutter and similar things are described later in a number of papers:
Hwang 1998: http://dx.doi.org/10.1016/S0010-4485(98)00021-9
Chuang 2002: http://dx.doi.org/10.1007/PL00003965
Yau 2004: http://dx.doi.org/10.1080/00207540410001671651

regards,

Anders

• 2. Julian replies at 9th December 2007, 8:40 am :

The funny thing is it wasn’t “out of fashion” in the industry, which was running these algorithms for ten years before the first academic paper ever mentioned it. And it’s not because it was such a ground-breaking idea. From my discussions, it was basically because the academic community simply thought it was wrong, and have tended to look down at the industrial software as something inferior, rather than noticing that there was a lot that it was doing which they couldn’t understand.

The book pretty much stopped when I stopped working on it. Anyway, that stuff is all boring to me because I know it so well. If I did more nowadays I’d post it all up as short articles on wikipedia. At some point I’ll have time to output my diagrams into SVG, which is good for that service. Maybe you can convert your diagrams into that and install them into the appropriate articles.