Linux in a Pixel Shader – A RISC-V Emulator for VRChat
blog.pimaker.at
blog.pimaker.at
https://www.youtube.com/watch?v=G2u7NOpzcBQ
I haven't played VR Chat in a few years, and holy cow this makes me want to jump back in. Seeing fully captured motion avatars of people is SO immersive. It's absolutely insane how the experience of interacting with people can feel so natural even when they're on the other side of the planet.
I just love watching "body language" of the presenter, it's such a precise rendering of what a "real life" presentation like this would be.
Plus, you meet people like the writer of this blog post, who are so knowledgeable and interesting and fun to talk to.
I'm really not one of those people who bashes nerdy or alternative culture but I can't deny that it weirds me out a bit. It's a clear barrier of entry for me.
There's also the fact that it's easier to be immersed if you aren't leaning heavily on realism; Oculus has a lot of research on this, actually. For example, if you have a photorealistic avatar but aren't doing eye-tracking, it's actually more jarring and discomforting than a cartoon avatar without it. That's why the initial avatars they did had force-obscured eyes and no color, and the new ones are literally cartoons: your mind can adapt to something very different, but it can't adapt to something that's just subtly different.
However, some people do choose to do weird stuff. That's mostly a tech thing though. If you go to a normal place, you'll find a lot of actual kids and actual teenagers, and they're relatively normal. Very few people as weird as the tech community.
Really, technical people in digital spaces kind of get a bit wild with their self-expression. Some theorize it's because most of them don't express themselves much in real life.
I've tried this particular app only a handful of times (I don't like using proprietary software, but it's important to keep yourself updated with the state of it), and when I wasn't visiting explicitly tech-related things, it was pretty normal. Lots of copyright infringement of Nintendo characters, as you might expect.
Also there is something seriously wrong with the world when a people playing virtual pretend immidiately makes others, even in such thoughtful places such as HN suspect that they are horrible child molesters etc etc.
EDIT: for what is worth, I tangentially work on the same sort of software. My system is a training environment not intended for the public, but a lot of the same concerns are involved. Currently, we have no avatar selection system. Everyone gets the same avatars, differentiated by a name tag. This was 50% a deliberate decision to avoid avatar mayhem and maintain an egalitarian environment, 50% pushing off the problem until I can figure out how to give some options without devolving into avatar mayhem.
As mentioned in another comment there's no difference between someone choosing say a furry avatar vs someone choosing say a star trek character as their avatar. Same reason: they enjoy that world/universe.
Why do people make pop culture jokes? Because it's something they familiar with and enjoy and that gives 'em the seratonin.
If say 40% of all quarterbacks were named James, you are not explaining that by saying "James is a perfectly normal name, just like Richard or John".
I feel seriously old since I've been using furry fox avatar in SecondLife back in the 2006, and even then, this was fairly common.
I also wonder if its really as many as you think it is, or if they just stand out to you because you don't like them. You also don't have a good basis of comparison since you have no idea how many people in regular life are like that (i imagine its still much higher in vr space, but maybe the gap is not as vast as you think)
Sexually developed adults suffering from age or species dysphoria and ultimately demanding rights to match their self image is something that should not be encouraged in civil society, as those rights are inextricably linked to an implied requirement for consent which cannot be given.
It might be tempting to try and draw a line between the kind of folk above and the folk from the video, but I find that difficult given the variety of clearly sexually exaggerated avatars on display. The one that sticks most in mind being a fox with a pair of impractically large breasts.
As far as i understand, furries just want to dress up as animals and maybe have sex with other people dressed as animals, not have sex with actual animals. As long as everyone involved is a consenting adult i don't see anything wrong with that. I might think its weird, but that's true of a lot of "sex" things. Seems very very different from the people attracted to children.
Saying you're LGBT doesn't inherently make you LGBT - nor does it grant you any particular credibility. The community is insanely diverse these days and at least in American politics, most of the large issues have been resolved (with the exception of trans individuals, who still face struggles w.r.t. insurance and healthcare).
MAPs tend to latch on saying their "attractions" (pedophilia) are part of their unique sexual identity. This is not true, and GP is correct in pointing out these two groups cannot adequately acquire consent from the other party - one is incapable, and other has determined to be not of mature enough mind and body to do so.
There is definitely a cute and innocent side to the furries particularly among younger folk, it seems for many there is no sexual element to it at least initially. It'd be a much happier world if the two were more easily separable, but even then the question would remain whether the gentler group acted as a pathway for the uglier group. That both exist undifferentiable and intermingled in the same spaces is extremely problematic, and a priority issue for those folk to solve.
In the early gay community it was also the case that desires for otherwise healthy and innocent rights were abused to mask much more insidious causes. Today it is unlikely you'd see homosexuality and paedophilia mentioned in the same breath without provoking a surprised response, but relatively recently that perception was still common. I think this is probably a good parallel to where furries are now
There has to be something to be argued with respect to human model of consciousness, cognition, and self identity about almost complete lack of male avatars in actual VR scene.
It can’t be like “they’re all young _men_ so they want cute anime”. Maybe it’s not just about VR, or anime, but the concept of masculine dude just seem to disperse and disappear once you stop subjecting yourself to the baseline reality.
I say this as a gay furry, who knows that there are like, a million gay furries on VR, but constitute only a small portion of the general population.
( he also made a very nice documentary about VRChat nightclubs https://www.youtube.com/watch?v=R1wUg9HCODU )
I don't really know what I expected but it wasn't that. Aside from some focus issues the goggle hardware was pretty great but the VR world was not a good experience at all. :/
The application is not a stunning technical achievement, but it's unfair to judge the program by jcim's summary, because he seemingly went into it without knowledge of how it worked and wasn't able to access any of the interesting places. It would be like judging Skyrim by an SNES backport.
The real magic is when you either A) have friends who are already into it invite you directly to worlds with them and their friends, or B) find the niche public worlds that have a more mature and invested userbase. (Sadly, a lot of the niche worlds aren't compatible with VRChat on the Quest when running in standalone mode; you have to connect the Quest to a computer to get the full experience.)
Artistic license. But mostly because when you are an adult, you still feel like a child in many situations.
For as long as I can remember, we have had adult predators going online posing as young girls/boys with different levels of malicious sexual intent. I understand that that isn't the objective here, but I can't help making that connection. Like "Oh! You weren't actually a 15 year old girl, you are a 30 year old guy pretending to be". That makes me uncomfortable.
The anime stuff always seem to be overly sexualized. Skimpy outfits. Traditionally sexy bodies (Legs, boobs, ass, etc. Yes, that is highly subjective but I think you can see my point).
Same goes for the furry stuff. Always the more or less "sexy", more or less "naked" looks. As an outsider it seems to be a sexual fetish more than anything else.
I have absolutely nothing against people wanting to be more fluid with genders. Or wanting to be sexy. Or roleplaying as whatever. I welcome that. It's just a bit weird that it's such a common choice to be [sexy child] or [sexy animal]. And in a setting that, to me, is not where sexy things happen, or where sexy things are even really wanted?
I very very rarely encounter minors, and hanging out with them makes me uncomfortable too, even having thousands of hours played. Sucks that you had a bad experience, the platform can be a completely different experience if you are brought into it by someone who already knows their way around.
I think there's a big difference between "online games" in general, and this, though. If you don't see that difference then I understand that you don't think that this is weird.
Edit: Presentation starts around 1:24:00
The graphics are indeed really bad.
The background noise also seems to be poorly managed.
And the avatars are visually striking just to the point of being very distracting.
But I have not the first clue how to fix any of these issues. The graphics have to exceed 70fps cannot drop frames or you risk users getting nausea (and not using the platform!), the audio chat works just like every other audio chat out there - badly, and the I looked into the avatar situation and discovered that, contrary to my own intuition (where avatars would incorporate lightweight, aggressively CPU-throttled control programs that could arbitrarily direct how emoting works etc), you basically get a restrictive SDK that's just *upgraded* to the point where you have like 16 different things your avatar can do.
It's simultaneously utterly inspiring and an absolute dumpster fire. I "got" VRChat for the first time when I discovered this last week and have been awkwardly conflicted about it ever since.
Not really much difference between an avatar of any other character and a furry avatar, just people are fans of their own character/universe than say a character from Star Trek or something.
I think a lot of people that have never used VR have a preconception that VR is necessarily about being photo-realistic enough to trick people, but VR is exciting enough just for giving you a first-person perspective and bodily control within a 3d space. There is plenty of VR content that looks photo-realistic enough to be real, but many of my favorite VR experiences are in places that are clearly polygonal. It doesn't take photo-realistic models to get engrossed into talking with people. Body language shines through most avatars well; in VR your brain easily intuits how the motions of an avatar you see are linked to the motions of a human. (There are a couple people in the video whose avatars are very rigid without the arms ever moving or their heads ever tilting, but those people are the ones not in VR and instead just using the desktop version of VRChat.) VRChat is all user-made content and the draw is definitely in seeing how people express themselves and the extremely wide range of content rather than being about photo-realism or experiencing a single creative vision.
https://vrchat.com/home/launch?worldId=wrld_7f05a6b7-0223-48...
There are also a couple people in the video that aren't using VR but are using VRChat in desktop mode. It's pretty obvious because their hands don't move from their sides while standing, their head motions are limited, their body never sways, etc.
I commented underneath:
> More details and demonstration, naturally presented natively in VRChat: https://www.youtube.com/watch?v=G2u7NOpzcBQ&t=5052s
> Video found via https://twitter.com/_g1fan_/status/1427073177142939648
> Source: https://twitter.com/fuopy/status/1427051048032620544
> Just discovered Twitter doesn't let you copy a link to a retweet reference D:, but I discovered this on https://twitter.com/whitequark/ 's timeline.
With this it's suddenly reasonable (if expensive performance wise) Thank you for this, haha.
That sounds kinda interesting/fun.
FWIW, given that you're running a game, and most people run games fullscreen, without anything else going, you can probably get away with not using virtualization, aka eating 100% CPU (or at least 100% of one core)... and even then, with most systems having >4 cores nowadays, you probably needn't worry at all.
But just to clarify the corollary, this implementation is running at around 250kHz (!). You wouldn't viably run Linux like this in a practical context anytime soon.
That's not how virtualization works, it's time sliced which is why you can have more vCPUs than physical CPUs. You can also limit the slice utilization to an arbitrary percentage or give it a priority level for scheduling.
At that point though, why bother virtualizing? If you're going for the beige PC look, why not go all the way and emulate an 80486 (or 80386 even) on an IBM PC clone in software running linux 0.01? Performance isn't going to matter too much, so you could limit it to as much or little CPU utilization as you want.
Plus, virtualizing is going to potentially require additional permissions that users may not want to grant your game (or may not be available on the platform).
How's island life treating you?
Bear in mind that the original Mac was roughly a 2 MIPS machine and an early Pentium or PowerMac 100 MIPS.
If I would want to solve that problem, first thing I would have tried is bypassing text representation of these shaders. For a few things in the past I have generated, and dynamically patched, D3D11 shaders directly in DXBC byte code, without HLSL anywhere. The byte code format is even documented by Microsoft. Not the complete DXBC files though, but some people on the internets have reverse engineered the missing pieces.
It’s possible the DXBC byte code generation might work fast enough for their application without the overhead of the ubershader, or the complexity of their hybrid approach.
This is weird, AFAIK pixel shaders have had arrays since DX10 and the OpenGL equivalent through Buffers (and also Unordered Access Views for reading/writing pixel data) https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/...
Are VRChat shaders stuck to Direct3D9/ps_3_0 level functionality?
I wonder if the slow speed can be partially redeemed by having many emulated cores.
So when the browsers bother to finally replace their 2011 GPU model by WebGPU (stable), which is still MVP 1.0 compared to Vulkan/Metal/DX 12 Ultimate, then you might have it.
So that, alongside the usual blacklisting issues, makes native the only option for anyone that wants to exploit the full potential of the underlying hardware.
Thanks for calling me out on that.
This is the kind of madness/genius that'll take us places.