VRoid Studio and Linux

VRoid Studio is perhaps the most popular VTuber Avatar software out there, espc for beginners without much experience with complex 3D Modeling Software. Sadly, it is only officially available under Windows, but with the power of Steam and Proton on our side, we can even run it under linux (with only minimal changes required for the full experience).

The first start

To get VRoid Studio, just head over to their steam page , or search after "VRoid Studio" in your steam client. After adding them to your library (it's free afterall!), you can select an Proton Version and launch it for the first time. I use for all games via proton the GloriousEggroll custom distribution , as it often has a bit more compatibility with games and software; I recommend always using the latest version (for obvious reasons).

Once you started, you can either explore some of their example characters, or dive in creating your very own.

Booth

While VRoid Studio comes with a ton of presets (and even cat ears!), you will relativly soon come across the need for custom clothing, accessories and other elements. For this, the VTubing sphere often uses booth.pm . It's primarily tailored to the enourmous japanese VTubing scene, but they also slowly but surely work on providing services for international users.

To sign up with booth, you need an pixiv Account; The Setup here is very streamlined and you need just an email address. Linking VRoid Studio to your booth account is also working without any problems, which I'm very surprised; typically these things just straigt up don't work due to windows and browser stuff just not wanting to work together.

In order to add items from booth to use in VRoid Studio, you either can try to use the BOOTH Library Manager, or manage them directly in your "closet" in VRoid Studio. To add items to it, you just need to click the "DL with VRoid Studio" link of an item it's booth page (sometimes hidden in "Other Downloads")...

Image of an BOOTH item (a sock set) with an popup reading: "Failed to launch app. Would you like to move to the guide page?".

Uhhhh, yeah... It turns out that this feature works by opening an custom link, starting with vroid.closet://. And proton currently has no ability to detect whenever applications register such an custom URI protocol in windows to map it to the linux equivalent. So we'll need to do some manual tinkering after all...

The chase for the protocol handler

First we'll need to inspect how booth ideally want to handle such links; to do that, we'll use protontricks on the application in order to start regedit inside it's wine prefix: protontricks 1486350 regedit. Then you either search after the string "vroid", or simply open the following path, if you're interested: HKEY_CURRENT_USER\Software\Classes\vroid.closet\shell\open\command; in there should be an empty key with the following value we actually need for this:

Plain Text
1
"S:\steamapps\common\VRoid Studio\VRoidStudio.exe" -batchmode -logfile "C:/users/steamuser/AppData/LocalLow/pixiv/VRoid Studio\batchmode.log" "%1"

Great! It just uses the main executable and gives it a few arguments. Small hint: only "%1" actually matters for basic functionality. Testing this in an wine shell (protontricks 1486350 winecmd) you can test this very quickly if you want.

Using this you can create an new one in ~/.local/share/applications/:

Ini
1
2
3
4
5
6
7
8
[Desktop Entry] Name=Open in VRoid Studio Exec=protontricks-launch --appid 1486350 "S:\\\\steamapps\\\\common\\\\VRoid Studio\\\\VRoidStudio.exe" -batchmode %u Icon=steam_icon_1486350 Terminal=false Type=Application Categories=Game; MimeType=x-scheme-handler/vroid.closet;

Afterwards you might need to run update-desktop-database ~/.local/share/applications in order to update the neccessary caches. To see if the file is correctly registered, you can run xdg-mime query default x-scheme-handler/vroid.closet; it should output the filename of your .desktop file.

One pitfall you want to avoid is to use quotes in the Exec key around the %u parameter; I did this the first time as I assumed this would be run via an shell-like function, but it just adds those quotes verbatim to the argument, screwing everything up.

If you want, you can do an quick test by running xdg-open vroid.closet://... using one of your links you can get by inspecting the webpage with your browser tools as you click the "DL with VRoid Studio" button; it should log an failed attempt to open https://booth.pm/downloadables/1448720/deeplink?client=vroid&type=zip&variation_id=4142025 or similar, and the Location header will give you the correct vroid.closet:// link.

(For all interested; here is the link to the item I used to test this: https://booth.pm/en/items/2524890 )

Conclusion

VRoid Studio is an great software for starting out with creating your own VTubing avatar; with booth as an great marketplace to quickly get some small items to make your character pop a bit more, with some great free or very low-priced items out there. While a little tinkering is required to make the experience work under linux, it is great to see how far we've come to allow linux users to have an nearly exact same workflow as under windows.

posted on Sat, 31 October 2026 by mai; last modified Sat, 31 October 2026

A blog made out of brain(z) - About AI and this blog

AI nowadays is virtually everywhere; What started with an mathmatical-nerdy gimmick now runs rampant in code-editors and IDEs, defaces art in both still and moving variants (according to some, others find it to be the coolest stuff after the invention of RGB ram heatsinks), and even whole forum posts or things like this, good ol' blogposts are "re-invented" with silicon city's new toy.

As such, I somhow needed to convey that this blog is humanmade, or in other words: with brainzzz! All you will ever read on this blog is typed out, by hand, by one of your fellow human beings. Might I sometimes write about AI in an mathematical-technical context, like how neurons work, back-propagation or algorithm to detect local minimums? Maybe, if I find the time, energy and brainzzzz to understand and do it. Am I sometimes use an AI to get stuff done that would otherwise be a 2-hour google search for some random ass joomla bug I need to deal with on my day-job? Yes ofc; after all who wants to waste their time with broing stuff when they can have time to tinker on an rust-rasterizer, figuring out how to host some random softwares and build an programminglanguage form scratch?

My stance is this: AI is a tool, ment to aid in our day-to-day lives, not to uterlly dominate it and controll us to the point where the stuff humans want to do (like art, creative work and so on). And this is how this blog is gonna work: I write stuff that flies into my brain and you, fellow human being, can read it with your own brain! No AI involved in all of it! Totally, organically brain made !

So yeah... enjoy my random rambling about stuff I encounter, stuff I'm building out of some papertowels and glue in a backyard and just other random stuff I could thing of ( I.e. trying to osdev on an early 2000th machine with an ATI Rage 128.... but thats a post for another time ;3 ). Enough for now, I wish you an amazing day and all of the worlds fortune in your future travels through the interwebs!!

posted on Thu, 02 October 2025 by mai; last modified Thu, 02 October 2025

Google Play Store's hostile behaviour towards Small Developers

A year or so ago I created an Google Play Console Developer Account (what a mouthfull of words), primarily to get aquainted with the interface and learn something about how App publishing works in the google Ecosystem. I hadn't one singular Idea for starting with it (it was rather an whole truckload of them!), but I still learned a lot about what requirements Google has, what options you have and much more.

Sadly, one thing lead to another and I wasn't able to fully publish any App in said year, due to a variety of factors, including some private ones. (I also blame my brain for just having to many damn interresting ideas to pursue!), and you might think thats not big of a deal right? After all, I already paid google 25 bucks to even get access to the interface, so there shouldn't be any problems right? We're talking here about google after all, they cant just "run out of space" to store a tiny profile with only a small demo App-Entry (which I only created to see what options are inside, which was the whole goal of even starting this early with this after all). But nope, my Account just got deleted (or "closed" if you want to use google's terms) today.

Thats something I've never experienced before; be it Ko-fi, Patreon or Opencollective (or really any other platform); they usually let you keep your account dormant as long as you want, and they didn't even get paid for it in the first place. But no - the all-mighty google, which processes exabytes of data per week, has a damn problem with "inactive accounts". (Maybe not exabytes but you get the point)

Even after reading the help article about it (and also the one to "help" you not let it get this far), I dont even know how I (or anyone really) could prevent such shit happening with their account. You might say that I maybe havn't logged into said Account in a while, but I just used it today so that coudln't be it. No, its far simpler (and dummer): They expect you to have atleast over 1000 Downloads on an App, and to Update your Apps on a "regular basis" (whatever that means). Yes there is also a rule about not login in in 180 days, but we know that can't prevent this bc I just used the Account today and even installed their android app to "proof" I have an Android device (which is new, they didn't asked me for it in the past). Still, my Account got closed (or suspended or whatever you wanna call this).

