Daniel Braunstein

Audio Programming | Spatial Audio Research

Filtering by Tag: Hubs

Avatar Selection Choices - Reality vs Abstraction

Now that I’m starting to interact more socially in VR - at least twice weekly - finding a ‘suitable’ avatar to represent me in these digital worlds has become an important task. Whether it’s for personal, creative, or professional consistency, we’ve all seen the persistence of “avatar identity” through famous personas: deadmau5, daft punk, and even Lady Gaga, to some extent. As socializing virtually stands poised to become the dominant thing - in a moment where the whole world has gone online, what’s stopping it from really taking off? It might have something to do with never feeling like there’s quite enough “us” in how we’re able to interact.

How does visual representation play into this? For one, a few weeks in and I was a little tired of being ‘Daniel the Boxy Weird Red Panda”. After pouring over a couple of options, I really resonated with one of the available tools, by 3D software company Wolf3D: “Ready Player Me” avatar generation. You can try it yourself here, or their fullbody version. What drew me in was one of their blog posts: “Finding the right balance between realistic and abstract 3D avatars”.

To put it simply, if we make our representations too abstract or untethered, the avatar risks being meaningless. Too close to ‘real’ and the Uncanny Valley happens, so we have to try and find the “Goldilocks Zone” of digital representation. Finding a balance between digestible and fun and “accurately representational”, as far as identity goes, is one of the biggest remaining challenges in preventing VR from being more than a passing tech fad.

The Good

ReadyPlayerMe’s Avatar Creation

ReadyPlayerMe’s Avatar Creation

So here’s what I came up with!

Now I don’t believe it to be perfect, and the hair’s about 6 inches closer to “Aragorn” than what I’m currently working with, but I think it’s pretty close! It gets the beard, my new square glasses, the sort of messy long vibe I’ve been working with, enough that I feel like if someone met me in VR they’d have an easy enough time recognizing me in real life. It also seems, by virtue of facial expression, pretty inviting. And the hoodie/cardigan felt close to how I’ve been showing up for most Zoom meetings lately.

The fullbody version of their avatar creator actually has a much closer hairdo, but then missed the mark on the beard (why are they different?) and clothing styles and misses for me on body proportions too. I can’t make any claim of ‘easiness’ in tech, but even a selection between a few body types would feel nice. I’m not a fortnite-hero slim dude, and that’s perfectly fine with me! Being forced to represent one in full-body isn’t the most comfortable choice, however.

Clothing is also such an important part of making first impressions (I mean, it’s why we dress up for interviews, right?), and I felt really limited by the options here. There didn’t seem to be any variation of non-business-dress that didn’t have some substantial level of quirk, leaving me to choose between my least-least-favorite two, “I guess this is seasonally appropriate wolfdeer sweater” and “maybe I’ll stream some beatsaber in this cybercoat”, neither of which quite feel on the mark enough for, say, interacting with friends casually.

You know it’s ok to be a 6’ dude who weighs more than 135 pounds, right?ReadyPlayerMe’s Fullbody Avatar Creator

You know it’s ok to be a 6’ dude who weighs more than 135 pounds, right?

ReadyPlayerMe’s Fullbody Avatar Creator

Time to exploit my employees for months on end of endless crunch. After I condition, of course. ReadyPlayerMe’s Fullbody Avatar Creator

Time to exploit my employees for months on end of endless crunch. After I condition, of course.

ReadyPlayerMe’s Fullbody Avatar Creator

The Meh

This me just looks so sinister.AltspaceVR Avatar Editor

This me just looks so sinister.

AltspaceVR Avatar Editor

I do, however, want to contrast it against what I see as slightly on the abstract side of the abstract-real continuum, but still in the same neighborhood, and that was my AltspaceVR Avatar. Coincidentally, this is how I met many folks this year for the first time at GameSoundCon, which was a trippy but fun experience, but I feel like it captures (largely through poor facial-hair and clothing options) the “me” experience fairly poorly.

Now a lot of the features are pretty similar (at least within the confines of each application’s possibilities) but I still think the style choices create an entirely different timbre of presentation. The “ReadyPlayerMe” avatar seems infinitely more friendly and inviting. I wish I knew enough visual language to articulate what I feel like causes this, but man if it isn’t fascinating.

And the Unfortunate

As for the ‘failed experiments’, here’s both some ‘too abstract’ and ‘uncanny valley’ technologies, my apologies to both Default Mozilla Bots and the AvatarSDK. I really respect the approach of having such a nondescript avatar as the default. Not limiting participation in virtual spaces to defaulting to realistic self-representation can be an awesomely safe feature for users!

These lil robos aren’t bad! But they’re also not… me.Mozilla Hubs ‘Default Avatar’  Options

These lil robos aren’t bad! But they’re also not… me.

Mozilla Hubs ‘Default Avatar’ Options

I chose an unfortunate screenshot but I promise it’s even more unsettling in motion. From AvatarSDK Face2.0 Demo Video

I chose an unfortunate screenshot but I promise it’s even more unsettling in motion.

From AvatarSDK Face2.0 Demo Video

That being said, I believe that if we want there to be any longevity to VR beyond a 'cool tech craze’, learning how to identify and represent ourselves comfortably is pretty important.

Designing a Virtual Environment in Spoke and Blender-Render-Fender-Benders

For my “Social VR” course at NYU, this week we were required to design a simple environment using Mozilla’s web-based 3D scene builder. Overall, it think it’s a pretty handy tool for how much accessibility it affords, and the integration with various asset sources makes it fairly simple to pick up!

When thinking of an environment to get started on, as a big fan of Tabletop RPG’s the now-trite beginning of many a years of play has usually begun with some variation on “So all of your characters meet in this Tavern…”, and I thought, why not start this ‘Adventure’ in one! To avoid burying the lede, here’s a snippet of what I was able to dream up:

You can practically hear the farmer who’s having a Giant Rat problem already…

You can practically hear the farmer who’s having a Giant Rat problem already…

The fun part of this, however, isn’t in the finished product but rather in what would be my first foray into learning Blender, and grabbing assets from SketchFab that weren’t quite right. Firstly, I need to properly credit the artist François Espagnet for his wonderfully stylish assets.

However, when I first went to import those nice windowed-wall sections, there seemed to be a glaring error in the context of my cozy nighttime scene:

Bright_Windows.png

Something doesn’t exactly scream “nighttime” here

So I figured “This is a great time to learn about how to change materials in a 3d modelling software. Or maybe it’s textures. I don’t quite know the name yet.” and opened up the asset to try and figure out what I was doing.

After some great “How to make glass materials in Blender” tutorials (so it was materials), my object looked great in the Render Preview screen, wait, viewport, I exported it and dragged it into Spoke, only to find my beautifully transparent windows now part of a colorless gray slab. And after a few hours, I was able to figure it out, with beautiful transparency. Mission Accomplished.

A little Dark, but voila! It works!

A little Dark, but voila! It works!

As for the Technical How, let’s talk details for those interested.

So in order make exporting / rendering / uploading one smooth process, one of the increasingly-adapted formats is that of the GL Transmission Format (glTF) and it’s binary partner, (GLB). Developed by The Khronos Group, the encode all of the relevant object info in a neat little .JSON package, capable of storing textures, geometry, animation and more, which is incredible.

That being said, the Blender-Render(er) isn’t entirely perfect and hasn’t caught up entirely to the featureset that Blender itself provides. While most of the aforementioned tutorials recommended using a Principled BSDF shader node and tweaking the Transmission all the way up and tweaking other stuff to taste, the current Blender Exporter breaks with certain parameters, one being 'Specularity’. After considerable time, ~40 export attempts, and some forum digging, I found the way to get some sloppy transparency working. Instructions as follows:

It’s not quite as beautiful as a great '‘glass’ material, but it gets the job done and let’s light through! There you have it. I’m looking forward to learning how to do it all properly, but for now I’m glad I got it done