fun with colors

Here, have a couple of Python scripts. Each creates an image file, 2^12 pixels square, each pixel of a different color.

colorshuffle.py puts the coordinates of each pixel in Gray code, assigns each bit to one of the color channels, and converts each channel back from Gray code to choose a color. The assignment is chosen at random from 141926400 possibilities.

colorfold.py is my attempt to re-create and extend this: it folds the square eight times to make a cube fitting the color space. The interesting part was maintaining continuity through multiple folds. This one has only 107520 possible outcomes; again they’re chosen at random. I don’t like the result nearly as much as the other, but you might!

You’ll need Python Imaging Library.

On my machine each takes less than two minutes, so with a simple shell script you can whip up hundreds overnight.

Continue reading

Posted in eye-candy, neep-neep | 3 Comments

SEOperstition

I get this comment a lot:

Hello Web Admin, I noticed that your On-Page SEO is is missing a few factors, for one you do not use all three H tags in your post, also I notice that you are not using bold or italics properly in your SEO optimization. . . .

I probably also don’t sprinkle enough chicken’s blood.

Posted in spam | Leave a comment

hilarious title

On a private mailing list, a novelist asks for suggestions: what technological hobbies might a bright teenager have, in Oakland circa 1975? Chemistry sets were mentioned, among other things.

I may have had a chemistry set at age 8 or so; memory is spotty. A few years later we got an electronics kit, consisting of a collection of elements in Lego-like blocks. There was a booklet, starting with easy things like a light switch and an electromagnetic telegraph relay. (Maybe I thought the latter was easy because Dad and I had made one, about the same time as the possible chem kit).

Then on the next page was an oscillator or something. No explanation of why it was an oscillator. I thought, well, if I can’t see for myself why it’s an oscillator, evidently I’m not cut out for this stuff; so I quietly abandoned it.

My adolescence in a nutshell.

Of course it never occurred to me that perhaps there was no explanation because I was not expected to understand an explanation; I was expected to treat the oscillator as a black box. (Not that I had the concept of “black box”, either!)

Oh well.

Posted in bitterness, technology | 4 Comments

adaptive sampling

I got an interesting idea today.

As you may already know, I’ve been making models of Klein bottles an’ stuff; heretofore they’ve all been in the form of bent rods, but where possible I’d prefer a continuous surface. (A hollow body must have holes so that unused powder can be shaken out; but not all of my designs have enclosed spaces.) How to place a minimum number of vertices so that deviations from the abstract shape are within the resolution of the process? That’s less obvious with more degrees of freedom.

So, today’s idea. Start with an arbitrary set of sample nodes (in the abstract space of the parametric variables, rather than on the target surface itself), and their Delaunay triangulation. Along each edge of the triangulation, measure the deviation of the surface from a straight line; this gives the edge a weight. Move each node to the weighted average of its neighbors (with a bit of noise); thus, an edge whose image is strongly curved gets shorter.

After the movement phase, each edge ought to be checked, whether it’s still a Delaunay edge or needs to be replaced by the other diagonal of the quadrilateral formed by its two triangles. I don’t yet have criteria for adding nodes where existing nodes are too far apart, or merging them if they become redundant.

Posted in mathematics | 2 Comments

steam and circuitry

One of my favorite games is Ticket to Ride (despite its silly name), in which a strategic element is choosing tickets: pairs of cities to be joined. The value of a ticket is the length of the shortest path that could fulfill it.

It occurs to me that, if each segment of track is considered as a resistor, the resistance between two cities may be considered a measure of the difficulty of the ticket: you’re less likely to be blocked if redundant paths exist. One could then make a list of tickets ranked by payoff divided by resistance. But each move changes this: after a route is claimed, it has zero resistance for its owner and infinite resistance for others.

Your first act in the game is to choose two or more tickets from a draw of three or four or five; it’s not obvious how to apply this idea to find the most compatible set.

Posted in games | Leave a comment

cross-drafting

Gail Simone asks:

Question of the day: if you could have one piece of art drawn by any living comics artist, not to sell, what artist and what character?

I haven’t followed (paper) comics in a long time, but several possibilities come to mind; in rough order of seriousness:

  • Churchy & Owl (from Pogo) by Bill Watterson
  • Adam Warlock and Gamora by Walt Simonson
  • … with Thanos by Kate Beaton
  • Dr Strange by R Crumb
  • the Bat-family by Dorothy Gambrell
  • Cheech Wizard by Dave Sim
Posted in cartoons | Leave a comment

Neptune’s Gulch

In Atlas Shrugged, John Galt invented a radical new engine and (according to folklore) emigrated to Atlantis to keep his invention out of the hands of parasites.

Charles Stross’s novel Neptune’s Brood is about uncovering the true history of the Atlantis colony, which gathered an unusual concentration of talent before suddenly going silent. Some say that Atlantis was working on a FTL drive, which happens to be a motif in a perennial scam. Was Atlantis never more than a Potemkin village, bait for investors? Or, on the other extreme, was it destroyed because the FTL project succeeded?

Once or twice before, I’ve asked Charlie whether he intended an allusion and he said ha, no, I didn’t notice that, so I won’t assume that the name “Atlantis” (which is unrelated to the Neptune of the title) is a poke at Rand. It’s funny either way.

Posted in prose | 3 Comments