________ ________ ________
2022-01-17 / \/ \/ / \
/ __/ /_ _/
Be warned, dear reader, that this is a / _/ / /
half baked idea I just want to get out into \_______/_\___/____/\___/____/_
the ether so I don't forget about it. I've / \/ \/ / \
been turning it over in my head off and on / _/ /_ _/
for a while but recently epoch shared his /- / _/ /
monolithic todo list[1] and it had an item \________/\________/\___/____/
on it that said simply "gemini vr" so I
thought now would be a good time to get some thoughts down on paper.
I'm heavily invested in VR, I'll admit it. At first it seemed hokey and
then it was fun but still mostly a novelty, now it's really gotten its hooks
into me. I spend a lot of time in VR just to be in VR, not really there to
play a game or to socialize, just to be in the space. I love it in there and I
find real comfort in it.
Naturally, and if you're the type to be reading this I'm sure you'll
immediately understand the feeling, my love for the space makes me want to
produce content for it, just like with Gopher and Gemini and the tildeverse
and all those good places but I'm very, very green when it comes to 3D. I find
working in 3D really alien and between that and just not having enough time to
dedicate to sitting still and studying, the whole thing seemed so overwhelming
that I'd either never start anything or quickly get frustrated and lose
interest when I did.
It got me wondering, where is that lofi sweet spot in VR? What's VR's
Gopher and Gemini analog? And I couldn't find it, so maybe I have to make it?
I don't know. It seems like a huge undertaking. But every journey starts with
a single step and so I sow these seeds of an idea in the loamy underground
Internet in the hopes I can eventually cultivate a habitable garden.
Broadly, I imagine bVR as a protocol and markup language for VR. To VR what
Gemini is to the Web. Imagine this:
Gemini's gemtext describes a way to format a page of text and hyperlink to
other pages, think of a Gemini page as a two dimensional object. I want to
extrapolate that into three dimensional space and it's easy right? The surface
of a three dimensional object is made up of two dimensional faces so we make
up the surface of our three dimensional VR space with two dimensional Gem/Goph
items.
I envision it something like this, for ease of reading I'll represent the
markup as a kind of JSON but really this is up to discussion and ideally it
would be something simpler, it's just an existing syntax I can leverage now to
better communicate the idea
{ defines a solid
{ defines a surface
"contains an item description",
is the item
}
}
That's really it, everything else is handled by the client which can be as
fancy or as simple as you like, the markup describes the solids you see in
your space and what data (text, an image, a video, an audio file, a link to
another directory) you receive when you press on the surface of the solid. the
number of items in the solid defines the shape, a solid with two items appears
as a card, a solid with four items appears as a tetrahedron, etc. Any solid
with a number of sides that cannot be rendered (eg. 1, 3) gets rounded up to
the nearest solid; 1 becomes a card, 3 becomes a tetrahedron, each with a
blank space added to fill in the gap.
Your client (the beVR browser) consumes the markup file and renders a 3D
space populated with these solids, you pick them up, turn them over in your
hand to browse the content, poke the surface of the solid to open the content.
Nothing much more complicated than that. Lofi VR.
[1]
https://thebackupbox.net/todo/epoch.txt
EOF