Hello everyone, I'm Deamon admin and redstoneer of The Voxel Box minecraft creative SMP server. This is just a quick post on TheWoodyMan and myself's latest redstone project, I'll be updating this thread as the project advances and I'll be doing regular updates via posts on this thread and youtube video explanations.
Now then, the actual project is to create an instant redstone computer, I am using a glitch/feature with pistons that allows them to retract in 0-ticks thus signals can be sent theoretically infinite distances with zero delay, sounds fantastic, well it is. Using this in some interesting ways I manged to put together logic gates that operate in 0-ticks and from this I will be putting together a full 8-bit computer.
This piston feature I believe was originally put out there by tavirider and expanded upon by SethBling, but neither of them was able to put together a full range of logic gates and neither of them ever took it any farther I believe. BUT using a new non-conventional system of building circuits I have managed to put together a full range of logic gates (OR, NOR, AND, NAND, XOR and XNOR). Since instant redstone doesn't hold a state, trying to cling to systems based on having single wires with on and off states is pointless, for instant redstone to work I realized that a pulse based system was necessary. Thus instead of each bit being comprised of a single line with 2 states, each bit in instant redstone consists of 2 wires or a positive line and a negative line as I have named them. If the pulse goes down the positive line this is the equivalent in a conventional system of a wire in the on-state, likewise if the pulse goes down the negative line it equals a wire in the off-state. So from these I put together all the main logic gates needed for putting together a computer system.
So cutting ahead to where I am now. My instant 8-bit ALU is complete. It has four functions add, AND, OR and NOT and is completely instant and interfaceable with other instant components. Some time I'll probably start hooking it up to TheWoodyMan's instant RAM and generally turning it into a full computer.
NEW! TheWoodyMan has just finished his instant CPU, we have been working in parallel on this one each using a slightly different method of doing things. It has all the same functions as mine and has currently 4 bytes of on-board memory. TheWoodyMan has been specifically arranging components to make it look more like an actual circuit board. Take a look:
Video of my ALU and basic logic gates.
The ALU seen from the side of the outputs.
The gates for OR, AND and NOT.
The attentive viewer will notice that OR and AND gates are inverses of each other and that the NOT gate is a simple switching of the positive and negative wires.
The multiplexor with debugging inputs seen at the bottom.
Video on my full adder:
Adder images:
Top down
And the full 8-bit adder I'll be using in my computer:
It currently uses 950 pistons, but it seems that the old crash bug has been fixed as TheWoodyMan and I successfully tested 5000 pistons at once last night. (yay)
Thanks for reading and stay tuned for more updates concerning this project, for instant updates on this project why not subscribe to my channel: My channel or for other minecraft videos and awesome stuff from The Voxel Box subscribe to The Voxel Box's channel or check out the Website or the Wiki for information on applying to The Voxel Box creative SMP server.
Your IRL computer isnt quautum,so how can you make something quatum inside it?
Also theorectilcy your computer is quantum but in actuality it isnt...
Jammin123
I know I know :tongue.gif: the name is a bit of a joke. I know real quantum computers operate of a diffrent system of multiple more states and whatnot, but people just assosiate quantum with fast so I though it would be an apt name.
I was waiting for someone to build a computer using instatnt wires.
I am not good enough in redstone to make one myself.
Will it be faster than standard hidden piston doors?
The ultimate goal would be to have a 1-tick clock cycle (one line of code per tick or 10Hz), any faster and the signal would catch up with itself. TheWoodyMan has put together some RAM with a 0-tick write speed and a 1-tick read speed which should do the trick for that delay. So yes faster than a piston door.
So that's ONE full adder. The size is ridiculous, but if you really manage to make a computer only limited by the speed of your system, wow. That's be mindblowingly amazing.
One question though, how can the gates be instant if the pistons still have to go forwards again? The result could be instant, but wouldn't you have to wait until the pistons have later been pushed out again?
I still wouldn't call this "quantum." Most of the people on the redstone forums are pretty smart, so they'd probably know that quantum is not equivalent to fast. When I saw this, I was literally expecting a computer with multiple states/more quantum-y.
Still, this is pretty exciting, but how will you get around the 1000 block update limit? I suspect that an instant computer's speed will be based on how large it is, with smaller actually being FASTER.
Edit: Okay, you changed the title to not be "quantum." This is pretty awesome, I don't think anyone's made anything more complex than an instant and gate before.
I know I know :tongue.gif: the name is a bit of a joke. I know real quantum computers operate of a diffrent system of multiple more states and whatnot, but people just assosiate quantum with fast so I though it would be an apt name.
Nope! People associate Quantum with complexity, and in turn, they indirectly associate it with highly-organized and thought-out systems which are capable of high speeds. Quantum computer make very direct use of both entanglement and superposition, neither of which currently exist in the redstone world. Well I guess entanglement kinda does with all this instant-wire hubbub, but it is based on super-positioning which cannot be done in Minecraft simply due to the relatively low-level coding.
Do not name this a quantum computer if it is not so... Just call it a pseudo-instant computer (pseudo because you still have to clock everything and store it in flip-flops).
So that's ONE full adder. The size is ridiculous, but if you really manage to make a computer only limited by the speed of your system, wow. That's be mindblowingly amazing.
One question though, how can the gates be instant if the pistons still have to go forwards again? The result could be instant, but wouldn't you have to wait until the pistons have later been pushed out again?
Wait, that was actually two questions. Whatever.
the design I have basically starts to pull the piston back and then immediatly pushes it forward again, I don't know if the block even leaves entity form at the back end of the pull. So, no you don't have to wait for it all to go back out again.
I still wouldn't call this "quantum." Most of the people on the redstone forums are pretty smart, so they'd probably know that quantum is not equivalent to fast. When I saw this, I was literally expecting a computer with multiple states/more quantum-y.
Still, this is pretty exciting, but how will you get around the 1000 block update limit? I suspect that an instant computer's speed will be based on how large it is, with smaller actually being FASTER.
It is on an SMP server so size isn't an issue as I just log in more clients to load more chunks, and there is deffinitly no 1000-block update limit, we've sent signals more than 3000 blocks before. Theres even a video of it on VoxelBoxVideos.
Nope! People associate Quantum with complexity, and in turn, they indirectly associate it with highly-organized and thought-out systems which are capable of high speeds. Quantum computer make very direct use of both entanglement and superposition, neither of which currently exist in the redstone world. Well I guess entanglement kinda does with all this instant-wire hubbub, but it is based on super-positioning which cannot be done in Minecraft simply due to the relatively low-level coding.
Do not name this a quantum computer if it is not so... Just call it a pseudo-instant computer (pseudo because you still have to clock everything and store it in flip-flops).
Gah, you people have no sense of humour. :tongue.gif:
I was thinking of trying something like this, but you just blew my mind. Good job!
Rollback Post to RevisionRollBack
If I've helped in any way, or made some sort of constructive comment, there's a little green plus sign in the bottom right corner of the post. Click it to let me know!
I wish I knew what a full adder was. The quantum-stuff got me intrigued. I have a low understanding of quantum physics.
Rollback Post to RevisionRollBack
"I'm learning real skills that I can apply throughout the rest of my life ... Procrastinating and rationalizing.
I understand my tests are popular reading in the teachers' lounge." -Watterson
Now before we get to excited, merry Christmas! Back on topic, I have experienced pistons glitches in large-scale Redstone creations of mine, they seemingly occur at random and I have no knowledge on how to fix them, so I just wanted to bring this up maybe for discussion and something to keep in mind.
Having played with redstone in the past, I'm wondering how you're making your logic gates. If you're making them as a direct translation of truth tables, perhaps you'd be better off completely skipping logic gates and implementing combinatoric circuits as truth tables.
Actually, I think I'll play around with this myself. First time playing Minecraft in a while. Congrats, you got me hooked again, damn it :|
Rollback Post to RevisionRollBack
My Youtube channel.
Contains Pachebel's Canon made with noteblocks, a working Rubik's cube made with pistons, and the ultimate TNT cannon.
Interesting stuff! For those of us who have never seen this glitch before, do you have some reference to some explanation of how/why it works?
It's not that difficult to explain. When the wire turns off the piston retracts instantly, then 1 tick later the torch turns on and the piston pushes back out again. I'm not sure that could handle a signal every tick, but should be fine at 1 on, 1 off.
After playing around with this design, I discovered how logic works with instant pistons:
A variable x has two values: True or False. Data moves through instant pistons via pulses. A single wire can only carry either a True or False value, since both values are still just pulses and whatever is reading it can't tell the difference (when everything is kept instantaneous). With a single wire, there is no way to negate the value since the wire doesn't have the capacity to hold the opposite value. Therefore, a variable requires a "True" wire and a "False" wire.
The instant piston is a transistor. Transistors in parallel (output wire is connected together) forms an "AND gate" (not quite): If all input pulses exist, there will be an output pulse. Transistors in series (two or more pistons pulling back the same block that powers the output wire) forms an "OR gate": If any input pulse exists, there will be an output pulse. These are more like bit operators rather than logic gates since no conclusion can be made when an output pulse doesn't exist (there's no output pulse when the clock isn't running).
If one were to make logic gates out of these bit operators, one would need a set of operators for the "True" output, and another set of operators for the "False" outputs, combined into a single module that is the logic gate. Negation (a NOT gate) is simply switching the "True" wire with the "False" wire. One way to optimize space is by working with the bit operators themselves (ie split up the "True" and the "False" outputs) rather than the bulky logic gates. It's unfortunately not what we're used to (more like unary instead of binary), but it's an effective strategy since whole logic gates use a lot more wiring and would take up a lot more space.
I attempted to make an inverter taking two inputs: a single wire acting as a variable and a clock signal. If the input variable has a pulse at the same time as the clock signal, there would be no output pulse. If the input variable has no pulse when there is a clock signal, there will be an output pulse. If you manage to do it, "True" would be represented by the existence of a pulse, and "False" the lack thereof, and no conclusion when the clock is not running. It would theoretically cut the space needed in half, since only a single wire and half the bit operators would be necessary.
Having played with redstone in the past, I'm wondering how you're making your logic gates. If you're making them as a direct translation of truth tables, perhaps you'd be better off completely skipping logic gates and implementing combinatoric circuits as truth tables.
Actually, I think I'll play around with this myself. First time playing Minecraft in a while. Congrats, you got me hooked again, damn it :|
Good point, I'll certainly give that some thought when I have some time later.
It's not that difficult to explain. When the wire turns off the piston retracts instantly, then 1 tick later the torch turns on and the piston pushes back out again. I'm not sure that could handle a signal every tick, but should be fine at 1 on, 1 off.
No it requires at least 2 off 2 on. Unfortunately.
Just to clarify, this computer has absolutely nothing to do with quantum computing.
Although sometimes I mess up and circuits 'go quantum' as I call it when both a positive and negative pulse is sent at the same time, generally messing everything up.
After playing around with this design, I discovered how logic works with instant pistons:
A variable x has two values: True or False. Data moves through instant pistons via pulses. A single wire can only carry either a True or False value, since both values are still just pulses and whatever is reading it can't tell the difference (when everything is kept instantaneous). With a single wire, there is no way to negate the value since the wire doesn't have the capacity to hold the opposite value. Therefore, a variable requires a "True" wire and a "False" wire.
The instant piston is a transistor. Transistors in parallel (output wire is connected together) forms an "AND gate" (not quite): If all input pulses exist, there will be an output pulse. Transistors in series (two or more pistons pulling back the same block that powers the output wire) forms an "OR gate": If any input pulse exists, there will be an output pulse. These are more like bit operators rather than logic gates since no conclusion can be made when an output pulse doesn't exist (there's no output pulse when the clock isn't running).
If one were to make logic gates out of these bit operators, one would need a set of operators for the "True" output, and another set of operators for the "False" outputs, combined into a single module that is the logic gate. Negation (a NOT gate) is simply switching the "True" wire with the "False" wire. One way to optimize space is by working with the bit operators themselves (ie split up the "True" and the "False" outputs) rather than the bulky logic gates. It's unfortunately not what we're used to (more like unary instead of binary), but it's an effective strategy since whole logic gates use a lot more wiring and would take up a lot more space.
I attempted to make an inverter taking two inputs: a single wire acting as a variable and a clock signal. If the input variable has a pulse at the same time as the clock signal, there would be no output pulse. If the input variable has no pulse when there is a clock signal, there will be an output pulse. If you manage to do it, "True" would be represented by the existence of a pulse, and "False" the lack thereof, and no conclusion when the clock is not running. It would theoretically cut the space needed in half, since only a single wire and half the bit operators would be necessary.
sorry, too lazy to take/upload screenshots :X
That is my thought process exactly, glad to see I'm not totally insane :smile.gif:. As to the 2 wire NOT gate you were trying to make TheWoodyMan was trying to get 1-wire instant logic to work (with a clock input as well) and found an annoying glitch that makes it impossible.
This is what he came up with:
The clock is the wire at the top and the A input is the wire going into the two transistors. The theory being that if there is an A input both will be pulled back but the bottom transistor will block the top one and the output won't be activated, but if there is no A input when the clock goes, just the top transistor will go and it will not be blocked thus the output with activate. But there is an invisible timing discrepancy where the bottom piston won't block the top one around 70% of the time.
In my opinion going with a 2-wire system is the only way this can work.
In other news TheWoodyMan and I just finished compacting the gates, putting together a more efficient full adder and then stacking it into an 8-bit adder. Just finished running a series of test and it is working perfectly and instantly.
Here is an image:
It currently uses 417 pistons which may make it a little tight in the future with the maximum instant pistons you can have going at once. When we first were playing around with instant pistons back when it was first discovered we found a hard cap at around 824 pistons depending on server load, past this point the server will just crash for almost seemly no reason. Even with our now updated server and minecraft updates we still are only banking on a quota of 1000 pistons before the server crashes, although we are going to do some testing on that tonight to re-find our cap, and to see if it gives any error stacks we can fix ourselves.
I'm guessing that, if the limit of the total number of pistons is too small, you'll compromise with a combination of ordinary redstone logic and instant pistons? Or maybe separate each cycle into subcycles to relieve the number of simultaneous piston movements. In any case, I remember there was a discussion thread on an incredibly fast full adder somewhere in this forum. There's probably other super-fast redstone tech buried around here.
Rollback Post to RevisionRollBack
My Youtube channel.
Contains Pachebel's Canon made with noteblocks, a working Rubik's cube made with pistons, and the ultimate TNT cannon.
Now then, the actual project is to create an instant redstone computer, I am using a glitch/feature with pistons that allows them to retract in 0-ticks thus signals can be sent theoretically infinite distances with zero delay, sounds fantastic, well it is. Using this in some interesting ways I manged to put together logic gates that operate in 0-ticks and from this I will be putting together a full 8-bit computer.
This piston feature I believe was originally put out there by tavirider and expanded upon by SethBling, but neither of them was able to put together a full range of logic gates and neither of them ever took it any farther I believe. BUT using a new non-conventional system of building circuits I have managed to put together a full range of logic gates (OR, NOR, AND, NAND, XOR and XNOR). Since instant redstone doesn't hold a state, trying to cling to systems based on having single wires with on and off states is pointless, for instant redstone to work I realized that a pulse based system was necessary. Thus instead of each bit being comprised of a single line with 2 states, each bit in instant redstone consists of 2 wires or a positive line and a negative line as I have named them. If the pulse goes down the positive line this is the equivalent in a conventional system of a wire in the on-state, likewise if the pulse goes down the negative line it equals a wire in the off-state. So from these I put together all the main logic gates needed for putting together a computer system.
So cutting ahead to where I am now. My instant 8-bit ALU is complete. It has four functions add, AND, OR and NOT and is completely instant and interfaceable with other instant components. Some time I'll probably start hooking it up to TheWoodyMan's instant RAM and generally turning it into a full computer.
NEW! TheWoodyMan has just finished his instant CPU, we have been working in parallel on this one each using a slightly different method of doing things. It has all the same functions as mine and has currently 4 bytes of on-board memory. TheWoodyMan has been specifically arranging components to make it look more like an actual circuit board. Take a look:
Video of my ALU and basic logic gates.
The ALU seen from the side of the outputs.
The gates for OR, AND and NOT.
The attentive viewer will notice that OR and AND gates are inverses of each other and that the NOT gate is a simple switching of the positive and negative wires.
The multiplexor with debugging inputs seen at the bottom.
Video on my full adder:
Adder images:
Top down
And the full 8-bit adder I'll be using in my computer:
It currently uses 950 pistons, but it seems that the old crash bug has been fixed as TheWoodyMan and I successfully tested 5000 pistons at once last night. (yay)
Thanks for reading and stay tuned for more updates concerning this project, for instant updates on this project why not subscribe to my channel: My channel or for other minecraft videos and awesome stuff from The Voxel Box subscribe to The Voxel Box's channel or check out the Website or the Wiki for information on applying to The Voxel Box creative SMP server.
I know I know :tongue.gif: the name is a bit of a joke. I know real quantum computers operate of a diffrent system of multiple more states and whatnot, but people just assosiate quantum with fast so I though it would be an apt name.
The ultimate goal would be to have a 1-tick clock cycle (one line of code per tick or 10Hz), any faster and the signal would catch up with itself. TheWoodyMan has put together some RAM with a 0-tick write speed and a 1-tick read speed which should do the trick for that delay. So yes faster than a piston door.
One question though, how can the gates be instant if the pistons still have to go forwards again? The result could be instant, but wouldn't you have to wait until the pistons have later been pushed out again?
Wait, that was actually two questions. Whatever.
Still, this is pretty exciting, but how will you get around the 1000 block update limit? I suspect that an instant computer's speed will be based on how large it is, with smaller actually being FASTER.
Edit: Okay, you changed the title to not be "quantum." This is pretty awesome, I don't think anyone's made anything more complex than an instant and gate before.
Nope! People associate Quantum with complexity, and in turn, they indirectly associate it with highly-organized and thought-out systems which are capable of high speeds. Quantum computer make very direct use of both entanglement and superposition, neither of which currently exist in the redstone world. Well I guess entanglement kinda does with all this instant-wire hubbub, but it is based on super-positioning which cannot be done in Minecraft simply due to the relatively low-level coding.
Do not name this a quantum computer if it is not so... Just call it a pseudo-instant computer (pseudo because you still have to clock everything and store it in flip-flops).
the design I have basically starts to pull the piston back and then immediatly pushes it forward again, I don't know if the block even leaves entity form at the back end of the pull. So, no you don't have to wait for it all to go back out again.
It is on an SMP server so size isn't an issue as I just log in more clients to load more chunks, and there is deffinitly no 1000-block update limit, we've sent signals more than 3000 blocks before. Theres even a video of it on VoxelBoxVideos.
Gah, you people have no sense of humour. :tongue.gif:
I understand my tests are popular reading in the teachers' lounge." -Watterson
Check it out!
Actually, I think I'll play around with this myself. First time playing Minecraft in a while. Congrats, you got me hooked again, damn it :|
Contains Pachebel's Canon made with noteblocks, a working Rubik's cube made with pistons, and the ultimate TNT cannon.
It's not that difficult to explain. When the wire turns off the piston retracts instantly, then 1 tick later the torch turns on and the piston pushes back out again. I'm not sure that could handle a signal every tick, but should be fine at 1 on, 1 off.
A variable x has two values: True or False. Data moves through instant pistons via pulses. A single wire can only carry either a True or False value, since both values are still just pulses and whatever is reading it can't tell the difference (when everything is kept instantaneous). With a single wire, there is no way to negate the value since the wire doesn't have the capacity to hold the opposite value. Therefore, a variable requires a "True" wire and a "False" wire.
The instant piston is a transistor. Transistors in parallel (output wire is connected together) forms an "AND gate" (not quite): If all input pulses exist, there will be an output pulse. Transistors in series (two or more pistons pulling back the same block that powers the output wire) forms an "OR gate": If any input pulse exists, there will be an output pulse. These are more like bit operators rather than logic gates since no conclusion can be made when an output pulse doesn't exist (there's no output pulse when the clock isn't running).
If one were to make logic gates out of these bit operators, one would need a set of operators for the "True" output, and another set of operators for the "False" outputs, combined into a single module that is the logic gate. Negation (a NOT gate) is simply switching the "True" wire with the "False" wire. One way to optimize space is by working with the bit operators themselves (ie split up the "True" and the "False" outputs) rather than the bulky logic gates. It's unfortunately not what we're used to (more like unary instead of binary), but it's an effective strategy since whole logic gates use a lot more wiring and would take up a lot more space.
I attempted to make an inverter taking two inputs: a single wire acting as a variable and a clock signal. If the input variable has a pulse at the same time as the clock signal, there would be no output pulse. If the input variable has no pulse when there is a clock signal, there will be an output pulse. If you manage to do it, "True" would be represented by the existence of a pulse, and "False" the lack thereof, and no conclusion when the clock is not running. It would theoretically cut the space needed in half, since only a single wire and half the bit operators would be necessary.
sorry, too lazy to take/upload screenshots :X
Contains Pachebel's Canon made with noteblocks, a working Rubik's cube made with pistons, and the ultimate TNT cannon.
Good point, I'll certainly give that some thought when I have some time later.
No it requires at least 2 off 2 on. Unfortunately.
Although sometimes I mess up and circuits 'go quantum' as I call it when both a positive and negative pulse is sent at the same time, generally messing everything up.
That is my thought process exactly, glad to see I'm not totally insane :smile.gif:. As to the 2 wire NOT gate you were trying to make TheWoodyMan was trying to get 1-wire instant logic to work (with a clock input as well) and found an annoying glitch that makes it impossible.
This is what he came up with:
The clock is the wire at the top and the A input is the wire going into the two transistors. The theory being that if there is an A input both will be pulled back but the bottom transistor will block the top one and the output won't be activated, but if there is no A input when the clock goes, just the top transistor will go and it will not be blocked thus the output with activate. But there is an invisible timing discrepancy where the bottom piston won't block the top one around 70% of the time.
In my opinion going with a 2-wire system is the only way this can work.
Here is an image:
It currently uses 417 pistons which may make it a little tight in the future with the maximum instant pistons you can have going at once. When we first were playing around with instant pistons back when it was first discovered we found a hard cap at around 824 pistons depending on server load, past this point the server will just crash for almost seemly no reason. Even with our now updated server and minecraft updates we still are only banking on a quota of 1000 pistons before the server crashes, although we are going to do some testing on that tonight to re-find our cap, and to see if it gives any error stacks we can fix ourselves.
More on that later.
Contains Pachebel's Canon made with noteblocks, a working Rubik's cube made with pistons, and the ultimate TNT cannon.