--- title: Decentralized Infrastructure description: robots: index, follow lang: en dir: ltr breaks: true --- # Decentralized Infrastructure {%hackmd theme-dark %} ###### tags: `metaverse lab` A project log for [Metaverse Lab](https://hackaday.io/project/5077) by [alusion](https://hackaday.io/hacker/46747-alusion) *Experiments with Decentralized VR/AR Infrastructure, Neural Networks, and 3D Internet.* Originally published 04/22/2015 at 05:23 https://hackaday.io/project/5077-metaverse-lab/log/16799-decentralized-infrastructure --- <p>I first setup a <a href="https://github.com/lisa-lionheart/janus-server">Janus Server</a> inside of a virtual machine on one of my laptops. I downloaded a netinstall of Debian Jessie and on it I installed git, tmux, and <a href="https://nodejs.org/download/">nodejs</a> for the server. In network settings, I bridged the wifi adapter to the card connected to my PirateBox wifi. When you run the command 'ip a' in a terminal, you should see a 192.168.X.X IP address associated with the PirateBox. </p> <p><img class="lazy" src="https://cdn.hackaday.io/images/1024831429678531740.png"></p> <p>I have two laptops connected to the PirateBox access point between them (the usb is just for power). The DHCP server assigns an IP address for each PC. When I started janus, I make sure to point to the Janus Server I setup earlier by launching with</p> <pre class="hljs vbscript">/janusvr -<span class="hljs-built_in">server</span> <span class="hljs-number">192.168</span><span class="hljs-number">.1</span><span class="hljs-number">.144</span></pre> <p>That was just my server's IP, yours might vary. The same rule applies to windows as well. You may also add it to the <a href="http://www.dgp.toronto.edu/~mccrae/projects/firebox/notes.html#multiserver">room html</a>.<br></p><p><img class="lazy" src="https://cdn.hackaday.io/images/2328651429678084192.png"></p> <p>You'll automatically default into the piratebox.lan homepage where you can chat / upload & browse files / access the imageboard. I have all the files uploaded to the PirateBox already, so I just need to open a portal to where the html file is.</p> <p><img class="lazy" src="https://cdn.hackaday.io/images/405411429678827416.jpg"></p> <p>The room loaded up very fast since everything is running locally.<br></p> <p><img class="lazy" src="https://cdn.hackaday.io/images/5410261429679103565.jpg"></p> <p>We can see here that the client is connected to our Janus Server in green<br></p> <p><img class="lazy" src="https://cdn.hackaday.io/images/9379801429679153542.png"></p> <p> The server log is showing that our clients successfully connected. We can see each other, in 3D -- over a WiFi hotspot!!</p> <p>Just think about that for a moment, we're inside that nano router in a shared immersive 3D environment. By design we are not connected to the world wide web; this is our personal and private VR world! There's lots we can do here, share content -- talk -- and even collaborate! I tested to see if I could tunnel into my Linux computer from inside the private world. Works.</p> <p><img class="lazy" src="https://cdn.hackaday.io/images/5921581429679374111.jpg"></p> <p>The same setup works just as well with an android phone using the <a href="http://piratebox.cc/android">PirateBox app</a> and <a href="http://piratebox.cc/raspberry_pi:diy">Rasberry Pi</a>. I'm currently compiling node.js from source on my Raspberry Pi and setting up a Janus Server so that the entire system is self contained. I'll create an image for others to download when I have it working. I envision the backbone for the 3D internet to be run on cheap consumer hardware and open software. The next logical step for me is to get the devices to talk to each other in an ad-hoc configuration. Wireless <a href="https://en.wikipedia.org/wiki/Mesh_networking">mesh networks</a>, an emerging technology, may bring the dream of a seamlessly connected world into reality. </p> <p><a href="http://piratebox.aod-rpg.de/dokuwiki/doku.php/mesh/introduction" target="_blank">http://piratebox.aod-rpg.de/dokuwiki/doku.php/mesh/introduction</a><br></p> <p style="margin-left: 20px;"><img class="lazy" src="https://cdn.hackaday.io/images/5536351429680177758.png"></p> <p style="margin-left: 20px;">The current implemented mesh protocol for PirateBox is <a href="http://www.open-mesh.org/projects/batman-adv/wiki/Doc-overview">BATMAN-advanced</a>. CJDNS can't have broadcasting support but it's worth <a href="https://projectmeshnet.org/">taking a look at.</a> The newer wr703n travel routers aren't supported anymore for the new mesh features (TP-Link changed the webui and upgrade process). The hardware recommended to use is the <a href="http://www.gl-inet.com/w/?lang=en">gl-inet</a>: </p> <p style="margin-left: 20px;"><a href="http://wiki.openwrt.org/toh/gl-inet/gl-inet" target="_blank">http://wiki.openwrt.org/toh/gl-inet/gl-inet</a></p> <p><img style="width: 473px; height: 257.083px;" class="lazy" src="https://cdn.hackaday.io/images/1457511429682516654.jpg"></p> <p>This openWRT router is sold on ebay and <a href="http://www.amazon.com/dp/B00JKFE0FW/ref=cm_sw_su_dp">Amazon</a> and can be modded with an external antenna as well<br></p> <p><img style="width: 381px; height: 321.282px; float: left; margin: 0px 10px 10px 0px;" class="lazy" src="https://cdn.hackaday.io/images/6918141429682691812.jpg"></p> <p><img style="width: 417px; height: 312.75px; float: right; margin: 0px 0px 10px 10px;" class="lazy" src="https://cdn.hackaday.io/images/7994631429682730995.jpg"></p> <p>The testing image with the mesh features can be found <a href="http://development.piratebox.de/target_piratebox/">here</a> then you just follow the normal upgrade process <a href="http://www.piratebox.cc/openwrt:diy#upgrade_piratebox">here</a>. <br></p> <p style="margin-left: 100px;">These devices will become the gateways into the virtual 3D reconstruction of reality. The Internet of Things meets VR.<br></p>