# My journey from Zero to Open Metaverse with M3taloot
By [[DTMF] Malphus](https://www.twitter.com/xdtmfx) [10.18.2022]
## Overview
*Attempting to resolve this ticket. [[Dework.xyz] Documentation of current M3taloot](https://app.dework.xyz/m3/m3taloot/overview?taskId=72a9a03d-d274-4a1f-a4f8-5e74ee7d8fb7)*
Makeing a VRM avatar with m3taloot equipped + custom virtual world and document the journey according to git gud guide.
## Source Material
* https://hackmd.io/@XR/m3taloot1
* https://hackmd.io/@XR/m3taloot-jam
* https://hackmd.io/@XR/avatarbuilders
* https://github.com/m3-org/git-gud
* https://github.com/webaverse/loot-assets
---
# Plan for Final Document
I think this will have to be split out into a few parts to be effective. This outline here will serve as a general overview then I'll do drilldown and screencasts for the following.
This document serves as a catch all for ideas I have and threads I might explore. The actual document will address some of this stuff, but the outline below is how I see the main documentation product.
The goal is to make this a series of 2-5 minute screen cast chunks with easy to follow steps where a person with no experience can make an avatar and a world and deploy them both in a few hours on a weekend or in three or four session spread out.
Also, in this document I will be attempting to streamline this process where I can and if it suits the documentation a github repo that can kickstart somone's journey.
* **Chosing my Avatar**
* Going over sources for assets
* A quick meshroom tutorial
* VRoid Studio Avatar Tutorial with Asset from Meshroom
* Blender Avatar Tutorial with Asset from Meshroom
* **Building an Environment**
* Generate a Dungeon Tutorial
* Quick and Dirty. Pull some assets from Sketchfab to make it prettier
* Generate Terrain
* Generate terrain with some of the noise techniques from above.
* **Make a World**
* Overview of Options
* Running Thirdroom locally
* **Hosting Your World**
* Fleek/Pinata: Mint Your Gizmos
* ENS: Etherium Name System
* Legacy Hosting
* Google, AWS, Azure, etc
---
# Setup Wallet and Accounts

## Wallets
I hadn't set up a bitcoin in etherium wallet since 2019 so I had a bit of catching up to do. Your Etherium wallet will generally be used for your authentication to many services.
So you may want to set up a MetaMask or WalletConnect wallet for easy SSO. I am not evaluating the security or merits of these services. WalletConnect looks like a nice connector. Metamask has a convenient browser plugin that is likely an attack vector but whatever. If you don't keep a ton of coins in there, you won't have problems. *This statement is based on no facts or analysis. Just hunches. And lived experience with compromised browser plugins.*
* https://metamask.io/
* https://walletconnect.com/
## Accounts

Here are some interesting and useful metaverses you might want to connect with for the rest of this tutorial.
* https://monaverse.com
* https://hyperfy.io
* https://www.lootproject.com
* https://www.loot.exchange/
* https://webaverse.com
# Chosing my Avatar
I've got a few things that could work to bring into m3taloot. Lets take a look and go over their pros and cons.
### Downloaded Asset

https://github.com/millerhooks/appealingfrog
Free Frog! We'll be using him and maybe another freebie from somewhere. I made him. He is free to use and doesn't go anywhere. Might as well put him in the metaverse.
## Avatar Setup Tool Options
### VRoid
VRoid is the primary tool used for creating metaverse avatars at this point. We can use VRoid Studio or a combination of VRoid, Blender, Unity, or even custom solutions using the VRM format. If you'd like to look at the [VRM Specification (VRM Consortium Github)](https://github.com/vrm-c/vrm-specification).
* https://vroid.com/en/studio
I've got a model that was rigged in blender and exported to VRM. He has no body.
![[DTMF] Ultra Headroom](https://i.imgur.com/verLBdC.png)
### Photogrammatry
#### Meshroom
Asked a friend to have someone take a bunch of photos of himself and a video in a visually noisy environment with good light. Should recieve those on Thursday (Oct 20th, 2022).
### Blender

I have a couple characters I've rigged in Blender. I won't go into rigging. There are great guides that I can link (note, link some tutorials)
#### Rigging and Skin Weights (Links)

### Character Creator 3/4 Export
I have some characters generated with the AI in Character Creator 3. This is a closed source and expensive tool. But it does export a nicely rigged product and has a free trial.
### Avatar Accessories
Hats, weapons, shoes, vehicles, pets, etc.
### Free Assets
* https://opengameart.org/
* https://www.nounproject.org
---
# Building an Environment
## Free Assets
* https://opengameart.org/
* https://www.nounproject.org
## Generative

* https://www.gdcvault.com/play/1024514/Building-Worlds-Using
### Perlin Noise Terrain

*Output from '[Generating fantasy maps](https://mewo2.com/notes/terrain/)'. A great interactive overview with cities and other landmarks.*
* https://medium.com/nerd-for-tech/generating-digital-worlds-using-perlin-noise-5d11237c29e9
* https://www.redblobgames.com/maps/terrain-from-noise/
### Generate a Dungeon

*[Simple Web Based Dungeon Generator](https://donjon.bin.sh/d20/dungeon/)*
### Generative Structures
#### Cochella Shade

#### Procedural Cityscapes

* [Procedural city based on Perlin noise - Alex Nicola and Nati Goel (Youtube)](https://www.youtube.com/watch?v=7tfvebVU5P0)
* [Procedural city generation
using Perlin noise](http://www.diva-portal.org/smash/get/diva2:1119094/FULLTEXT02.pdf)
## Mapbox
### WebGL
* https://www.mapbox.com/mapbox-gljs
### Unity
* https://www.mapbox.com/unity
## Open Street Map
### Blender
* https://artisticrender.com/blender-openstreetmap-importer-add-on-never-model-new-york-again/
## Photogramatry & Drone Mapping
* https://www.esri.com/en-us/cp/site-scan-for-arcgis-visualization/overview
* https://www.youtube.com/watch?v=OG5HHbEdXRw
## UtyMap

[UtyMap (last updated 2020)](https://github.com/reinterpretcat/utymap )
>**utymap** is a library which provides highly customizable API for procedural world generation using real vector map data, e.g. OpenStreetMap, NaturalEarth. Core logic is written on C++11 and can be used on many platforms as it has no dependency to specific game engine or application framework. It is designed for interactive world creation at different zoom levels, including globe and street level.
## Sketchfab Blender Plugin
* https://github.com/sketchfab/blender-plugin
<Link to Tutorial>
---
# Hello Worlds!
## Make a World
>*I am in the middle of a Thirdroom.io deploy. So I'll be covering that first. I'm interested in the others, but I think Thirdroom should be good for this tutorial. I will link to this information though.*
https://github.com/m3-org/git-gud#create-world
Make a virtual world in a webxr framework, vrchat, or neosvr
webxr recommendations: janusweb / aframe There's a discord where webxr devs hang out also: https://discord.gg/Jt5tfaM
Bonus if its in a multi-user avatar space
>Note: Can do Mozilla Hubs for fun / practice, just know that you can't host it on the decentralized web
* https://docs.vrchat.com/docs/setting-up-the-sdk
* https://neos.com/
* https://janusvr.github.io/guide/#/examples/markup
* https://aframe.io/docs/
* https://hubs.mozilla.com/
* https://www.thirdroom.io
## Hosting Your World
### Distributed Storage

#### IPFS
##### Fleek
* https://fleek.co/
##### Pinata Cloud
* https://www.pinata.cloud/
##### Storj
>*<TBD. Might bail on this.>*
* https://www.storj.io/
This is like a distributed S3 replacement. It's not open source but you can host your own nodes. I think it's interesting and I'm going to try to evaluate it.