February 7, 2025
time 2 pivot

I’ve been doing a lot of thinking since the—honestly, strangely serendipitous—discovery that I had to either switch game engines (because I was probably most likely violating Unreal’s EULA), or find my way around some things I had written off as impossible. Both felt daunting. Discouraging. But I’m thinking I might actually manage the latter. I’ve been thinking of what that might mean, being able to more clearly define what has become a very murky boundary between the two halves of this project. I think it’s time to get focused.
When I started this project it was because I had bumped up against the limits of a VR modular synth I had been using to learn about modular synths. I wanted to make something like it, but with the power of VCV Rack behind it. Because of where I was coming from, and because the more I dug in, the more I let the line blur, I had it in my mind that I was creating an all-in-one thing. The user could just fire up the VR app and go. It would be seamless. And in my head, this was a thing you sat down in front of a big expensive gaming PC to do, because that’s how VR works.
I don’t think it has to be like that.
Let’s think about it together: How many people who are into modular synths own gaming PCs? And how many of those people use their gaming PCs for VR? It’s like a niche in a niche in a niche. Who am I even building this thing for?
The thought that occurred to me is, if my module in VCV Rack and my VR front end in Unreal don’t need to run on the same machine, that means the VR thing doesn’t have to run on a computer at all. How many people who are into modular synths have a laptop that can run VCV Rack? Probably a lot of them. How many of those people have a Quest or a Pico standalone headset? They’re relatively cheap. Becoming more ubiquitous. Maybe they got one as a gift or know someone they can borrow one from.
If my VR front end is just a Quest app, and my Rack module is just a module that provides a generic api for controlling Rack, I think I can reach far more people, potentially.
Thinking about it this way opens up a lot of possibilities. For one, I’d have access to hand tracking if it was a Quest app. I'd have access to passthrough, meaning this could be AR instead of just VR. But beyond that, what if it was multiplayer? What if it was easy to put on a headset, automatically discover the running Rack instance on the network, and connect to a shared space? If that’s possible on a local network, maybe it could work over the internet too?
So I’m going to strip it back a bit. Not a full rewrite, but when you’ve been building something as a way to learn a new language and two new frameworks, things can end up kind of messy. There’s still plenty of what I have that I’ll use. But I want to take a step back and focus. I feel like I’ve been exploring for the last two years. Now I want to move with purpose.
I also want to do something that I regret not doing before: get this thing in front of folks as early in the process as possible so I can build inside that feedback loop. With that in mind, I’m going to be pushing to get my module into the VCV Rack library, and my VR app into early access on the Quest store ASAP.
I am so excited to get to work on all of this.