Hexagonal cellular automata

some thoughts about neighbourhood along the hexagonal lattice

I bet you landed here because of your questionable websurfing habits. Proper search engines would never show up a mess like this and so wouldn't i.

If you continue reading and find anything noteworthy for the proceeding of your own thoughts, i owe you a beer and vice versa.

Well, for me this is about one of the really fundamental problems in my life:

What is the most elegant way to code a hexagonal cellular automaton with correct infinity for arbitrary grid sizes?

Today, i paused from hacking around directly in HLSL and even put away my sketches, that i grew on both rectangular and hexagonal grids over the last days.

I experienced a serious eddy reading wikipedia's exhausting articels about archimedean solids*, the hypercube, once again the penrose tiling, tiles in general as well as merely everything linked at a maximum depth of 2.

* (Add. task: Read out loud the list of convex polyhedra at the end of the page as fast as you can. Record yourself doing so and play it back to anybody embarrassing you on the phone.)

So after finding myself staring at pixels anyway, i thought i could maybe make the pixels hexagonal and typed "hexagon paint" in my favorite search engine. I ended up downloading some promising hexagon.dll that unfortunately wouldn't start hexing doing it's magic without installing some .NET 4.5 based alternative for MS Paint, which is why this bLog entry is also a kind of review for this software called


paint.net and i joined up merely perfect from the first moment. We saw each other failing at our basic task, being one stupid waste of time and not of any help mutually, other than producing sloppy hexagons. Where i was failing to get any tiny new insight for my programming, i'd like to show you some of the illustrations of mine fighting the trappy tool. You will soon notice, that those images are lousier than i would ever allow to stay overnight on my temp folder. But, hear, paint.net causes pain in seven cases:

  1. Transparency can't be preserved. I keep cutting out selections because the stupid transparent pixels are destructive!
  2. You constantly find parts of your work happily painted on unintended layers. Photoshop got on my nerves adding layers each time i paste, but this is worse.
  3. You need to "finish" every step. Changed the colour or brush size for the next step? Oups, your red arrow is also blue now. Step back, stranger!
  4. Trying to reach those pixels close to the border, below the palettes? Sorry, it's just simple scrolling, canvas can't be adjusted freely.
  5. You want to do some pixel exact moving. They seem to have the same scaling-and-integer math problems i try to solve by using it for my sketches.
  6. You want to re-edit text. If you find a typo, kill the layer, type in again. There isn't even a text marquee while you 're typing!
  7. You want to save? Only it's own proprietary format will keep layers. Saving a TIFF will flatten the image.

So here's what's left after a day at the pixel playground in the .NET ghetto:

1: shifting to hexagonal infinity
2: don't shave your hexagon
false friends: mira los angele!
4: orphans distort your hexagon
5: Non-rectangular lookup table
Melchior blausand Montag 20 Oktober 2014 at 01:38 am | | nicht unlösbar
Stichwörter: , , , , , ,

Kein Kommentar

Persönliche Informationen speichern?
E-Mail Adresse nicht anzeigen
Hinweis: Alle HTML-Tags außer <b> und <i> werden aus Deinem Kommentar entfernt. URLs oder Mailadressen werden automatisch umgewandelt.