Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
HexLogic – Logic gates in a hexagon grid (anubiann00b.github.io)
64 points by anubiann00b on Oct 5, 2014 | hide | past | favorite | 21 comments


How to make an oscillator: Create a triangle out of XOR cells. It will all be white. Put a power cell next to the triangle.

A simpler oscillator consists of an XOR cell in the center, with a power cell below it, and two OR cells: one above, and one above and to the right.


Interesting, but I prefer the simpler, emergent logic of Wireworld: https://en.wikipedia.org/wiki/Wireworld



Fun to play with, but I haven't yet found how to create a wire that carries a signal around a corner without introducing instability or oscillation. A series of 'or' or 'xor' gates will carry a signal from input to output, but the other two output directions from any of those gates lead to cells that feed into the previous cell, so placing either an 'or' or 'xor' there introduces feedback.

The inability to change the direction of a signal makes it difficult to create non-trivial circuits. I can create an oscillator for use as a clock signal (3-on-3-off that can be disturbed into a 1-on-1-off by placing and removing an adjacent cell). The outputs of those together would produce a two-bit counter (00, 01, 10, 11), and combining those bits with logic gates would produce a 2-on-2-off oscillator or a 1-on-3-off oscillator; however, I haven't yet figured out how to bring two outputs together.


A big hexagon shape made out of xor gates imitates a xor gate, except that the inputs and outputs are nicely separated. You can omit the inputs as you want.


Thanks, that works perfectly. Seems to work for 'o' and '+' as well: surround anything with a hexagon of xor gates and it will behave the same on a larger scale, as long as you don't feed it signals too quickly.


Here's a supersized XOR gate made out of supersized XOR gates.


You can switch direction. Try putting 4 xor gates in a diamond shape ;)


Also try a "bone" shape.


was playing with a similar idea for rendering small electronic boards (= Arduino type) last weekend, mainly to help with pinouts of boards: http://pinboardjs.divshot.io/ - what do you think, might this be useful to you?



Yeah, that's the original. But it's a Java applet, this is a Javascipt Canvas implementation.


Looks pretty. Are there instructions anywhere? Examples provided?


There are instructions on the bottom of the page. The github page also has examples: https://github.com/anubiann00b/HexLogic


Agreed. I have to admit, I'm pretty lost as to what interesting things I can do with this.


It's possible to create hex shapes that flicker without power! Basically a stable loop that acts as a super-conducting loop.


The only way to figure it out is to mess around with it.


Has anyone managed to implement an and gate out of this? {xor, or, true} is a universal logic set, so it it theoretically possible. A not gate is easy, but the positioning of the inputs and outputs makes and gates tricky.

For those who are rusty on boolean algebra or just curious:

not A = A xor true

A and B = ((A xor true) or (B xor true)) xor 1


Here's my attempt using the "ring of xor" technique posted elsewhere: https://imgur.com/xGHmN9c

It follows the hex structure of the other gates (inputs down and diagonally up, outputs up and diagonally down). It's got a radius 4 (the 5th blocks being the example inputs and outputs) but I think you could probably do better with some judicious bit trickery in the middle.

Edit: Radius 3: https://i.imgur.com/BaI6YLj - I wonder if 2 is possible?


Pretty although unsure at this point on how practical it is, but definitely a great idea!


Didn't not already make this years ago.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: