--- title: The Grid Pt 3 description: Can we build a digital city where creative people can live and work in virtual reality? Open standards and interoperability is crucial for a sustainable foundation of netizens working across many different fields and platforms. image: https://i.imgur.com/JXRk6EQ.jpg robots: index, follow lang: en dir: ltr breaks: true disqus: xrdevlog --- # The Grid Part 3 {%hackmd theme-dark %} ###### tags: `devlog` `cv` `nft` `desert` `neos` `vrchat` `ethereum` Published Dec 2020 ![](https://i.gyazo.com/c15e4f523f74494bdb7b899edb17d8d0.gif) This garage is a convergence factory aimed at building a virtual district or city centered around a form of creative economic activity. ![](https://i.imgur.com/JXRk6EQ.jpg) In order to start seeing common threads between multiple competing ideas and platforms, a memory palace was made in Anarchy Arcade to mind map all of the relevant parts. ![](https://i.imgur.com/neHobiJ.gif =100%x) --- ## History **Part 1 (June 2019): <https://hackmd.io/@XR/grid>** > If the internet were a place, what would it look like? How would it work? The Grid navigates projects, infrastructure, and prototypes involved in designing a digital city owned by its users. Within the city there is art, commerce, and culture. ![](https://i.imgur.com/BA4k2KO.jpg) **Part 2 (July 2019): https://hackmd.io/@XR/grid2** > How to design an Internet City inspired by Snow Crash and Burning Man? The term Cyberspace implies a spatial aspect to the internet, imagining the web as a place you can visit. The Grid Part 2 features early prototypes of a digital city. ![](https://i.imgur.com/UogVswg.jpg) **Inspiration** **SceneVR: https://medium.com/@bnolan/the-grid-a-digital-frontier-7269fb934711** > Each position on the grid is represented by a coodinate eg, (0, 0) or (3,-2). The grid is made up of A-Frame scenes, which are html markup that gets converted into 3d shapes. ![](https://miro.medium.com/max/1339/1*EkveCRkSSf28EvQdSpoqhA.png) When you upload a scene to the grid, SceneVR takes photos of the scene from four elevations; north, south, east and west. This is an orthogonal representation of the scene on a transparent background, which although only an approximation of how the scene looks, it does a pretty good job of showing you what the scene will look like when you get closer to it. **Exokit: https://hackmd.io/@XR/exokit#Land** This tool allows for the geofencing of 3D holograms in virtual worlds. ![](https://i.imgur.com/SH8eLUd.gif) **Blockchain Cities** Ownership in the digital age is crucial if we want to figure out how people can earn a living inside virtual worlds. Platforms are the ones absorbing most of the value from users who give up ownership of their content when they use [their](https://en.wikipedia.org/wiki/Facebook,_Apple,_Amazon,_Netflix_and_Google) services. ![](https://i.imgur.com/EiBC9wU.png) ## Cryptovoxels {%youtube jd_AeiFAJpg %} **Process** - https://github.com/cubedparadox/unity-client - Unzip and open Unity, install FBX Importer from asset store - Open Cryptovoxels plugin and import a district - Search for feature and delete everything - Create empty, rename it, drag n’ drop parcels into empty object - Right click, export as binary FBX - Drag n’ drop FBX file from assets into the editor - Copy paste the position information from original to new object - Make static on new object - Delete old object --- **New feature requests** - **Import .vox** - Import NFT images (unknown) - Currently this is a very manual process, Unity requires spritesheets for each GIF - There is over 40gb of art in Cryptovoxels which makes it a challenge - Collaborate with Exokit to stream images as overlay? - Import polytext --- ### Desert ![](https://i.imgur.com/J8BA3W3.png) ![](https://i.imgur.com/GILVvFL.jpg) ![](https://i.imgur.com/H54ZlD8.png) ![](https://i.imgur.com/vTzt9pB.jpg) #### Home Space Desert **Hubs** ![](https://i.imgur.com/D1Drqhf.jpg) ![](https://i.imgur.com/CKPD14r.jpg) **JanusWeb** ![](https://i.imgur.com/ceRRhzX.png) ![](https://i.imgur.com/F6OPpgu.jpg) Elevator VRChat --- ### Noir ![](https://i.imgur.com/XM0udzV.jpg) ![](https://i.imgur.com/ykbSFkP.jpg) ![](https://i.imgur.com/4IKXZTd.jpg) ![](https://i.imgur.com/1ndUrnH.jpg) ![](https://i.imgur.com/qNWlCnJ.png) ![](https://i.imgur.com/1tstz9E.jpg) ![](https://i.imgur.com/dCu3uGc.jpg) ![](https://i.imgur.com/ooEMTea.jpg) ![](https://i.imgur.com/d5BuKhR.jpg) --- **Updated lighting** **Launch world: https://vrchat.com/home/launch?worldId=wrld_deef02ee-ed4f-47f4-9a93-fae9b9ea573c** ![](https://i.imgur.com/7WfOKli.png) ![](https://i.imgur.com/7tpks8W.jpg) ![](https://i.imgur.com/5jQH2xh.png) ![](https://i.imgur.com/7yvCZ4Y.png) <iframe width="100%" height="400" src="https://www.youtube.com/embed/ra9gJ-m9y7E?start=5880" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> --- ### Home Space ![](https://i.imgur.com/KxvnqP6.jpg) ![](https://i.imgur.com/PwjxfCe.jpg) --- ### NeosVR **Website: https://neosvr.com/** **Launch world: http://cloudx.azurewebsites.net/open/world/U-jin/R-fec6fe2f-d6e9-43de-af37-31068a7ebcd9** ![](https://i.imgur.com/MkGxaQX.jpg) ![](https://i.imgur.com/nCI6NJi.jpg) ![](https://i.imgur.com/1qDZ59b.jpg) ![](https://i.imgur.com/Z5nPtRj.jpg) ![](https://i.imgur.com/RmY8yDj.jpg) ![](https://i.imgur.com/JSSpals.jpg) ![](https://i.imgur.com/Ya9VWZ6.png) --- ![](https://i.imgur.com/atNC74X.jpg) ![](https://i.imgur.com/MePRj0P.jpg) ![](https://i.imgur.com/7h4Keht.jpg) ![](https://i.imgur.com/Kn5PWB6.jpg) ![](https://i.imgur.com/4ssAbYu.jpg) ![](https://i.imgur.com/r6UmYrR.jpg) ![](https://i.imgur.com/6ASrCoL.jpg) ![](https://i.imgur.com/ihOalr9.png) ![](https://i.imgur.com/EtNVbUR.jpg) --- ### Avatars and Wearables **Github: coming soon** ![](https://i.imgur.com/EXbrnGG.jpg) ![](https://i.imgur.com/Lq29TuT.png) The Cryptovoxels avatar is cross-platform and an open source project repo coming soon with examples for porting into different platforms such as VRChat and NeosVR. ![](https://i.imgur.com/CRVIWIF.jpg) ![](https://i.imgur.com/ouBlGZC.jpg) ![](https://i.imgur.com/YWIbtr0.jpg) ![](https://i.imgur.com/TDyJvZ4.jpg) ![](https://i.imgur.com/WzvGYMu.jpg) **Equipables** ![](https://i.imgur.com/XbnpdTI.jpg) #### Masks ![](https://i.imgur.com/tkhUrxT.png) ![](https://i.imgur.com/ut9okvw.jpg) ![](https://i.imgur.com/1EPdVd7.jpg) ![](https://i.imgur.com/8nGVhxi.png) Idea: Ability to export a .glb of an avatar for better portability. ![](https://i.imgur.com/rD3OF9t.png) --- ### Neon Nights ![](https://i.imgur.com/p0snnIM.gif =100%x) ![](https://i.imgur.com/RRWi32S.jpg) ![](https://i.imgur.com/5ElaT1I.png) ![](https://i.imgur.com/cwJRSFc.png) ![](https://i.imgur.com/Uk66tAv.jpg) Import obj into Tilt Brush, paint overlay then upload to Poly / Sketchfab ![](https://i.imgur.com/d7q4ZB6.png) Import from Poly / Sketchfab into Unity project --- **The Man** ![](https://i.imgur.com/GTqwtAO.jpg) Mesh fire effect shader by rollthered ![](https://i.imgur.com/lm4Q9xX.jpg) --- ## Improvements The Unity client has served the community well since its initial release [1 year ago](https://hackmd.io/@XR/cv#Unity-Client). ![](https://i.imgur.com/mya7Jgm.jpg) ![](https://i.imgur.com/H54ZlD8.jpg) We now have 2 public Crypovoxels worlds on other popular social VR platforms, but there is still so much potential and room for improvement! ![](https://i.imgur.com/D8IZQmT.jpg) With features like better image support and .vox import the results will drastically improve. ![](https://i.imgur.com/kmkvSXs.png) The workflow that currently works best involves importing a district at a time then exporting that as an FBX back into the project assets folder. **Issues** Whenever importing a district I currently have to search and delete images because they bloat the project. Duplicates and transparency is not accounted for. Inverted blocks show up only as a black material with no tilemap. **Tasks** Perhaps we can have these as gitcoin bounties or just donate ETH to open source contributors to the project as we've done in the past. Unity ninjas - Fix dark / inverted materials - Add option to import images or not - https://github.com/cubedparadox/unity-client/blob/master/Assets/CryptoVoxels/Editor/CryptoVoxelWindow.cs - https://www.cryptovoxels.com/grid/parcels - contains images / .vox links - https://www.cryptovoxels.com/api/parcels/ - doesn't exist anymore, changed - Add .vox import support https://github.com/cubedparadox/unity-client/tree/master/Assets/CryptoVoxels - https://github.com/search?q=unity+magicavoxel - Ben Nolan working on server side converting .vox models to .gltf - https://github.com/KhronosGroup/UnityGLTF - https://github.com/Siccity/GLTFUtility - https://github.com/plattar/gltf-exporter Jin - Upload CV avatar to Github and write a guide (2 hours) - Add more images to explain project (1 hour) - Import custom tilemaps (10 hours) - Import and fix text (1 hour) Boomboxhead 1. Meshbaker to optimize objects better and detect duplicate images (20-30 hours) 2. Save and upload project as is to Github (vanilla optimized version) 3. Fork project with chosen theme as name (desert / snow / festival version) 4. Decorate with lighting, props, weather, and vehicles (20-30 hours) 5. Add 3rd person mode prefab https://vowgan.booth.pm/items/1932757 --- ![](https://i.imgur.com/NYlcDOP.jpg) ![](https://i.imgur.com/qMevut4.jpg) **Update: see https://hackmd.io/@XR/grid3#Threejs-Export** ![](https://i.imgur.com/ZsKG4vj.jpg) --- ![](https://i.imgur.com/HFxF2JF.jpg) ![](https://i.imgur.com/LpC0tka.png) **Update: see https://hackmd.io/@XR/grid3#Threejs-Export** ![](https://i.imgur.com/M08bCAu.png) --- ## GLTF Export The most useful function the Unity project serves is the ability to import from the latest world cache and export a mesh. There might be better workflows for achieving the same goal. **Babylonjs GLTF Export** - https://doc.babylonjs.com/extensions/gltfexporter - https://github.com/BabylonJS/Exporters If we can export a glTF with blocks (including dark mode), tilemap, .vox, polytext, and optionally images or text that would be exceptional. NFTs must be handled with care and can be manually ported. ![](https://i.imgur.com/pde00LD.png) Bnolan has mentioned server side converting vox to gltf. **Export mesh from Substrata** Nick has some experimental code to export to GLTF. ![](https://i.imgur.com/PXXCQjx.jpg) **Export mesh from Threejs** Perhaps part of a community fund can go to bai to render Cryptovoxels parcels with JanusWeb. - https://www.cryptovoxels.com/grid/parcels/1.json - https://www.cryptovoxels.com/grid/parcels - https://github.com/exokitxr/three-voxloader Bai implemented an export .glb feature into JanusWeb that is very powerful for taking 3D pictures inside worlds. ![](https://i.imgur.com/8mdA6cb.jpg) ![](https://i.imgur.com/JP7EeHA.jpg) Maybe Avaer might also be willing to write a mesh exporter if we donated some ETH. He has extensive experience with voxel platforms from Zeo: https://github.com/avaer/zeo-mc --- ### Threejs Export [Avaer](https://twitter.com/webmixedreality) has successfully made a CV loader made with three.js which has a powerful and straightforward method of exporting the most recent .glb models of parcels. ![](https://i.imgur.com/8zPTynB.gif) The biggest improvement over the other importers is that this CV loader correctly displays glass, imports voxels, and megavoxels. It is also pulling in all the media like gifs correctly with the ability to display them. ![](https://i.imgur.com/OjpbeSp.jpg) This method has the potential to save us SO much time and can even be automated for creating backup snapshots. A reasonable method to utilize this tech is to offer parcel owners the ability to purchase a 3D model export of their parcels at a fixed rate and to negotiate with Cryptovoxels on building a private model export of the entire map for experimenting on. This sandbox can be used to rapidly prototype new ideas that can inspire features for the main client and to market Cryptovoxels to people on other platforms. ## Timecapsule Cryptovoxels is a persistent and always changing virtual world on the Ethereum blockchain. It has also been a pioneer of interoperability, having been first to display other NFTs as picture frames, shown the possibilities of exploring Origin City and avatars on other VR platforms. The community has rapidly grown and become the virtual equivalent of Florence Italy during the Renaissance, attracting much of the cryptoart world's artists and collectors. Idea: What if future historians had a time machine to teleport back to Cryptovoxels during its first years of existence? Would our blockchain based virtual world able to stand the test of time? I believe we have the technology today, it is now a matter of will power to build it. [Sam Williams](https://twitter.com/samecwilliams), the founder of the ARweave project, swung by the Cryptovoxels discord recently and enquired upon whether we'd be interested in an archive of the virtual world. We're talking a full permanent snapshot backup of the world with the media and vox models included (!). Sam has a personal fascination with decentralised, ownerless cyber space and would love to see one built properly. After explaining how much data such a feat is (500gb+ of textures) he generously offered to pay the cost of tokens ($2500+) to perform the snapshot. He wrote a script to download the state of all land parcels in CryptoVoxels and deploy them to the Arweave's permaweb. Path to your Arweave keyhole must be changed in the `arweave deploy` line. https://gist.github.com/samcamwilliams/26e0505d11a7c25cafc95e08c5be9c13