
Fully Functional 1KB Hard Drive in Vanilla Minecraft - jonbaer
http://imgur.com/a/NJBuH
======
TheLoneWolfling
In recent versions of MC, you can do a much better delay line memory with
comparators. You can actually end up being able to store 2b / block (2 and not
4 because comparators have to be placed on something not a comparator.) - it
would be half that but there's a trick you can play to avoid requiring
redstone dust between comparators.

The delay is faster too - 1 redstone tick / 4 bits, or 40 bits/sec per line,
as opposed to this implementation's 1 bit / 8 redstone ticks / line, or 1.25
bits / sec / line. (Note that this implementation of piston tape is decidedly
suboptimal: the maximum is actually 3 bits / 4 redstone ticks / line = 7.5
bits/sec/line, as you can actually check for 8 different block types (glass /
solid / sticky/non-sticky piston facing 3 directions) and you can make a
faster-resetting piston loop.)

The biggest issue with comparator delay-line memory is that there's no way of
pausing it.

There's also a way of storing arbitrary amounts of data per block, and that's
to use the fact that items with NBT data will stack only when their NBT data
is identical. The easiest way to see this is to try to stack renamed items,
but there are others. You can make a hopper or dropper chain and encode data
in which line which enchanted item is in.

I have yet to see a practical implementation of the above, though.

~~~
skykooler
A comparator memory isn't really a hard drive, because it loses its data if
turned off.

~~~
TheLoneWolfling
Define "turned off". A comparator loop persists just fine without any input,
just like a piston loop.

It's non-volatile sequential access memory - which, in my opinion, is the same
category a hard drive falls under.

~~~
hornetblack
I'm not sure that delay lines will retain data when the chucks that hold them
are unloaded by the server.

~~~
TheLoneWolfling
Yep, they do.

Repeater delay lines used to not, but that bug was fixed.

------
dkhar
This is a good opportunity to plug ORE, a Minecraft community specifically for
this kind of thing:

