Conway's Game of Life circuit development thread!

    Where did you learn about logic?


    • Total voters
      19

    Fellow Starmadian

    Oh cool so thats what this is
    Joined
    Jun 7, 2014
    Messages
    227
    Reaction score
    87
    • Community Content - Bronze 1
    • Wired for Logic
    • Legacy Citizen 2
    Fellow Starmadian's Conway Circuit development Thread!

    (sorry in advance for the wall of text, if you want to miss the back story just don't open the spoiler, lol)
    A few years ago, I heard this thing called "Conways Game of Life" (or just Life) on the science channel, in Steven Hawkings "The meaning of Life". Created by John Horton Conway in 1970 to simplify a idea by a mathematician in the 1940s. His program gained much popularity over the years, with cash prizes for creating revolutionary patterns, like the gosper glider gun:

    When I first heard of Conways game, I didn't think much of it. I just said, "huh, neat!" and it went to the back of my mind. Then one day while I was browsing the web, I found it again, and my interest was immediately piqued. I don't remember where I saw it first, but here is a good online program that simulates John Conway's game. If you want a more fleshed out program to mess with, Golly is the program for you. It comes with tons of super complex patterns I probably wont ever understand, and lots of tools to make messing with the patterns easier.

    After spending many a home room class doing these out ON PAPER (granted they were much simpler than the ones shown above and below), I decided to see if I could build a modular cell in Starmade that would allow me to play with this in-game,analogous to the calculators and printers and other such things that people in minecraft have created.

    So after about twenty minutes of google searching, I discovered a logic design for a modular Life cell, using simple logic and half/full adders. After about 10 hours I figured out how to put the darned thing together, and then another 4 just to connect each cell to the ones adjacent to it to make a large grid. Much to my chagrin I discovered after all that work there were serious gliches! I did manage to get a pattern called the "tumbler" working though, and made a GIF of it as a proof of concept:

    Now this gif isn't in regular speed, oh no. The circuit caused so much lag that this 1 second of calculation would take about 5-10 seconds to complete... This circuit obviously wouldn't be able to be used freely on a server. The admins would just delete it, and possibly me!

    So I put the idea in a drawer and let it collect dust. But then, a couple days ago, I stumbled upon this thread: Stormwing0's logic clock thread. After spamming it with slightly off-topic ramblings about logical discovery and splendor, I decided to create my own thread so I can get focused feedback on my project. Stormwing0's question was simple, can I make this logic clock pulse faster? Thanks to a post and download by Amimai, that got me started on the adventure of remaking my favorite logic circuit ever.

    His simplified design, based on Olxinos' work, introduced a very simple method to double the pulse of a delay block. This method pulsed however many times you wanted as you added more of the flip flop modules onto each other. The issue with this circuit, though, is that it all pulsed in a single frame. I discovered that the logic cannot actually read any pulses over 4htz per frame, so I had to think up a new way of doing it. After a couple days of R&D I discovered that by using a series of docked ships on a rail, I could make a pretty quick pulse, but extended over many frames, not all in one. It's speed doesn't scale as well as his method, but it all seems to work with advanced logic.
    I made a conway's game of life circuit a long time ago in starmade, but it was too glitchy to use even after spending about a days worth of my time on it so I let it collect dust, until Amimai showed me an overclocking flip-flop circuit that would allow me to make circuits faster. *deep breath* The reason this makes my conway circuit worthwhile again is because of a theory I have which is still untested that the lag of my old circuit was caused by quantity of logic blocks not the speed at which it needed to be calculated which is why I made this thread to show my idea and ask for feed back and maybe some pointers and criticism *gasp*

    This thread was created to discuss / post updates to my Conway's Game of Life project I've been working on sporadically for the past few months. I would greatly appreciate any feedback you have! Please let me know what you, the more advanced logic users of starmade, think of this idea!

    A recent break through has allowed me to really test out some advanced functions with star made logic. Instead of having every cell calculated at the same time, I would be able to use my rail clock to calculate each cell individually, very quickly. This system is powered by several rail-docked cores toggling buttons, and Amimai's simplified flip-flop overclocker. The possibilities of this circuit are pretty amazing, the least of which is using it to cut down on the block count of a circuit based off of some computer game made in the 1970's. My mind is racing with ideas for future applications of display grids!

    Early testing of the First Life cell and the logic underneath:


    --------------------
    Here's a picture of the old and new cell next to each other, for comparison:
    The new cell doesn't need to be compact like the old one, as there should only be a few of it. It's located in the overclock test ship .sment

    --------------------
    And here's a picture of the logic I plan to expand on when I start testing the life module with my clock:
    This logic is part of the rail overclocker .sment

    I've uploaded a couple .sment files for you all to tinker with:
    - My most recent rail clock design, viewable in the top image.
    - A testing platform full of failed attempts, as well as a working logic portion for a life cell.
    (oct/14/2015) Having some trouble with the demonstration of a 3x3 Life grid.. nothing project killing, though.
    (oct/16/2015) Still having trouble with the demonstration, got sidetracked and built a tic-tac-toe game :p

    Edit: restructured the post, added some images, and changed the downloads to .sments
    Edit 2: added updates / to-do list
     

    Attachments

    Last edited:

    Fellow Starmadian

    Oh cool so thats what this is
    Joined
    Jun 7, 2014
    Messages
    227
    Reaction score
    87
    • Community Content - Bronze 1
    • Wired for Logic
    • Legacy Citizen 2
    Ill upload sments, and add some pics, sorry about that :)
    I made that thread at about 3 O'clock in the morning, I was sure to forget something simple, lol
    [DOUBLEPOST=1444315070,1444314542][/DOUBLEPOST]Ill have to do it this afternoon, sorry for the wait!
     

    Fellow Starmadian

    Oh cool so thats what this is
    Joined
    Jun 7, 2014
    Messages
    227
    Reaction score
    87
    • Community Content - Bronze 1
    • Wired for Logic
    • Legacy Citizen 2
    Thanks for the link, Crashmaster! I didn't know the volksschiff thread existed and I wasn't able to find the smallest-fastest thread until now. One question regarding olxinos' circuit though. Does it pulse all in the same frame? If so that might mean that I can't use it for advanced logic :/ Also, based on Jasskinal's design, it looks like my clock design was a case of Multiple Discovery. I straight up copied from you though Olxinos & Amimai, lol.

    I noticed that my rail clock messes up when lag gets introduced (had 30 chrome tabs open from school research), as I discovered last night at 3:30AM:confused:.. Sometimes it would just start to miss latches.. Maybe one of the other methods can solve this problem?
     

    Crashmaster

    I got N64 problems but a bitch ain't one
    Joined
    Oct 18, 2013
    Messages
    453
    Reaction score
    361
    I don't remember specifics from Olixnis except the 'pulse shortener' the most useful trick of all IMO. If you have a two-state 'on/off' clock and try to use 'not-off' as another 'on' you end up with constant 'on.' With the 'pulse shortener' you shorten both 'on' and 'not-off' to momentary, eliminating the constant 'on' problem and doubling your clock rate without cramming all the pulses into one moment.

    The signal goes to a flipflop and an activation module, the activation module then goes to the flipflop, the flip flop is off. A signal turns both the activation module and the flipflop on, then due to instant pulses theory the activation module turns the flipflop back off again after it has outputted a momentary 'on' pulse. If the flipflop is off it sends 'off' pulses.

    Here is what I think is the best clock design given a 4hz limit running a cannon-cannon and a counter;
    The simple counter is for display only, flawed, cross-triggers at logic speeds




    This clock has the potential to double it's speed using not gates and pairs of pulse shorteners at each of it's four outputs. I didn't notice a corresponding cannon-cannon fire rate vs. the 4hz clock and so also arrived at a probable arbitrary operational speed limit but for cannon-cannon in my case. Might work better for your needs;
    http://starmadedock.net/content/volksschiff-small-clock.3062/

    A few other random;

    Separate your binary counter increment function from the assess function; On your design you would need to merge all the inputs to your counter through an activation module (it can keep up), then you have a not gate off that common input activation module (which increments the counter) that is connected to each of the and gates in the array that assesses the binary counter. This prevents cross-triggering the and gates for certain binary positions that become momentarily true while incrementing the counter due to - yes, instant pulses, since it prevents any possible true outcomes until the counter is finished incrementing. phew

    True off; Also link a master on/off activation module to all of the and gates in the assess array. Especially if you are using it to fire missiles, otherwise since one of the binary positions is bound to be true at all times, every time you load the device or the sector it is in, it will fire at that unsaved thing over there.

    Still trying to figure out how to turn this thing on here.
    Ah, ok, that's pretty fast all right. The parallel clocks synch up just like the others though.
    So; high frequency, usable signal, reliability, pick two.
     
    Last edited:

    Fellow Starmadian

    Oh cool so thats what this is
    Joined
    Jun 7, 2014
    Messages
    227
    Reaction score
    87
    • Community Content - Bronze 1
    • Wired for Logic
    • Legacy Citizen 2
    I understand what you said with the NOT gate and activation module, brilliant BTW, thanks! I'll have to take a look at your small clock as well, it might be more reliable to overclock than my circuit. The only thing I don't get is what you mean when you mention the assess array and/or assess function. By "assess" do you mean the logic that is shown in the last image of my post? And this "instant pulses theory" interests me, as I'm sure I had this happen to me before. I'll browse the forums for a while and see if I can find anything of merit in regards to this.
     

    Dr. Whammy

    Executive Constructologist of the United Star Axis
    Joined
    Jul 22, 2014
    Messages
    1,793
    Reaction score
    1,735
    • Thinking Positive
    • Likeable Gold
    • Legacy Citizen 9
    Wow...

    You have literally built a CPU in starmade... As visually pleasing as my builds may be, NOTHING I do will ever be as awesome as this...

    Respect :eek:
     
    Last edited:
    Joined
    Mar 1, 2015
    Messages
    291
    Reaction score
    177
    • Wired for Logic
    • Community Content - Bronze 2
    • Purchased!
    Really cool. Watching this for sure. I wonder, are you planning to make a 3D version?
     

    Fellow Starmadian

    Oh cool so thats what this is
    Joined
    Jun 7, 2014
    Messages
    227
    Reaction score
    87
    • Community Content - Bronze 1
    • Wired for Logic
    • Legacy Citizen 2
    Thanks Dr. Whammy, but I dont think I deserve THAT level of praise, lol. Most of what I did was just build off of what others had already designed. All the same, my ego bar got a little boost :D

    Hmm, never thought of that before Trekkerjoe! If you mean 3d Life, then that would require a completely different logic calculation, while still using the over clock method. If you mean for a programmable 3d array, I think that for each programmable period/delay block of the circuit, you would need to store the HIGH positions of lights in latches or flip-flops, and overclocking can probably stay the same if we use AND gates instead of delays. Can you see this in starmade?
    Im getting shivers, :D

    Edit: because its not cool to not answer Dr. Whammy
     
    Last edited:
    Joined
    Mar 1, 2015
    Messages
    291
    Reaction score
    177
    • Wired for Logic
    • Community Content - Bronze 2
    • Purchased!
    Thanks Dr. Whammy, but I dont think I deserve THAT level of praise, lol. Most of what I did was just build off of what others had already designed. All the same, my ego bar got a little boost :D

    Hmm, never thought of that before Trekkerjoe! If you mean 3d Life, then that would require a completely different logic calculation, while still using the over clock method. If you mean for a programmable 3d array, I think that for each programmable period/delay block of the circuit, you would need to store the HIGH positions of lights in latches or flip-flops, and overclocking can probably stay the same if we use AND gates instead of delays. Can you see this in starmade?
    Im getting shivers, :D

    Edit: because its not cool to not answer Dr. Whammy
    Looks like the perfect use for the forcefield blocks, and it would look pretty awesome. Also, how much do the rules change for 3d game of life?
     
    Joined
    Jun 27, 2013
    Messages
    896
    Reaction score
    166
    Looks like the perfect use for the forcefield blocks, and it would look pretty awesome.
    I tried that to make a "holographic" display indicating docking platform status.
    The problem is, faces obscured by another force field don't render at the moment, even if that other force field is deactivated, so it kind-of works for a two-dimensional array where you can see the top faces, but as far as I can tell, it wouldn't work in a three-dimensional setup where the inner force field blocks are obscured by outer layers.
     
    Joined
    Mar 1, 2015
    Messages
    291
    Reaction score
    177
    • Wired for Logic
    • Community Content - Bronze 2
    • Purchased!
    I tried that to make a "holographic" display indicating docking platform status.
    The problem is, faces obscured by another force field don't render at the moment, even if that other force field is deactivated, so it kind-of works for a two-dimensional array where you can see the top faces, but as far as I can tell, it wouldn't work in a three-dimensional setup where the inner force field blocks are obscured by outer layers.
    Looks like you might have to use some rail trickery to get 3d holograms. If my computer would handle it, I would show you what I mean. Instead, I will just suggest it. You could dock two entities with an alternating pattern of holograms. Since they are alternating, the gaps between the holograms allow all the faces to render. Dock another display with a pattern that meshes in with the first one, and despite the adjacency of the holograms, all of the faces would render. The only problem is that it would be a pain to wire up the wireless logic.

    EDIT: Properly quoting this time.
     
    Last edited:
    Joined
    Jun 27, 2013
    Messages
    896
    Reaction score
    166
    You could dock two entities with an alternating pattern of holograms. Since they are alternating, the gaps between the holograms allow all the faces to render. Dock another display with a pattern that meshes in with the first one, and despite the adjacency of the holograms, all of the faces would render. The only problem is that it would be a pain to wire up the wireless logic.
    Sounds like a hell of a kludge, but it might actually work...
     

    Fellow Starmadian

    Oh cool so thats what this is
    Joined
    Jun 7, 2014
    Messages
    227
    Reaction score
    87
    • Community Content - Bronze 1
    • Wired for Logic
    • Legacy Citizen 2
    So I was testing to see if the NPCs got motion sickness, and it gave me an idea... I present to you, the reliable overclock:
    (bad loop is bad, the logic doesn't skip at all I swear)
    If you can't tell how it works, this design uses a seated astronaut to activate a bunch of area controllers, which are all connected to one of those flip-flop things. (makes you quite dizzy when you sit in the spot that astronaut is sitting)

    The overclocker doesn't care if there is lag, as the pulse will just become erratic. No matter how erratic the pulse, it does not stop the counter from counting correctly as no matter what, only one of the activators can activate at a time. It can be sped up too, by increasing the length of the rotor and diameter of the cirle it spins on. The only issue is that the spinning is sometimes stopped by an auto save, but I believe that can be repaired with some error-detecting logic. just a series of delays that re-activates the pulse for the rotor unless they are kept high every rotation.

    If there is any way to make a pulse using only logic and not have it all occur in the same frame, I'm all ears. Because quite frankly this design could use some improvements.. lol. I have checked the links threads that you ppl directed me to, but I'm not sure it's what I need for this project.

    Tomorrow I begin testing my cell calculation circuit with this overclocked pulse, hopefully with much success!

    P.S. I've encountered a bug when copying / pasting my calculation logic onto ships other than the one it was created on.. Anyone know what's happening? I posted a bug thread if ya'll have any insights.

    edit: grammar
     
    Last edited:

    Fellow Starmadian

    Oh cool so thats what this is
    Joined
    Jun 7, 2014
    Messages
    227
    Reaction score
    87
    • Community Content - Bronze 1
    • Wired for Logic
    • Legacy Citizen 2
    Looks like you might have to use some rail trickery to get 3d holograms. If my computer would handle it, I would show you what I mean. Instead, I will just suggest it. You could dock two entities with an alternating pattern of holograms. Since they are alternating, the gaps between the holograms allow all the faces to render. Dock another display with a pattern that meshes in with the first one, and despite the adjacency of the holograms, all of the faces would render. The only problem is that it would be a pain to wire up the wireless logic.

    EDIT: Properly quoting this time.
    Made a little demonstration showing what a small grid of the docked hologram would look like! Looks pretty cool, and I think it would look even better in a larger grid!

    And in regards to 3D game of life, As I understand it there are a couple criteria that need to be met:
    1: there needs to be no explosive growth
    2: there need to be small patterns, capable of explosive growth
    3: it must be capable of producing complex patterns, such as space ships, replicators, and things like Turing machines.
    4: rules must remain fairly simple, given the constraints above.
    All gobbledygook aside, I think 3D Life MIGHT be possible for starmade, but it would probably be pretty darn complex compared to the 2D version. In my hour of research, I was unable to find a definitive, "working" rule-set for our purposes.. I did find some web pages regarding different versions of Life, but it seems they are not well documented, so without a lot more research I don't know if it's worth it to develop a circuit or not.

    Below is the download I forgot to add for my new overclocker, and also the download for the hologram demonstration. Please let me know if anything is wrong with them!
     

    Attachments

    • Like
    Reactions: Rumcajz

    Fellow Starmadian

    Oh cool so thats what this is
    Joined
    Jun 7, 2014
    Messages
    227
    Reaction score
    87
    • Community Content - Bronze 1
    • Wired for Logic
    • Legacy Citizen 2
    I'm working on the 3x3 grid for Conway's Game, but I ran into an error, with what I can only assume to involve instant pulses in the array of AND gates used for selecting each individual cell for calculations. it kind of works, though.. lol

    The circuit loops correctly, although it might not seem that way due to my GIF looping skills, lol. It cycles through the 9 AND gates, then resets and does it again. This circuit is of course slowed down for testing purposes and GIF taking purposes, the finished product should be much faster.

    The circuit operates by cycling through two seperate binary counters: one for the "rows" of and gates, and one for the "columns". When the "column" counter reaches binary 00 (both flip-flops on) it activates a pulse shortener (previously referred to by myself as a flip-flop overclocker.) that increments the row counter. When decimal 9 is reached in the grid of AND gates, that also sets off a pulse shortener that increments the "row" binary counter, to prepare it for the next round of counting.

    I would upload this circuit as is, but I think it will have to be uploaded in it's finished form. With all the logic working and maybe a small panel to activate the cells with, it would be much better of an upload in my opinion.
     
    Joined
    Nov 30, 2015
    Messages
    855
    Reaction score
    75
    I'm working on the 3x3 grid for Conway's Game, but I ran into an error, with what I can only assume to involve instant pulses in the array of AND gates used for selecting each individual cell for calculations. it kind of works, though.. lol

    The circuit loops correctly, although it might not seem that way due to my GIF looping skills, lol. It cycles through the 9 AND gates, then resets and does it again. This circuit is of course slowed down for testing purposes and GIF taking purposes, the finished product should be much faster.

    The circuit operates by cycling through two seperate binary counters: one for the "rows" of and gates, and one for the "columns". When the "column" counter reaches binary 00 (both flip-flops on) it activates a pulse shortener (previously referred to by myself as a flip-flop overclocker.) that increments the row counter. When decimal 9 is reached in the grid of AND gates, that also sets off a pulse shortener that increments the "row" binary counter, to prepare it for the next round of counting.

    I would upload this circuit as is, but I think it will have to be uploaded in it's finished form. With all the logic working and maybe a small panel to activate the cells with, it would be much better of an upload in my opinion.
    Any progress on this? It's still in your signature, which is how I found it, and I wanted to know if you had dropped the idea or if you're still on it.

    It's been more than a year...
     

    Fellow Starmadian

    Oh cool so thats what this is
    Joined
    Jun 7, 2014
    Messages
    227
    Reaction score
    87
    • Community Content - Bronze 1
    • Wired for Logic
    • Legacy Citizen 2
    I'm still on it, I'm just a very lazy person, lol... But since you mentioned it, suddenly I feel silly for not doing it for so long :/

    I give you my word as an anonymous person on the internet, I'll be working on this project actively now! (I'll update soon™)
     
    • Like
    Reactions: Nickizzy

    Fellow Starmadian

    Oh cool so thats what this is
    Joined
    Jun 7, 2014
    Messages
    227
    Reaction score
    87
    • Community Content - Bronze 1
    • Wired for Logic
    • Legacy Citizen 2
    Heh, I'm really regretting not using display blocks on this. But I'm thinking I need to remake it anyway, I might be able to cut down on the size a bit!
    [doublepost=1476291589,1476290675][/doublepost]The circuit still functions perfectly, and tonight I'll put a lot of good work into it. Hopefully that I have a lot more experience under my belt, I can actually complete the recursive CGOF circuit. Yes the ball is definitely rolling with this project again!