We need fediverse (or at least distributed foss) virtual worlds. I'm tired of missing parties because they're in animal crossing.

@feonixrift g-d mood. i wish opensim was better than it was for stuff like that. And VR in general.

@feonixrift Possibly @cwebber will save us, I think the current experimentation is towards broader protocols that might include federated entertainments?

@cathal I think we all need to start putting hours toward helping if we want @cwebber to save us. ;) But I'm really glad to see all these efforts going forward. There's a lot of work happening in the background, that I hope we will see results from.

@feonixrift I am helping, I'm directing my thoughts and prayers to @cwebber :P
I think the language is LISPy and I haven't yet turned enough attention there to be useful.. <_<

@cathal @feonixrift There are a few more fundamental pieces that I need to get down before it will be "easy" to help me. Namely, I need to finish the "secure distributed computing" part. But that is in progress and probably is closer to reality than most expect. Once I have that I can build a mini virtual worlds demo.

If you want to start getting ready to help, go through

The abstractions there are the same you will use for virtual worlds programming.

@cathal @feonixrift Note: I think it will be easier for people to start "extending virtual worlds" once the virtual-worlds-foundation exists, the same way that a lot of people get into programming by "modding" games that are ready-to-play but also open-to-extend.

@cathal @feonixrift That said, if you want to start getting immersed in the proper lore, maybe join #spritely on and introduce yourself to me there. I'm dustyweb. And get started on the Goblins tutorial.

The first distributed virtual worlds demo, even if a bit on the lighter side of functionality, *should* happen by the end of 2020.. I am on schedule for that. It'll show you what's possible with this system, but won't be a completely fun game yet.


@cathal @feonixrift

There's also a project along these lines working off of Mozilla's Hubs. @datatitian was mentioning it a few days ago. I don't know how far along it is, however.

@ross @cathal @feonixrift @datatitian I'd love to know what it is.

(However, if they aren't building on an ocap foundation, I won't believe it can work.)

@cwebber @ross @feonixrift @datatitian Your system is Racket based, or Guile? Have been planning to pick one for my first serious stab at LISP anyway :)

@cwebber @ross @cathal @feonixrift
It's an #ActivityPub implementation tailored for virtual worlds (e.g. tracking Arrive/Leave to list your friends' current locations with links to join them; each instance is a place for both local & remote actors to visit, so they connect to actors' home instance as OAuth2 clients to post activities and stream udpates).

@cwebber @ross @cathal @feonixrift I'm pairing it with Mozilla Hubs as the client for easy cross-platform social WebVR/WebXR, but, of course, AP is a standard, so it's not tied to any particular virtual world implementation and the C2S api could easily be implemented even in native apps

@datatitian @ross @cathal @feonixrift Whoa wow wait a minute. This sounds like interesting stuff. Do you have links?

@cwebber @ross @cathal @feonixrift
just repos for now - a week or two away from a working demo state and then I'll set up some web presence.
The AP server:
The client implementation in Hubs:
Also my modular AP library in Node:

@datatitian @cwebber @cathal @feonixrift do you have a repo anywhere I can follow? I was thinking of trying something like that in pure rust with a game engine.

@cathal @feonixrift If you really want to follow along in my journey towards making Goblins distributed, here is some information, though I'm not sure I can recommend it unless you have a lot of time to dedicate.

The core idea I am implementing is something called "CapTP". First implemented in the E programming language, then in a number of others.

I am live documenting my journey here:!topi

Be warned, that is a MONSTER thread of me communicating with domain experts!

@cwebber @cathal I have a bookmark folder given over to 'stuff to read to start catching up with what cwebber is doing'. You've convinced me on ocap; I'm just horribly time constrained atm. (But, I mean, who isn't...)

@cathal @feonixrift The other people implementing CapTP (and honestly THE experts) are whose stuff is written in Javascript. (They're advertising a lot of blockchains stuff on there but their stuff works with non-blockchain actor models, similar to ActivityPub). We are in regular contact; maybe we can achieve protocol interop, which would be great, but is yet to be seen.

@cwebber @cathal I want to compare this against what some of the distributed identity folks are doing... grr lack of time. Thank you for keeping me fascinated and in the loop; I will at least try to keep up when I can, and keep pointing out this work whenever its clear use cases come up.

@cathal @feonixrift What's the pros and cons of Javascript vs Racket/Scheme/Lisp?

Agoric's javascript means they are targeting the most popular language in the world. But they also have to deal with a lot of "history" with that language choice.

By contrast, Goblins' choice of Racket/Scheme/Lisp has allowed me to approach this as "distributed ocap from first principles". Many language choices are cleaner, even if there are many more parentheses.

@cathal @feonixrift However, even the parenthetical language aspect will not be a requirement... it should be possible to layer other syntax forms on top. But more importantly, here is a video that demonstrates a *visual editor* for lisp, with no parentheses present:

I think this would be an appropriate editor style to embed right into a video game, especially to help newcomers. And people wouldn't even know they are writing lisp.

@cathal @feonixrift Most importantly, if CapTP is an abstract protocol and we can manage to get interop between Agoric's implementation and ours, that means Racket/Scheme programs talking to Javascript programs, and devs not even thinking about what the runtime on the other end is. It need not be relevant, as long as they follow the protocol and ocap discipline (granted, ocap discipline is easier in some languages than other).

@cathal @feonixrift I have probably said enough for now. I hope that makes some things clearer as to where I'm at and what's on the horizon.

I hope you enjoyed today's Spritely Textwall Session (TM).

@cwebber @cathal That looks like Scratch. I simultaneously want to run as far as possible from it and hand it to every third grader in sight.

@feonixrift @cathal Except that structurally, it's just lisp! The parentheses are hidden in a scratch-ish visual structure. :)

Which IMO is more appealing than scratch because it means the approach is "not very special". You can fuse it with any lisp, and yet still manage to easily hand it to third graders. :)

@feonixrift @cathal Or even better: hand it to game players who want to extend their worlds while walking around them!

@cwebber @cathal @feonixrift gosh this looks hecin nice.
would be cool to build a #Guix config editor on it, something a bit more user friendly than what we currently have.

(might need types for that though)

Sign in to participate in the conversation

A bunch of technomancers in the fediverse. Keep it fairly clean please. This arcology is for all who wash up upon it's digital shore.