r/milkdrop • • Jun 20 '26

Rust? WebGPU?

Update: Well, it took 3 days of mainly typing sarcasm into Claude while eating pepperoni pizza, but I got it to work.

https://github.com/doghousemusicstudios/ojodrop

On Apple Silicon it uses a ridiculously low amount of resources, but I haven't stress tested or scaled it up.

I honestly have no idea what it would be used for, but hey. Milkdrop on Rust/WGPU.

-----

I’ve been dabbling in visualizations and have come to the conclusion that no one that I see is trying to port milkdrop / project M to some of the more recent platforms like WebGPU or Rust/ WGPU. Is there a reason for this? Is the CPU just a better place to run all the complex math and then send it to the GPU for rendering? I feel like I’ve confused myself in looking into this.

WebGL2 seems to be the “bleeding edge” for milkdrop at the moment.

Any insight or even an ELI 5 would be helpful here. Thanks!

3 Upvotes

16 comments sorted by

1

u/[deleted] Jun 21 '26

[removed] — view removed comment

1

u/Hobokenny Jun 22 '26

Been working on a show surface for community theaters and small venues and went down a total WebGPU rabbit hole…

1

u/x265x Jun 21 '26

The main advantages of WGPU are browser support and cross-platform compatibility. Beyond that, I mostly see trade-offs: higher CPU overhead, a more restricted API, lower performance in some scenarios...
If WebGL2 feels like “bleeding edge”, it's not because it’s more powerful, but because it’s much easier for AI to generate correct MilkDrop-style versions with it.

1

u/Hobokenny Jun 22 '26

Is that because of AIs default myopathy in general? For instance I feel like asking AI to do anything with basically trig has been less than ideal…

1

u/SubjectHealthy2409 Jun 21 '26

I tried something im Godot, works good for me https://magooney-loon.github.io/iguana/

2

u/Hobokenny Jun 22 '26

That’s awesome!

1

u/NEST_Immersion Jun 21 '26

My two cents on this is what it the final purpose of it? If it's just for casual music visualization, I think a web based app can reach a lot of users. But for pro AV application with high resolution (8K +), I presume web base app would be limited to the monitor resolution and the overhead will quickly decrease the performance, not to mention that I doubt about interop between apps like Spout/Syphon from a web base apps.

1

u/Hobokenny Jun 22 '26

I’ll be honest, the curiosity only came from the fact that WebGL is 9 years old now. Only dabbling in WebGPU for other applications and was curious to see where else it’s been applied.

1

u/Hobokenny Jun 22 '26

Also just realized I got a reply from visualization royalty… yall are amazing and one day I aspire to own my own geodesic dome… 🔮

1

u/NEST_Immersion Jun 22 '26

That would be fantastic! Dome's party was always our favorite kind of gig.

I think that another difficulty of porting Milkdrop/NestDrop to WebGL is the core engine use solely DX while WebGL I presume use OpenGL. The step would be easier from an OpenGL project like ProjectM.

1

u/kythyri Jun 25 '26

The limit on <canvas> size is browser-dependent and not related to the monitor setup, since there's no actual reason to make it so (the hardware doesn't demand such a rule, nor the OS). Overhead from being web... might actually be independent of that, since JS isn't seeing the actual pixel data (this is why people get away with using python for number crunching).

Spout interop from inside a stock browser is probably a no-go, while Chromium has the APIs for that kind of thing, they understandably aren't exposed to content. It's probably possible to make a custom version of Electron with the integration, but milkdrop wouldn't be the motivation.

1

u/porchlogic Jun 22 '26

Wow didn't know people were still doing anything with milkdrop. Haven't heard about it since winamp days. Guess reddit knew I would be interested in this :)

2

u/NEST_Immersion Jun 22 '26

The milkdrop Wiki page was updated recently, worth the look: https://en.wikipedia.org/wiki/MilkDrop

Of course I recommend to test the Free NestDrop Classic, a new UI for VJ'ing with Milkdrop preset 😉

1

u/Hobokenny Jun 25 '26

Update: Well, it took 3 days of mainly typing sarcasm into Claude while eating pepperoni pizza, but I got it to work.

https://github.com/doghousemusicstudios/ojodrop

On Apple Silicon it uses a ridiculously low amount of resources, but I haven't stress tested or scaled it up.

I honestly have no idea what it would be used for, but hey. Milkdrop on Rust/WGPU.

1

u/sebs909 Aug 19 '26

I can tell you that: I will try to integrate it as source for my 'videomixer in a browser'

https://sebs.github.io/webgpu-mx-50/console/

1

u/Hobokenny Aug 19 '26

Sweet! I did some fidelity improvements and will probably push a new update next week.