This is such a arbitray ruleing which dosn't benefit anyone; like I said, google has space for days, and I even proofed some legibility since I paid them and havn't charged back anything. And the best part: When I opened the dashboard of my demo-app entry I created in the past, it even noted I couln't update or get it started publishing since I had "problems with my Account". No shit sherlock! But how am I gonna fix these problems if you dont let me do the things that would fix them!?!?

I'm just tired of this. No other company does this bs (although I can't speak for Apple really since I don't own Apple devices and aparently you need one to even get started with publishing for their Store, but thats another can of worms). And I dont even know if I'm willing to open an support ticket at google to get my Account back. What I get from this is that google dosn't want you. I'm rather considering to exclusively publish on F-Droid (which I originally intended to do parallel to Google), since the majority of my software is opensource anyway.

At the end I'm just angry, sad and tired of this hostile behaviour of platforms against the creators that litterally hold up them, and is the reason why they make money in the first place.

posted on Tue, 02 September 2025 by mai; last modified Tue, 02 September 2025

How to create a completely independent Bluesky/Atproto Account

Bluesky (and the at protocol) are a (relatively) newly way of decentralized communication, where users are free to choose who holds/provides their data to the network, in adition to custom data-munchers often called "feeds". But in it's default way of usage still relies on a centralized service, plc.directory which provides identities for the network. This guide not only describes how you can host your own data storage (called a Personal Data Server in bluesky / atproto), but also how to completly decentralize your identity as well!

