I'm starting a new "build thread" (not building anything except pixels, but they're good pixels).
This is the "Bubble Universe" graphics hack. I'm going to try to have some fun with it. Follow or ignore hashtag #BubbleUniverse for more.
馃У 1/N
I'm starting a new "build thread" (not building anything except pixels, but they're good pixels).
This is the "Bubble Universe" graphics hack. I'm going to try to have some fun with it. Follow or ignore hashtag #BubbleUniverse for more.
馃У 1/N
History. As best I can tell, the bubble universe was invented by Twitter user @yuruyurau in 2020 as a very terse Processing.py sketch and first published in this tweet.
https://xcancel.com/yuruyurau/status/1226846058728177665
Edit: add screen capture of tweet.
馃У 2/N
Paul Dunn ( @zxdunny ) followed a few months later with an even terser BASIC version and a demo on YouTube.
https://www.youtube.com/watch?v=G5aOBh7qQe8
馃У 3/N
@larsbrinkhoff got into the act with Javascript and PDP-10 assembler versions. The sources are on Github, and a video of the PDP-10 is on YouTube.
(Lars, what display are you emulating on the '10?)
https://github.com/larsbrinkhoff/bubble-universe
https://www.youtube.com/watch?v=hIU7iYWZWSY
馃У 4/N
Several others have implemented it; it seems to be popular with the retrocomputing crowd. I found out about it when @PaulaMaddox ported it to her FPGA 6502 simulator a few days ago.
馃У 5/N
And now I've implemented it. But instead of porting it to the slowest most decrepit retromachine I can find, I'm going the other direction: What kind of visual effects can I achieve if I throw a decent GPU at it?
The video above in 馃У 1 is a screen capture from my Javascript + WebGPU implementation. It's running at 20 FPS, using about 5% of the CPU and 3% of the GPU. More to come...
馃У 6/N
I wrote another one! I ported my Javascript + WebGPU implementation to Python + wgpu-py, and now I have a desktop app.
And I pushed it to Github. "Share and enjoy!"
https://github.com/kbob/bubble-universe
馃У 7/N
I finally got my head around WebGPU/wgpu enough to make my own render graph. Now the bubble universe thing is decomposed into a graph of render passes, and I've got some simple parameter animation going.
In this screencap, I'm varying the particle size and transparency and varying the number of particles in two ways in sync with the universe's revolution. The color map is just doing its own thing; that wasn't planned.
馃У 8/N