UI FAIL

If you're into that game where you use long sticks to hit a small white ball into a hole in the ground, and would like to hear how Tom Watson, 60, is beating  Tiger, head over to the very flashy masters.com.

Now, is the radio supposed to be on when it says "ON" (i.e. "click here to turn ON", or "I'm ON" ?), and the button is yellow and shows a "play"-arrow, or when it says "OFF" (i.e. "click here to turn OFF", or "I'm OFF"?), and the button is yellow and shows a "play"-arrow?

This wouldn't be a problem if there actually was audio at either setting, but having tried Firefox and Chromium under Ubuntu, and then Chrome, Firefox, 64-bit IE (which doesn't have Flash) and 32-bit IE on Windows 7, I still haven't heard any of the radio broadcast 🙁

Why oh why can't they send the radio broadcast over an open protocol so you can listen to it with VLC or some other generic player?

And, dear IBM-engineers, please re-do the radio UI, thanks.

a good servant but a bad master?

Seen on the bus today:

Yep, that's a GPS-screen top left. No need for the driver to know left from right, where the bus is, the route, or think much anything any more.

Back in the Good Old Days if you took a taxi the driver was actually supposed to know where you were going. Not so any more, especially at the airport. Given an address, the driver will probably not know which city or suburb to go to. After you write down your address on a piece of paper (been there, done that), since the driver speaks neither of our domestic languages, the journey proceeds exactly along the GPS trail. If they do the same with buses, install satellite-navigation everywhere, will it be good or bad?

How long before someone drives a bus into the water or off a cliff?

Toroidal drop-cutter

A one-triangle test of drop-cutter for toroidal tools (a.k.a. filleted-endmills, or bull-nose).

The blue points are contacts with the facet, and the green points are contacts with the vertices. These are easy.

The edges-contacts (red-points) are a bit more involved, and are done with the offset-ellipse solver presented earlier here(the initial geometry) and here(offset-ellipse construction) and here(convergence of the solver) and here(toroid-line intesection animation).

Octree in python

Recursion and 'divide-and-conquer' must be two of the greatest ideas ever in computer science.

Threw together some code in python today for building an octree, given a function isInside() which the tree-builder evaluates to see if a node is inside or outside of the object. Nodes completely outside the interesting volume(here a sphere, for simplicity) are rendered grey. Nodes completely inside the object are coloured, green for low tree-depth, and red for high. Where the algorithm can't decide if the node is inside or outside we subdivide (until we reach a decision, or the maximum tree depth).

In the end our sphere-approximation looks something like this:
octfinal

These tests were done with a maximum tree depth of 6 or 7. If we imagine we want a 100 mm long part represented with 0.01 mm precision we will need about depth 14, or a subdivision into 16384 parts. That's impractical to render right now, but seems doable. In terms of memory-use, the octree is much better than a voxel-representation where space is uniformly subdivided into tiny voxels. The graph below shows how the number of nodes grows with tree-depth in the actual octree, versus a voxel-model (i.e. a complete octree). For large tree-depths there are orders-of-magnitude differences, and the octree only uses a number of nodes roughly proportional to the surface area of the part.

octree_depth

Now, the next trick is to implement union (addition) and difference (subtraction) operations for octrees. Then you represent your stock material with one octree, and the tool-swept-volume of your machining operation with another octree -> lo and behold we have a cutting-simulator!