[http://openredstone.org/](http://openredstone.org/)

That video on their main page is mind-boggling to me.

I have a friend who's a regular on that server, and he would occasionally
explain to me things like how they take advantage of how Minecraft's redstone
handling works to shave precious ticks off the latest ALU design's return
time, or how they created a fully vanilla-compatible "internet," to pass data
through wires between different people's machines.

They've got mods set up to copy and paste blocks, so you can build modular
systems out of components and avoid repetitive block-placing, but AFAIK,
everything else is vanilla. It's incredible.

~~~
mdellabitta
I have to ask: Has anybody managed to mine Bitcoin in Minecraft yet?

~~~
kordless
Interesting fact: If ENIAC was tasked with calculating the current Bitcoin
hashrate, it would have to mass as much as the world's oceans and would
require an earth's surface worth of solar panels to power it.

------
rmc
For people interested in how computers work, I recommend the book/course "From
NAND to Tetris - Building a Modern Computer From First Principles"[1]. It
starts of with boolean logic and NAND gates, and it steps you through making a
computer that can play tetris.

[1] [http://www.nand2tetris.org/](http://www.nand2tetris.org/)

~~~
akmiller
I haven't read that one, but I'll definitely check it out. I'd also recommend
Charles Petzold's book called "Code". One of the best technical books I've
ever read!

[http://www.amazon.com/Code-Language-Computer-Hardware-
Softwa...](http://www.amazon.com/Code-Language-Computer-Hardware-
Software/dp/0735611319)

~~~
drivers99
Besides "Code," I highly recommend "The Pattern on the Stone" by Danny Hillis,
who also happens to be the designer of Thinking Machines' massively parallel
supercomputer, the Connection Machine. It covers more material than Code in a
lot less time.

In "Code," Petzold makes sure to cover the material exteremely slowly so that
you won't miss any details, so it may get boring for some, but I would also
read Code if you have the time and interest.

------
dangayle
My nephew and his friends are 8-9 years old, and they're masters at building
this stuff. The redstone, the logic, the machines, all of it. It's all they
think about, all the time. Imagine what potential this early compsci education
is fostering?

We just have to remind them when they're older and are running things and
building amazing stuff that it's NOT OK to blow up other people's stuff with
tnt.

~~~
shawn-butler
Pretty much none.

I've never understood why people think gaming or play ever forms the
justification or basis for learning. Decade of nonsensical "gamification"
studies has had zero effect no matter what Jane McGonigal says.

Might get an interest or passion going but it has near-zero lasting
educational value.

~~~
ANTSANTS
There's zero educational value in designing and building digital circuits by
hand? What?

~~~
shawn-butler
Not zero. Near zero.

[http://en.wikipedia.org/wiki/Overjustification_effect](http://en.wikipedia.org/wiki/Overjustification_effect)
for a summary

And quit downvoting.

~~~
chandler5555
I think there's a difference between "gamification", i.e. doing tasks for
currency, points or prizes, and "video gaming", i.e. creating a circuit so
that your house door in Minecraft opens with a switch.

------
readerrrr
Game of life simulating itself.

[https://www.youtube.com/watch?v=xP5-iIeKXE8](https://www.youtube.com/watch?v=xP5-iIeKXE8)

[http://www.conwaylife.com/wiki/OTCA_metapixel](http://www.conwaylife.com/wiki/OTCA_metapixel)

Minecraft in Minecraft

[https://www.youtube.com/watch?v=GwHBaSySHmo](https://www.youtube.com/watch?v=GwHBaSySHmo)

~~~
fhnjh
The game of life simulation is definitely ready for another layer of meta, GOL
simulating GOL simulating GOL...

~~~
readerrrr
A period of a single cell would take 35328^2 periods and (2048*2048)^2 cells
of the most underlying game of life simulation.

~~~
nitrogen
A Life acceleration algorithm would help with that, but each cell would still
require 4Tb of storage (though that storage could be shared by all cells, II
think).

[https://en.wikipedia.org/wiki/Hashlife](https://en.wikipedia.org/wiki/Hashlife)

~~~
readerrrr
And there is not real purpose since the rules are the same for every level.
Making them different and more complex would be interesting.

------
thejj
This will not work as described. I think his design is a good idea, but still
does not work.

I build a better harddrive (with 4 kb storage!) over a year ago, imgur link
will follow.

Now to the design problem in this HDD: see that all the blocks are blue in the
platter? No way to swap each of the bits without magically creating new green
blocks. My hdd solves that problem by having BOTH block types available on the
platter. But see for yourself:

[http://imgur.com/a/8ESMW](http://imgur.com/a/8ESMW)

~~~
philh
How confident are you?

I know very little about Minecraft, but if this doesn't work, it pretty much
has to be trolling. (No way you build something like this and _not notice_
that it doesn't work.) And then I wouldn't expect them to offer a link to
download the map, and I wouldn't expect someone else to say they've got it
working:
[http://www.reddit.com/r/Minecraft/comments/2e0ghk/fully_func...](http://www.reddit.com/r/Minecraft/comments/2e0ghk/fully_functional_1kb_hard_drive_in_vanilla/cjuuhy6)

~~~
thejj
Imagine a write process: You'd need to somehow replace the visible blue blocks
with a green block. But where does the green block come from?

~~~
josu
I don't know much about MC or computers, but as far as I understand each bit
has both blocks, shift up for blue=0, shift down for green=1. Here:
[http://i.imgur.com/rqZm4DU.gif](http://i.imgur.com/rqZm4DU.gif)

~~~
thejj
Yes, but you don't see BOTH block types on the big tape. Swapping bits
requires one block for each state, but the green ones are missing from the
tape screenshots.

~~~
josu
I don't think that they have to necessarily be green. So the fact that you
don't see them may not mean that they are not there. He may be using blocks
the same color as the structure for aesthetic purposes.

------
userbinator
This concept is known as a delay line memory, although this particular
implementation doesn't need any refresh, like a chain of shift registers:
[http://en.wikipedia.org/wiki/Delay_line_memory](http://en.wikipedia.org/wiki/Delay_line_memory)

------
awiesenhofer
Reminds me of [http://xkcd.com/505/](http://xkcd.com/505/) "A Bunch Of Rocks"

Although: no need for someone immortal with infinite time and energy to run
the simulation, rather lots of people each devoting a small amount of both to
it...

------
atanasb
This is really cool. I really like Minecraft computer components, but I could
never help to think that if the guys who build them, started playing with
something practical, the results might be more tangible.

~~~
patio11
Think of it more like a better UI on top of EE307 or whatever your local
equivalent is for low-level hardware design. I had to scratchbuild a
functional CPU using nothing but NAND gates to pass mine. I got through it,
somehow, producing a CPU which would run minimal assembly-esque programs but
which existed on no physical hardware and wouldn't be for for any purpose if
it did. If you can do it with red stone I think any rational person would say
you have all the knowledge my class tried to impart.

~~~
marktangotango
It's the old Church-Turing thesis in a way; instead of using logic gates
implemented with silicon transisters, they're using physical blocks and
switches in minecraft. The principals are the same, just a different
'substrate'. DNA can be used as a computing substrate[1], and at a more macro
level, the structure of cells[2]. The minecraft guys have a lot more in common
with the early computer engineers who used relay switches and diodes on
rotating drums.

[1]
[http://en.wikipedia.org/wiki/DNA_computing](http://en.wikipedia.org/wiki/DNA_computing)
[2]
[http://en.wikipedia.org/wiki/P_system](http://en.wikipedia.org/wiki/P_system)

------
zbowling
Someone needs to make a FUSE driver that patches into this with a mod for
Minecraft.

------
wiml
Interesting, maybe a bit more like bubble memory than a hard drive.

------
wubbfindel
Reminds me of when someone built a scientific calculator in minecraft:

[http://kotaku.com/5895191/someone-built-a-working-
scientific...](http://kotaku.com/5895191/someone-built-a-working-scientific-
calculator-in-minecraft)

------
snake_plissken
I always wonder when I see these things, are players placing each block
individually? Or are they mapped out in some file and fed to the server to
render?

~~~
DanBC
I imagine they use programs like MCEdit.

You'd create parts of the hardware in Minecraft, then use MCEdit to copy and
paste those parts.

[http://www.mcedit.net/](http://www.mcedit.net/)

------
rednukleus
Even if this has no practical reason to exist, it makes me happy to know that
it does. The world is a better place for it.

------
birk5437
The control room actually kind of reminds me of the control rooms for old
computers in the 1950's.

[http://upload.wikimedia.org/wikipedia/commons/4/4e/Eniac.jpg](http://upload.wikimedia.org/wikipedia/commons/4/4e/Eniac.jpg)

[http://en.wikipedia.org/wiki/ENIAC](http://en.wikipedia.org/wiki/ENIAC)

------
Sami_Lehtinen
If you like to play with logic stuff, this is something to try out:
[http://www.neuroproductions.be/logic-
lab/](http://www.neuroproductions.be/logic-lab/) It's simple, but does it job
pretty visually.

~~~
leni536
Really nice, however I there is some buggy behavior in this logic simulation:
It can end up in an inconsistent state:

I have a little Robot Odyssey experience where it would loop forever between
inconsistent states. However that design is not perfect either, it's still
much better than this in my opinion.

The interface is quite nice though.

------
IgorPartola
What Minecraft could really use would be a scripting capability of some sort.
Basically, once you've figured out how to do something, you should be able to
build a machine that does it for you. That would be a pretty sweet game.

~~~
NAFV_P
> _What Minecraft could really use would be a scripting capability of some
> sort._

Minetest [0] has some scripting ability, utilising Lua.

[0] [http://minetest.net/](http://minetest.net/)

------
munimkazia
What minecraft needs is a way to speed up the game. There have been quite a
few people who have made calculators and "electronic" components, which would
be a lot more cooler if they could work faster.

------
linker3000
If he can shorten the duration of the redstone signals to be very small
pulses, he'd have a 'flash' drive!

/Working with PCIe flash memory products, so getting a kick..etc..

//Sorry

------
Fando
What type of circuits are technically possible to build in Minecraft? Could
one build a basic CPU with RAM, HDD, and BUS? What is the limit of what one
could build?

~~~
znt
Here is a 16-bit ALU:
[https://www.youtube.com/watch?v=LGkkyKZVzug](https://www.youtube.com/watch?v=LGkkyKZVzug)

~~~
Fando
Wow impressive. Looking at that I found this video which shows a full computer
implementation in Minecraft, capable of 32bit graphics and has a basic
instruction set and could be programmed with a high level language. WTF!? Is
it real?
[https://www.youtube.com/watch?v=go5qdMKZs-M](https://www.youtube.com/watch?v=go5qdMKZs-M)
here's more info about it. [http://www.minecraftforum.net/forums/minecraft-
discussion/re...](http://www.minecraftforum.net/forums/minecraft-
discussion/redstone-discussion-and/redstone-
creations/351957-commandore-32-advanced-command-block-based)

------
agumonkey
At what point will Minecraft come out of the closet and proudly claim to be
the largest computing principles MOOC ?

------
asiekierka
I'm a Minecraft modder and while mods are really exciting, sometimes the
vanilla stuff is where it's at.

Awesome job.

~~~
indigane
Command blocks also bring a whole new level to that.

There is vanilla and then there is vanilla with command blocks.

They are getting closer and closer to modding and are almost like an in-game
programming language.

For example, here [1] is a command block command that procedurally generates
giant oak trees [2].

[1]
[http://pastebin.com/raw.php?i=QzS0M4Vn](http://pastebin.com/raw.php?i=QzS0M4Vn)

[2] [https://youtu.be/6cJL4lM7KR4](https://youtu.be/6cJL4lM7KR4)

------
prawn
You might also like this clock built in Minecraft to (theoretically) outlast
the heat-death of the universe:

[https://news.ycombinator.com/item?id=7221931](https://news.ycombinator.com/item?id=7221931)

------
Eiriksmal
It hit me on a walk last night: What this needs to be truly complete, more
than more KBs or other computer components (like the competing HN article), is
_the click-of-death_ when it dies of old age!

------
nkerkin
Reminds me of this 8-bit CPU[0] built in minecraft

[0]
[http://www.youtube.com/watch?v=yxAmphwLPDY](http://www.youtube.com/watch?v=yxAmphwLPDY)

------
Rikstam
Cool, makes me want to start tinkering with Minecraft, but can't really afford
anymore time sinks in my life. Still its amazing what people can do with it.

------
jafaku
Can someone tell me what's more difficult to create? This hard drive or the
scientific calculator that someone else also created in minecraft?

------
dbbolton
I hope the author joins forces with the guy who built a programmable computer
in MC.

------
jeremycole
This is clearly a memory, not a hard drive. Kind of expect better from HN...

~~~
lordbusiness
It's a hard drive. The storage is persistent. Assuming your argument is that
the world the device is constructed in isn't guaranteed to be persistent, then
that renders physical hard drives in our physical world as non-persistent;
let's see how persistent our data is when Sol goes red giant... ;-)

~~~
jeremycole
What does persistency have to do with whether it's a memory or a hard drive?
There are plenty of persistent memories.

~~~
VLM
jeremycole is correct, its closest real world analogy is a bubble memory or
the short lived fad of using CCDs as a large linear memory (that went nowhere
around the mid 80s) or most accurately its compared to an ancient mercury
delay line (although Hg delay lines and CCDs are/were not persistent but their
mechanical operation is similar)

There was a fad of endless loop tapes in the 80s... Exatron stringy-floppy.
That is probably the closest physical analogy. Think "cassette tape interface"
with electrically controllable R/W on an answering machine cassette, all
conceptually of course this isn't how it actually worked. It had nothing to do
with a floppy other than storing about the same amount of data, very java vs
javascript like.

[http://en.wikipedia.org/wiki/Exatron_Stringy_Floppy](http://en.wikipedia.org/wiki/Exatron_Stringy_Floppy)

~~~
lordbusiness
Hmmm. I stand corrected. :-) Thanks people. :-)

------
jedicoffee
www.westeroscraft.com

------
peterwwillis
And people say video games are a waste of time.

------
sebastianavina
for god sake, get a job people

------
qwerta
Hm, add CPU and we can play chess :-)

