Hackers love random numbers, or more accurately, the pursuit of them. It turns out that computers are so good at following our exacting instructions that they are largely incapable of doing anything that would fit the strict definition of randomness — which has lead to some elaborate methods of generating the unexpected.
Admittedly, the SB42 Random Number Generator built by [Simon Boak] isn’t exactly something you’d be using for cryptography. The method used to generate the digits, a pair of 555 timers sending pulses through linear-feedback shift registers, would at best be considered pseudo-random. Plus the only way of getting the digits out of the machine is by extracting them from the Nixie tubes with your Mark I Eyeballs. But it absolutely excels at the secondary reason many hackers like to build their own randomness rigs — it looks awesome.
Externally, it absolutely nails the look of a piece of vintage DIY year. Down to the classic white-on-black label tape. But open up the hood, and you’re treated to a real rarity these days: wirewrap construction. In an era where you can get PCBs made and shipped to your door for literally pennies, [Simon] is out there keeping the old ways alive. It doesn’t just look the part either. Unlike most modern projects we see, there isn’t a multi-core microcontroller behind the scenes doing all the work, it’s logic gates all the way down.
This isn’t the first random-ish number generator that we’ve seen use shift registers. But if you’re looking for something that might actually pass some randomness checks, and don’t mind working with something a bit spicy, you could check out some of the previous devices we’ve covered that used radioactive decay as an entropy source.
Continue reading “Random Number Generator Is A Blast From The Past”
When you have a bunch of people gathered around a table for a “Dungeons & Dragons” session, you have to expect that things are not always going to go smoothly. After all, people who willingly create and immerse themselves in an alternate reality where one bad roll of the dice can lead to the virtual death of a character they’ve spent months or years with can be traumatic. And with that trauma comes the search for the guilty — it’s the dice! It’s always the dice!
Eliminating that excuse, or at least making it statistically implausible, is the idea behind this radioactively random dice roller. It comes to us from [Science Shack] and uses radioactive decay to generate truly random numbers, as opposed to the pseudorandom number generators baked into most microcontrollers. The design is based on [AlphaPhoenix]’s muon-powered RNG, but with a significant twist: rather than depending on background radiation, [Science Shack] brought the power of uranium to the party.
They obtained a sample of autunite, a weird-looking phosphate mineral that contains a decent amount of uranium, perfect for stimulating the Geiger counter built into the dice roller. Autunite also has the advantage of looking very cool under UV light, taking on a ghostly “fuel rod glow,” in the [Homer Simpson] sense. The decay-powered RNG at the heart of this build is used to simulate throws of every standard D&D die, from a D4 to a D100. The laser-cut hardboard case holds all the controls and displays, and also has some strategically placed openings to gaze upon its glowing guts.
We really like the design, but we have to quibble with the handling of the uranium ore; true, the specific activity of autunite is probably pretty low, but it seems like at least some gloves would have been in order.
Continue reading “Roll The Radioactive Dice For Truly Random D&D Play”
For the price of a toothbrush and a small motor with an offset weight, a bristlebot is essentially the cheapest robot that can be built. The motor shakes the toothbrush and the bristle pattern allows the robot to move, albeit in a completely random pattern. While this might not seem like a true robot that can interact with its environment in any meaningful way, [scanlime] shows just how versatile this robot – which appears to only move randomly – can actually be used to make art in non-random ways.
Instead of using a single bristlebot for the project, three of them are built into one 3D printed flexible case where each are offset by 120°, and which can hold a pen in the opening in the center. This allows them to have some control on the robot’s direction of movement. From there, custom software attempts to wrangle the randomness of the bristlebot to produce a given image. Of course, as a bristlebot it is easily subjected to the whims of its external environment such as the leveling of the table and even the small force exerted by the power/communications tether.
With some iterations of the design such as modifying the arms and control systems, she has an interesting art-producing robot that is fairly reliable for its inherently random movements. For those who want to give something like this a try, the code for running the robot and CAD files for 3D printing the parts are all available on the project’s GitHub page. If you’re looking for other bristlebot-style robots that do more than wander around a desktop, be sure to take a look at this line-following bristlebot too.
Thanks to [johnowhitaker] for the tip!
Continue reading “Random Robot Makes Random Art”
It does sound a bit silly — the idea that given enough time, a plant could influence the order of hardware-generated random numbers in order to get enough light to survive. But not so silly that [DeckerM] couldn’t wait to try it out after seeing a short clip about an unpublished study done at Princeton’s Engineering Anomalies Research (PEAR) lab that came to this very conclusion. The actual verbatim conclusion from the clip: “It’s as though life itself – even life or consciousness in something as simple as a house plant, bends probability in the physical world in the direction of what it needs, in the direction of its growth and evolution.”
The idea is this: a plant is made to suffer by languishing in the corner of a windowless room. The room has exactly one light in the middle of the ceiling — a repositionable spotlight of sorts that can only shine into any of the four corners and is controlled by a random number generator. A set of dividers ensure that none of the light leaks out of the quadrant and into any of the others.
[DeckerM]’s recreation of this experiment is much more practical. It’s essentially a little plywood cabinet with four open partitions and a ceiling. Each quadrant has a grow light strip planted in the corner, and all the wires are run through the top, where each has been stripped of its pesky power-governing controller and rewired to go straight into a smart plug. [DeckerM] is using a hardware RNG hosted on a Raspberry Pi, which is running a Python script that takes numbers from the RNG that corresponds to one of the quadrants, and then lights that quadrant.
And the results? They don’t really support the PEAR study’s bold conclusion unless viewed in small sample sizes, but [DeckerM] isn’t giving up that easily. Since the paper is unpublished, there are a lot of unanswered questions and juicy variables to play with, like the type, number, and age of the plants used. We’re excited to see if [DeckerM] can shed some light on plant psychokinesis.
Interested in portable plant propagation? A sunny location is usually ideal, but this all-in-one solution can take care of the rest.
Are you running out of ways to entertain yourself and your family? If you’ve read all the books and watched all the movies, it might be time to explore the psychic abilities of silicon. [Hari Wiguna] has just the trick to keep them guessing for a good long time.
This trick doesn’t take much, just a couple of Arduinos, some momentary buttons, a number pad, and a large helping of math. As you can see in the demo after the break, there is nothing connecting the two, not even 802.11(n). On the randomizer Arduino, [Hari] generates random numbers with the push of a button until the audience sees one they like. Then [Hari] locks in the number with the other button.
What happens next is key: the randomizer generates another random number, but uses it as a hint to set a sentinel digit. The randomizer Arduino subtracts the larger of the two digits in the number from nine and stores the result as the flag. When the next number comes up that has the flag digit in the correct place, the number after that will be the random number chosen at the beginning.
The psychic Arduino’s secret is that it knows the first guess it receives is special. It does the same sentinel digit math as the randomizer, so when the guesser enters the guess with the sentinel digit, it knows the next number entered is the winner. Clear as mud? Check out the second video below where [Hari] explains the trick, a new take on a magic classic.
Looking for a more exciting way to generate random numbers? Try using fish tanks, lava lamps, or muons from outer space.
Continue reading “Bet You Didn’t Know Arduinos Are Psychic”
Minecraft is a game about exploring procedure-generated worlds. Each world is generated from a particular “seed” value, and sharing this seed value allows others to generate the same world in their own game. Recently, the distributed computing project Minecraft@Home set about trying to find the seed value of the world shown in the Minecraft title screen, and have succeeded in their goal.
The amount of work required to complete this task should not be underestimated. 137 users contributed 181 hosts with 231 GPUs to the effort, finding a solution in under 24 hours. The list of contributors to the project is a long one. It appears the method to find the seed involved comparing screenshots from various seed worlds to the original image. This took a lot of reverse engineering in order to calculate the camera FOV and other settings of the original capture, such that the results could be compared accurately. Interestingly, the group found two seeds that can generate the requisite world, suggesting the world generator code has some collisions between seed values.
We’re not sure what’s more astounding, the amount of work that went into the project, or that there’s a distributed computing project tackling advanced Minecraft research. Either way, we’re no strangers to Minecraft hacks around these parts. Video after the break. Continue reading “Finding The Random Seed Of Minecraft’s Title Screen”
Randomness is a pursuit in a similar vein to metrology or time and frequency, in that inordinate quantities of effort can be expended in pursuit of its purest form. The Holy Grail is a source of completely unpredictable randomness, and the search for entropy so pure has taken experimenters into the sampling of lava lamps, noise sources, unpredictable timings of user actions in computer systems, and even into sampling radioactive decay. It’s a field that need not be expensive or difficult to work in, as [Henk Mulder] shows us with his 4-bit analogue random number generator.
One of the simplest circuits for generating random analogue noise involves a reverse biased diode in either Zener or avalanche breakdown, and it is a variation on this that he’s using. A reverse biased emitter junction of a transistor produces noise which is amplified by another transistor and then converted to a digital on-off stream of ones and zeroes by a third. Instead of a shift register to create his four bits he’s using four identical circuits, with no clock their outputs randomly change state at will.
A large part of his post is an examination of randomness and what makes a random source. He finds this source to be flawed because it has a bias towards logic one in its output, but we wonder whether the culprit might be the two-transistor circuit and its biasing rather than the noise itself. It also produces a sampling frequency of about 100 kbps, which is a little slow when sampling with he Teensy he’s using.
An understanding of random number generation is both a fascinating and important skill to have. We’ve featured so many RNGs over the years, here’s one powered by memes, and another by a fish tank.