I'm writing up a quick sketch of what my special version of Wireworld was. We can use it if people think it sounds cool. I implemented it once in C# I think, but I don't want to bother rummaging through old hard drives.
I was thinking of designing some logic to link up some sensors with some actuators, requiring a bit of sequencing. Something like traps in Dwarf Fortress maybe.
A wireworld compiler, or rather a wireworld circuit design language
After all some people did write a Piet compiler
Seriously, why not design puzzles that would require some interesting circuits to solve? Like sensors that would generate pulses that you'll have to count or combine to trigger some mechanism. All that would be relatively easy to represent on a simple png image, and writing a controller seems doable.
Like XUXUX where the middle wire neighbors both tunnel ends? All the X's are neighbors. The middle X connects to a tunnel end that is not the end the left X is on so they are neighbors.
A suggestion for tunnels: a single tunnel end would act as a single unit, turning off or on in unison (like a B or D group). Two instances of the same tunnel end are considered adjacent.
In HU...UX, the H would activate the U, which activates the second U, which activates the X. This will probably be easier than trying to determine which cells are adjacent.
@PhiNotPi Hmm, so it'd be more like a global wireless wire. That could work. Two drawbacks: 1. tunnel based circuits would have more delay. 2. we'd need another state
@Calvin'sHobbies yeah, thought so, but I think the current wording is a bit ambiguous (because I think it ends with "unless it neighbours the same tunnel" somewhere)
To cut down delay, you could make all tunnels of the same shape activate in unison. H activates U (which activates the second U in the same time step) which activates X.
@Calvin'sHobbies do you know whether you want to make people implement wireworld, or golf a wireworld automaton, or write a program whose outputs are wireworld automata, or ... ?
@MartinBüttner I think it would be cool to have people golf a wireworld device, though that would require a full implementation. I can't say I fancy implementing my version.
well I think just golfing your version wouldn't be very interesting or enjoyable (and golfing vanilla wireworld has already been done)... so I think it should really either be golfing in (your or vanilla) wireworld, or code that generates wireworld automata to fulfil certain tasks. both of the latter do need an implementation from us though, but I think they could both be very interesting.
@MartinBüttner I totally agree that golfing my version would not be fun while golfing the circuitry it can make would be. I'd prefer to use my version rather than vanilla just for something different, I just don't know if I'd have the time/energy to implement it (and I don't want to ask/force anyone else to).
in principle, I wouldn't mind helping out, but I'm not sure I can justify this kind of effort with my final-year project looming over me and me already wasting enough time on PPCG anyway :D
@Calvin'sHobbies you could always strip down the concept
e.g. for a golfing-in-wireworld challenge you wouldn't really need the buttons and displays
and you could probably simplify the module concept, too, by not matching up one-by-one, but by treating them similarly to tunnels (all inputs on one side are neighbours to all the cells on the that side within the module)
@MartinBüttner But then how could you make a module with 2 or more distinct inputs/outputs. The signals would all cross. I guess they could have 4, one for each side, but that still seems limited.