Read more...

posted on Sat, 26 July 2025 by mai; last modified Thu, 30 April 2026

Software Rasterizer in Rust - Part 1

After watching the amazing video from Sebastian Lague over on youtube, I decided to finally implement my own Rasterizer instead of "just" using OpenGL to better understand the fundamentals on how pixels come to live; and ofc so I might one day run Doom on a custom Kernel/OS without the need of reimplementing any graphiccard drivers directly!

Read more...

posted on Sun, 15 June 2025 by mai; last modified Fri, 01 May 2026

Rollinglisp 001 - Of closures, mutability and switchable references

Im currently in the first stages to implement my first ever lisp. And like every good lispy language, closures are a realy important part of the language and it's versatility. And as I choose to implement my lisp for the time being without any fancy tracing gc, only with good old ARC (Atomic reference counted), there arise some serious problems when trying to implement colsures.

Read more...

posted on Mon, 09 December 2024 by mai

Lapyst devlog #001 - Pro and cons of an own IR

Currently, the lapyst language works like the following:

  1. Lex and parse the sourcecode into an AST
  2. Enhance the AST via scope information and interfered types for (nearly) each node
  3. Walk the AST to generate LLVM IR
  4. Let LLVM do it's magic, with some LLD sprinkled in so we get a fully linked result
  5. Profit!

The problem with this is the second and third steps; not only store we some non-sourcecode related informations inside the AST, but we face problems when we want to transform the AST, being it inefficenties in the AST creation or be it simple loosing the ability to reason about the AST.

I finally took this problem head on in an attempt to finally solve it, and thats what I want to write today about.

Read more...

posted on Mon, 28 October 2024 by mai

Boilerplate-less react with typescript and parcel

Some thing that frustates me about react is that every single tutorial out there just executes some script (i.e. create-react-app or CRA for short) that generates a bunch of files and everything it does under the hood isn't reallly explained. Also i feel it's the begin of the bloat that comes with many of the available javascriptframeworks out there. So today lets look at a simple project bootstrap without CRA!

Read more...

posted on Thu, 25 November 2021 by mai; last modified Wed, 19 June 2024

Windows Symbolsserver

The windows symbol-store; a technology so simple, yet there are nearly no sources how the store actually work. So let's get started!

Read more...

posted on Wed, 17 February 2021 by mai; last modified Wed, 19 June 2024


Opens in a new window