Hacker News new | past | comments | ask | show | jobs | submit login
A remake of the Windows pipes screensaver using Three.js (isaiahodhner.ml)
184 points by reimertz on Nov 22, 2015 | hide | past | web | favorite | 46 comments

I don't know if it's my memory failing me, but something about it feels a little bit off. I looked at videos on YouTube and I think it's because of the timing. I get the impression that right now it's moving much faster than it did originally.

Does anyone else get the same feeling?

In any case, it's still fun! A great bit of nostalgia.

Personally, I was a bigger fan of the maze [0]. Although watching this video made me a little dizzy.

[0] https://www.youtube.com/watch?v=oRL5durPleI

You are totally right!

I forked his/her repo and added the ability to set the speed yourself.


Original pipes didn't have knots did it? And there's some pipes that come out through other pipes which I don't think happened in the original. Very cool implementation though.

As in spheres at the corners? I remember it having those. Some corners had them and some didn't, same as in this.

I think it was a setting.

Yep: http://i.imgur.com/mWXqZh0.png

"Elbow" is just an L-shaped joint. "Ball" is the spheres. "Mixed" is a random choice per-joint. "Cycle" means successive screens will use different choices.

Given your tweets I had expected a screenshot in a browser ;)

Trying to preview 3D Pipes on win95.ajf.me causes a timeout, alas.

I think it only had spheres to terminate each pipe.

Old pipes did, but this version allows pipes to self-intersect, which might be what's throwing you off.

I felt the same way. Also, I feel like I remember that the windows version avoided occluding the camera moreso than this one does.

Incidentally, your link goes to the 3d maze screen saver.

This one is pipes: https://www.youtube.com/watch?v=trdGmt0934s

I could have sworn that Microsoft released the source code to this screen saver, long, long ago.

[Edit: Yup, it was in the SDK: SDKs\Win32 SDK\OpenGL\Code Samples\PIPES]

OpenGL, interesting. Someone knows more about this choice?

Pipes predates Direct3d by a lot. It was first release, IIRC, in Windows NT 3.5. At that time it was novel that a PC had OpenGL.

It was one of the four OpenGL screensavers 95 had (presumably NT 3.5 had the same bunch). They used opengl32.dll which provided OpenGL with software rendering, IIRC.

Right, these had no requirements for hardware support at all, because if they had had any nobody would have been able to run them. The release of these screensavers for Windows NT predated the release of Windows 95 by a few months, which is why I mentioned it.

Windows NT 3.51 also introduced the inexplicable animated cursors feature later included in Windows 95.

Animated cursors, like puppies and kittens, need no explanation :-)

Though they do consume rather a lot of conventional memory, which might cause problems :)

*five, in fact.

Here is the repo: https://github.com/1j01/pipes

Do you know any interesting threejs guide/book?

I'm still learning it, my last hack was a (J)SCAD file previewer inside Atom:


This is not my repo, so all creds go to the author: https://github.com/1j01/

But to reply to your question, what really amazed me a year a go was this demo: https://www.youtube.com/watch?v=SKPYx4CEIlM

After watching that, I feel in love with all the possibilities that comes with interactions one can do with anything that is represented in a virtual 3D environment.

So instead of learning Three.js, I started to work with Unity since they are multi-platform and have UnityScript which is a lot similar to Javascript. Due to my background as a web developer, it was a very comfortable transition.

UnityScript seems cool but it looks like I need to download a 350mb executable to run it so I guess it's for a different use case.

It's pretty much only for use inside Unity itself as a game development language.

I have a small hope, since Microsoft appears to be opening up DotNet, that Unity will itself one day be able to work with any of the DotNet languages.

You can use C# in Unity. I was under the impression that most people do.

Wow, this is pretty cool! I think more and more people will start to use atom as more projects like this start to come about.

Thanks, I'm collaborating on a local accesibility project that aims to produce braille signs (door signs for example) with 3D printers. The first experiments were using OpenSCAD. I started to experiment with JSCAD later as it's possible to use it on the web and/or NodeJS, etc. A cool feature would be to print the 3D model directly from Atom, with one click :)

The teapots are a nice easter egg! I took a few screenshots: http://i.imgur.com/PEBxHnTm.png

Just FYI I get a blank black screen in Chrome 45.0.2454.101. Two javascript errors in the console. "Error creating WebGL context THREE.WebGLRenderer @ 3.js:421" and then "Uncaught TypeError: Cannot read property 'getExtension' of null," which is probably just an after effect of the first one. Have ABP extension installed, along with a few development plugins.

Runs great on Firefox. Seems to draw quite a bit faster than the original, which I had as my screensaver for years on my NT 3.5 workstation.

> "Error creating WebGL context THREE.WebGLRenderer @ 3.js:421"

Sounds like Chrome is unable to get GPU acceleration. Are you on Linux?

That test was on Windows 7 Professional, with a GTX 660 and latest nVidia drivers.

Odd. Check about:gpu?

Here's the status section from the top. Don't want to post the whole mess so if you want anything else let me know and I will cherry pick. Also, installed extensions: ABP 1.9.3, Evernote Web Clipper 6.7, rest console 4.0.2, xpath helper 2.0.2 and a couple of standard Google shims.

Graphics Feature Status Canvas: Hardware accelerated Flash: Hardware accelerated Flash Stage3D: Hardware accelerated Flash Stage3D Baseline profile: Hardware accelerated Compositing: Hardware accelerated Multiple Raster Threads: Enabled Rasterization: Software only. Hardware acceleration disabled Video Decode: Hardware accelerated Video Encode: Hardware accelerated WebGL: Hardware accelerated

Even the teapots?

"A remake of the Windows pipes screensaver (sspipes32.scr) with Three.js

Includes Utah Teapots and candy cane!"

It's running at 15fps in my browser. I remember the original ran at 60Hz 15 years ago in a computer a couple orders of magnitude slower.

Buggy GPU drivers weren't an issue back then with software implementations of OpenGL.

Then there is something wrong with your machine.

I bet the original didn't redraw the whole thing and only the part that was added in that frame. Probably using a Z-buffer.

Brings back memories ...

Marcello Vianna's version of Pipes (included in Xscreensaver) was always much nicer[0], and ran much faster on my box. I wish someone would port it to js.

0. https://www.youtube.com/watch?v=UsUGENa7jvE

JS demo scene?

Ahhh that's super cool!

This is awesome!

Really cool!

I remember being like 7 and just watching this go off for as long as possible. This and the maze.

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact