
Startup building the open-source “operating system” of the Metaverse - rfurlan
http://lucidscape.com
======
Animats
My first thought was "Wow, somebody made that work!" After reading their site,
it's clear they have a long, long way to go.

In the early days of There, Inc., I was recruited by them, and was in on some
early design discussions. They wanted to build a planet-sized 3D virtual world
with physical simulation, with all the scaling problems that implies. My
comment was "Now let us all join hands around the world", which produced
groans. (Doing physical simulation across a cell boundary is hard enough, but
if the users can force you to have to do it across N cells, you have a real
problem.)

For that system (and for Second Life) the assumption was that all the servers
were in the same data center, with low inter-server lag. Trying to do this
with home servers and lag in the 100ms and up range is going to suck. However,
a distributed system where all sites are hosted in data centers on the same
continent with low-latency connections might work.

Now they have to deal with the security problems, the delay problems, etc.
They also need a really big MMORPG to exercise the system. Something like a
planet-sized version of Minecraft would be a good test. The rules are simple
and users create the content. A tougher test would be to create a simple, but
huge, driving game, using Open Street Map, "seamless.gov", and topo data. Then
load it up with automated traffic and let people drive in it.

~~~
angersock
Many years ago some friends and I kicked around an MMO on a post-apocalyptic
version of the US, full-scale. The actual data involved worked out to less
than a terabyte, including topo. Modern hardware has made that part tractable.

The problem is, how the fuck do you make it _fun_?

------
eli_gottlieb
I really do feel the need to ask, these days: am I the only technologist
completely uninterested in transforming real life into _Snow Crash_? As far as
massive-world 3D games go, I still see more artistry in the _Assassin 's
Creed_ series (for all its flaws) or even something more fantastic like
_Pokemon Snap_ (safari games are the idea that stay with me for VR
implementation: make something that _does not already exist_ rather than
copying meatspace) than in these weird attempts to create a "virtual reality"
or even just large-scale game world modeled off... Times Square.

Not only can I already visit Times Square in real life, I _choose not to_.
Ditto on the more branded, corporatized, ad-infested portions of the internet
(ie: the "downtown internet" approved by official, polite society).

Many scifi novels (insofar as _Snow Crash_ can even be called "fiction" rather
than "prediction" these days :-() are written to _make fun_ of wacky
technologists and our just-somewhat-off-target ideas, you know.

Now, to end on a _zog_ note rather than zig or zag, here's an idea: someone
figure out the massive-game or VR equivalent of 4chan. _There 's_ something
people will actually want to use. (For all the official disapproval from all
sectors, 4chan and 2chan are _massively_ popular and influential. They are
offering something users want: anonymity, obscurity, simplicity, and freedom!)
EDIT: [http://kazerad.tumblr.com/post/96020280368/faceless-
together](http://kazerad.tumblr.com/post/96020280368/faceless-together)

------
azinman2
The more important test is not the technological one, but if the idea is
useful at all. So far 3D worlds haven't proven themselves as necessary or
something that leaps forward communication. It provides all kinds of
constraints with few upsides. Just because the world is in 3d for my normal
life doesn't mean that constraint is natural or useful by extension -- when I
read I absorb language and abstract thoughts mixed with imagination without
any "real world" basis. 3D avatars might look cool but they also visually
become the hero when that might be exactly what we want to get away from in a
community context -- the potential for new forms of representation that dont
resemble the physical world. Second life was predicted by some to have already
taken over all of business world, and thus far it had the most uptick and
chance of all of these systems. Yet am I reading HN via some dragon emitting
nerdy fireballs? No I have a simple web page with the ability to hyperlink me
straight to interesting content that is more text typically. And it's working
way better in this form than a 3D world could because the concept doesn't make
sense to add that extra graphical dimension and navigational constraint.

~~~
DennisP
For a lot of purposes I agree. Hypertext is one.

But I think one reason 3D hasn't done much is that we're looking at it through
a little 2D window. When VR really hits the market I think 3D worlds will be a
lot more compelling.

~~~
azinman2
The question then becomes what new applications will that enable, rather than
how can we do what we already do in 3D. That's the problem I see with
secondlife and as they're defining the metaverse...

If it's about simulation/training for doctors/firefighters/etc then I can see
the uses because you're wanting to simulate a complex situation in the real
world. But what purely virtual tasks will be better accomplished with VR than
without? Is it more simulation of reality or something totally new? My guess
is for whatever is new it mostly will be about navigating something inherently
3D such as DNA. If that's true, then do we really need a decentralized
metaverse to populate it, or can whatever random DNA VR software be enough?

------
jwatte
Having been in on two previous attempts, let me state my wry amusement at this
go-around :-)

~~~
contingencies
Indeed. It would perhaps be easier to rephrase - _What problem is this
actually solving?_

~~~
xnxn
The problem, as I see it: VR and the web are too far apart.

This seems to be an attempt to build a... protocol? engine? both? for moving
programmable entities between volumes of space that may be controlled by
different hosts.

The "operating system" / Metaverse verbiage is a little grandiose, but I
really like the idea. Or maybe I just miss Adobe Atmosphere :)

~~~
maxharris
_This seems to be an attempt to build a... protocol? engine? both? for moving
programmable entities between volumes of space that may be controlled by
different hosts._

Okay, but why would I want to do that?

~~~
lotsofmangos
because it was surprisingly good in literature

------
msane
On the back is gibberish explaining how he may be reached: a telephone number.
A universal voice phone locator code. A P.O. box. His address on half a dozen
electronic communications nets. And an address in the Metaverse.

------
jmgrosen
Sounds like High Fidelity: [https://highfidelity.io](https://highfidelity.io)

(No affiliation other than having tried it a couple months ago and written a
little bit of code for it.)

~~~
troymc
Similar, but this one says they'll exert no centralized control at all. High
Fidelity intends to control the analogues of the name servers, and some other
things.

------
rwallace
If you try to go extreme on all possible requirements simultaneously, the
chance of failure approaches one hundred percent. The key to success is to
pick one or two areas where you want to go beyond state-of-the-art, while
staying within it in other areas.

I strongly recommend deleting the requirement about seamless visualization
_across_ servers. Of all the items on the list, that strikes me as adding the
most difficulty for the least value.

~~~
wmf
Based on the videos, haven't they already implemented that?

~~~
rwallace
They might have, for all I know. It's doable in a product that isn't trying to
do much else at the same time, if you own all the servers in question and can
make sure they are connected by a low latency network. The bad news will come
when you try to keep the property of seamlessness between servers while
scaling up to do other things as well.

------
maxharris
Can someone explain what this is for? I watched the videos, and I still don't
get it.

And no, I haven't read Snow Crash. I shouldn't have to read a novel to get
excited about a project...

~~~
lotsofmangos
No, but you should read Snow Crash.

Everyone should read Snow Crash.

------
amackera
Calling this an "operating system" just seems like misdirection from the
actually cool problem of visualizing distributed systems. I mean the whole
thing about the Metaverse is that it's simply a vivid realization of what's
_already happening_ on the internet --- it's not some extra layer on top.

This technology is pretty impressive, and I get the marketing speak that will
appeal to certain folks, but I'd rather call it what it is --- an impressive,
distributed, rendering engine.

IDK, maybe I'm thinking about this all wrong.

~~~
techpeace
A minor amount of Snow Crash (the book in which the term is coined) is
dedicated to descriptions of the team that built the Metaverse "protocol." It
actually was software purpose-built to drive this kind of distributed VR
experience, rather than a simple visualization of the Internet as it existed.

William Gibson's "Matrix" from Neuromancer was more of a visualization of data
as it flew about a virtual world, doing whatever it is data does when you
watch it. Certain servers are protected by layers of "ice," which you have to
"drill" through in order to gain access, etc.

There are a few working groups that appear to also still be working on
standards for the Metaverse:
[https://en.wikipedia.org/wiki/Metaverse](https://en.wikipedia.org/wiki/Metaverse)

------
estill01
Anyone know if the source code is available? Their post says it's an open
source project -- would be cool to explore.

~~~
yarrel
Nothing on their GitHub yet.

Their Facebook page header has what looks like some F# on it.

------
ps4fanboy
This looks like it would be very good tech for MMO games.

------
ilaksh
Well, there is are several metric tons of examples out there.. Hard to resist
coming up with my own ideas though since this is such an interesting topic.

Maybe we don't have to have the most advanced open source 3d networking game
engine out there as a protocol.

Maybe we can start by building off of Named Data Networking (NDN)
[http://named-data.net/doc/NDN-TLV/current/](http://named-data.net/doc/NDN-
TLV/current/)

Would be nice to have everything including content represented in Manchester
OWL syntax but that's probably not realistic.

So perhaps use the NDN protocol with TLV encoding, NDN name format/URI scheme,
order. Use the interest packets for subscribing to rooms in the metaverse.
Then exchange NDN Data Packets with updates to object positions etc.

Maybe for data contents use something with YAML for a change from XML.

    
    
        name/smith/john50/homeworld
    
        base: org/sim
        libs: dim/1, objs/1, phys/1
          dimension: real
            - terrain:
                heightmap: maps/hills.png
            - objects:
              - house:
                windows: 5
                type: simple
                bedrooms: 3
              - avatar:
                model: models/man.dae
                name: name/smith/john50/me
                pose: walk 2
                position: [50, 50, 2]
                velocity: [0.5, 1.0, 0.1]
                owner: name/smith/john50
              - portal:
                  world: name/wallace/liz10/homeworld
                  type: simplecircle
                  position: [123, 435, 123]
                  dimension: real
              - webview:
                  name: John's Smart TV
                  url: http://en.wikipedia.org/wiki/Metaverse
    
    
        org/sim/objs/1
    
        base: org/sim
        dimension: real
          - procedures:
            room:
              - for: [1, walls]
                  - makegeom: [cube, 1.0, 0.5, 1.0, 0.0, 0.0, 0.0]          
            house:
              - for: [b, 1, bedrooms]
                  - room:
                      walls: 4
              - for: [b, 1, windows]
                  - cutgeom: [quad, 0.25, 0.25, 0.25, b, 0, 0]             
       
             
        name/smith/john50/update102
        timestamp: xxxxxxxxxxxx
        which: name/smith/john50/me
        update:
          operation: impulse
          vector: [ 0.25, 1.0, 0.0 ]
          startstate:
            velocity: [ 0.5, 0.0, 0.0 ]
    

The idea with the "procedures:" thing is to take advantage of YAML's
flexibility in order to create a language independent representation of an
algorithm for doing simple procedural generation. It would be designed in such
a way as to make it easy to generate code from the data tree in different
languages like C, C++, Nim(rod), Java, Python, whatever. That would be
compiled on the fly and loaded as a sort of plugin.

Then rather than doing simple state updates, it uses operational
transformations like saying "at time A force B was applied to this object and
its velocity before that was C".

So my idea uses an emerging standard (NDN) for efficiently distributing
information and updates about the metaverse, an easy to read standard in YAML
for describing the details, includes the concept of portals linking between
worlds (you gotta have portals, they are one of the coolest things about the
metaverse), includes the idea of embedded webviews (too much awesome stuff on
the web to leave that out of the metaverse browser), a YAML-format for
encoding algorithms that can be easily translated to common languages and
compiled on the fly, and operational transformations for informing other
clients about operations on the world state.

~~~
angersock
I despise your use of YAML instead of JSON, but I applaud your suggestion of a
flexible procedural markup language.

It allows (theoretically) for us to be sharing the same space, but I see a
modern office while you see a Japanese dojo. Effectively, Spatial Style
Sheets, right?

The big problem (one we still run in to everywhere else) is that people are
going to want to be guaranteed that the dragon dildo they proudly display in
their 'verse is seen the same by every visitor, and that's only accomplished
by low-level data such as triangle meshes, UVs, and images.

Still, a very intriguing thought.

~~~
ilaksh
My idea was that there would be one specific set of code for each procedure
loaded in when you say what libs: you want. So 'house' and 'room' are the same
for everyone. It would be possible though to come up with a way to allow
different definitions of those things which would be interesting.

------
lotsofmangos
Again? :)

It does look quite cool though.

------
yarrel
It's another CLR monstrosity (see the code on their Facebook page)?

Why!!!???

~~~
ps4fanboy
CLR not hipster enough for you?

~~~
yarrel
F# is pretty hipster.

