r/steammachine • • 9h ago

Software Obligatory Windows Pipes Screensaver for SteamOS (but more specifically for my own SM)

As a designer I've been idly waiting for Steam screensavers to come out of beta so I could start digging in, and now they're here!! I've been pretty surprised by the seeming non-existent excitement for this feature when the potential is so damn broad, so I'm hoping I can show what there is to get excited about.

I have lots and lots of ideas for these, but first thing I wanted to knock out was the classic Windows XP Pipes screensaver. Luckily, many years ago someone already got this banged out in threejs, so I'm taking full advantage of that MIT license. Big ups to 1j01, their code is basically 90% of the work, I've just been modifying it to add some functionality and refine the pipe behavior. I'll likely release it on github as a fork to make sure they keep most of the credit.

-

This screensaver is exactly what it says on the tin, pipes for days. I added an image in the background that slowly materializes as the pipes fill up the space (this can be literally anything but I made it the Steam logo for now), added my own custom-designed palettes alongside one inspired directly by the original, adjusted the behavior of the pipes to make them a bit closer to the original, and surfaced a bunch of options so you don't need to dive too deep into the code to adjust it to your liking. The attached video is recorded on my ultrawide monitor, so it's a bit.. wide.

Let me know if there's anything someone would like to see here as an option. I'll continue fucking around and hopefully I can get this into a repo at some point very soon 🫡

buncha shite

NIGHT EDIT:

I need to sleep so I haven't tossed together a README yet, so excuse any lack of attribution or useful information, but here's a first early version! There are still some weird rare bugs here and there, and I don't do much handling of unexpected config values just yet.
https://github.com/Acerocks22/tabs-screensavers/

You'll find all of the currently available customization options in the config.js file. Be careful with a few of these, I'm still working on managing memory build-up. Palettes can be edited or added-to in the definitions.js file. Let me see any cool palettes you make :D

81 Upvotes

11 comments sorted by

8

u/Huge_Custard4333 8h ago

Top work, I'm really hoping the screensaver feature takes off and we'll get new stuff alongside the classics like pipes , after dark, Johnny. Castaway etc.

I'd happily pay a few quid or some steam points for more customisation.

4

u/TabloidA 8h ago

Exactly! I honestly sometimes wonder if it released it all haha, it's either that screensavers are way less cool than I think they are or people just haven't realized the potential yet. Planning on making it a goal to make ppl understand 🫡

6

u/Ok_Car_8094 7h ago

FLYING FUCKING TOASTERS!

please and thank you

2

u/crillish 5h ago

Came here to say this. Give me flying toasters, please.

1

u/TabloidA 3h ago

I'll see what I can do!

5

u/signofthenine 8h ago

Very much want to add this to mine, please feel free to give an update when it's ready - Thank you!!!

2

u/TabloidA 3h ago

Just stuck a first version up on github now, peep my other comment :)

3

u/Ok-Simple-7069 6h ago

I never understand how Microsoft managed to do that on the hardware at the time. Loved it.

1

u/Flat-Panic8622 5h ago

will there be the Teapot Easter Egg ? 🫖

1

u/TabloidA 2h ago

I confess with regret, the original repo had this and I completely scrubbed it in my process of sorting out the code. I'll make sure to get it back in in a future update !!

1

u/TabloidA 3h ago edited 3h ago

I need to sleep so I haven't tossed together a README yet, so excuse any lack of attribution or useful information, but here's a first early version! There are still some weird random bugs here and there, and I don't do much handling of unexpected config values just yet.
https://github.com/Acerocks22/tabs-screensavers/

You'll find all of the currently available customization options in the `config.js` file. Be careful with a few of these, I'm still working on managing memory build-up. Palettes can be edited or added-to in the `definitions.js` file. Let me see any cool palettes you make :D