Randonauting is an activity where random number generation is used as a tool for discovering and exploring nearby locations. The way it works is that random numbers are used to calculate the latitude and longitude coordinates of somewhere nearby and then you visit the real-world location.
There’s a metaphysical mind-matter aspect to this where your intentions are supposed to influence the randomly generated destination. The NY Times said it best – “Think: the Law of Attraction meets geocaching.”
Why would this work? Well, some believe that by using random numbers generated by quantum processes, e.g. a HWRNG device, it’s possible to mentally influence the chosen destinations. The result is the manifestation of some truly surprising, enlightening or even disturbing outcomes. Case in point, the alarming Tik Tok video where randonauting teens discover a suitcase with dead body parts.
This mind-over-matter premise might not be as far fetched as it sounds. There’s some surprising research that seems to demonstrate that it’s possible to mentally influence random numbers generated by quantum processes.
What happens if you focus on a specific intention precisely when the random coordinates are generated? That is what randonauting is all about.
There’s a few differences between my device and the other apps. First – I’ve added a feature: Time. In addition to calculating random geo coordinates I also calculate a random time for the trip. The idea being that it might be more meaningful to identify a point in both time AND space. Journey to a specific location at a specific time to maximize the experience!
The second difference is in the way that I determine the location. I use just two random numbers to calculate the geo coordinates. Other implementations include the concept of “voids” and attractors” which use statistical algorithms to determine the locations. Attractors are essentially a clustering of values that point to a geo coordinate while a void is the opposite (lack of points). In my opinion these techniques just introduce unneeded complexity.
This is one of my more involved builds, so you’ll need to have some hardware and python expertise if you want to try this out. I call the device “Dujour” (in homage to The Matrix). To follow along you will need the following:
- 2 Raspberry Pis or equivalent SBCs
- 1 hardware based USB random number generator (RNG). I recommend either OneRNG or TrueRNG
- An LCD or VFD display (I used a Matrix Orbital VK204-25)
- Twilio account for text messaging
- A string of LED fairy lights ( I lied about this one. Not really needed and adds nothing to the project, but I think it looks cool.)
- Python scripts: rabbit.py, sendSMS.py, orbitalWrite.py and restrngsever.py
You might be wondering why use a hardware based RNG when a computer OS can natively create random numbers. Great question. Hardware random number generators use quantum physical processes to create truly random numbers while operating systems use an algorithm. Under the covers the OS based numbers are really pseudo-random. They’re random enough for most purposes, but numbers generated using a quantum process are truly unpredictable (at least in theory). Plus, if you buy into the underlying theory of Randonauting which involves mind-matter interaction, there’s that research seems to show that mental intention can only influence random numbers created by quantum processes.
Now you could build this device with a single Raspberry Pi by connecting the hardware RNG to a local USB port, but I prefer a separate device because I do a lot of experimenting with RNGs and it’s useful to have a remote RNG server that several devices can share.
The diagram below details the high-level Randonauting process flow. The primary script is called “rabbit.py” and is run on the first Pi, which I’ll call “Dujour1”. When you run it will make a REST call to the 2nd device “Dujour2” (the hardware RNG host), retrieve a few random float values, and then use those values to calculate the nearby location to explore along with the time to visit. The script then assembles a Google Maps URL and texts it to a phone via the Twilio service.
The video clip below shows the device in action.
On the Dujour1 Pi, you’ll need to install and configure linux and connect your display. Follow these steps to connect a Matrix Orbital VK204-25. The image to the right shows the wiring for my display.
For my setup I housed both the Pi and the display in a bell jar and I connected a string of decorative LED lights to the 5V and ground pins on the Pi GPIO header. The jar was just a convenient way to hold it all together plus along with the LEDs I liked the aesthetic. 🙂
The rabbit.py script requires Python and the following libraries:
If you get a dependency error when running the script you will need to install whatever module is missing.
There are several variables that need to be set prior to running. They’re all located in the script in the “User Defined Variables” section:
loghandle: path to a text file that logs all runs of the script window_secs: Used to calculate the maximum seconds in the future to visit the location meters_out: furthest distance possible for the geo coordinates in meters from your current location latitude1, longitude1 = your current location (home base). This is used as the starting point lcd_addr = hex address for LCD display if using I2C communications HWRNG = IP address and port of remote HWRNG server. XXX.XXX.XXX.XXX:YYYY
There are a few dependencies on external scripts: sendSMS.py is used to send the text message with the map coordinates. orbitalWrite.py is used to drive the display. Place both scripts in the same directory as rabbit.py on Dujour1. Note: my script was developed to work with a specific Matrix Orbital display (VK204-25). If you decide to use a different one, you’ll need to change the code to work with yours. I’ve documented in the script where the interaction with the display takes place.
The sendSMS.py script requires two OS environment variables to be able to authenticate with the Twilio service: ‘TWILIO_ACCOUNT_SID’ and ‘TWILIO_AUTH_TOKEN’. Follow these steps to configure the variables. You will also need to install the Twilio Python helper library.
On the “Dujour2” Pi you’ll need to install and configure Linux as well. This is where you will be connecting your hardware RNG. I used a OneRNG USB device, you can find the setup documentation here. (You can see my server in the image to the right.) Once configured, install and run the rngrestserver.py script to start serving up random numbers to Dujour1. Check here for detail on how the REST server script works.
If you’ve followed along up until this point, you should have everything you need to experiment with Randonauting using your own device. Just run ./rabbit.py from a terminal and the result should be a text to your mobile phone with a map link (like the image to the right).
I’ve had some weird synchronicities when trying out my device. If nothing else, a random journey can open your eyes to nearby wonders that you’ve never noticed before.
In the future I might consider developing a custom Amazon Alexa skill. It would give me the ability to run my Randonauting server from my phone – wherever I might be.
Hey – drop me an email if you decide to build this. Let me know about your experience and any thoughts to improve the project!