Hacker News new | ask | show | jobs
by rezmason 1366 days ago
I'm amused that we share initials and a passion for this kind of project! Mine's https://rezmason.github.io/drivey .

One key difference: this guy built his demo from scratch, whereas mine's a port of someone else's work. It's great to see another implementation, with its own techniques and features.

18 comments

This person is really incredible. Just check out their work: https://www.rezmason.net/projects.html
Copied from https://www.rezmason.net/projects.html

Through the nineties, Microsoft software engineers carried on a tradition of writing clever and distinctive software projects alongside the software they were primarily tasked with writing— this is where Solitaire and Minesweeper came from, for instance. These engineers also wrote "easter eggs" into their primary software, such as the beautiful flight simulator hidden in Excel 97.

Amazed by reading the above. I'm a sucker to read and learn from that clerverness.

Amazing to see you in comments; your version was inspiration for this project: https://twitter.com/j_miskov/status/1490358867104083972

The video didn't generate much interest so unfortunately I didn't release anything playable.

That's really neat! I like the tunnels under the giant trapezoids, they make me think of those enormous trapezoid buildings in Blade Runner.

I can't take credit for Drivey's aesthetics, I'm just honored to have carried it to HTML5 ;) Somewhere out in Australia is the original programmer who I'm sure would love to see this, but who also loves avoiding the spotlight.

I just did a quick scroll of your Twitter feed and jeez you're prolific, this stuff is really cool. I'll try Hexpress this weekend.

Among "features it would be neat to add", fading timelapse smeers as in your photo of the curve would be luvly.
I do not like how your city planners put pedestrian crossings on blind curves. That's really bad design that could lead to accidents.

P.S. It's a joke. This is a really well executed demo.

I agree, but the original creator put them in and they add some spice to the environs.

I like to joke that Australia (where Drivey originally comes from) has a low enough population that the pedestrians are in no real danger ;)

As a fan of vaporwave this is

aesthetic 可ぷき

I’m vibing
Oh, I think I remember the original Drivey and was following the dev blog for a while back then. But I think in the end, it didn't go anywhere (no pun intended).
Neat! I like that this is kind of the opposite effect (obviously Drivey is way more polished).

Drivey shows objects as their silhouettes on top of a light background, whereas Nightdrive shows objects as their lights on top of a dark background.

Pleased to meet you! ^_^ Nightdrive is a jewel.

Some people are making a strong case (I think) for calling these types of projects "demos", but also, I think the inability to fit them in the arbitrary structure of existing nomenclature is a good quality for a project to have. :D

Have you considered using a small bokeh image in place of circles in your renderer? Their size is based on the (usually unchanging) optical properties of the eye, rather than the eye's distance to the light, so you'd fade them rather than resize them, and if you round their position to the nearest pixel you might be able to draw them with 2D canvas context speedily.

Wow that's gorgeous. Is there a link to the source?
His username is rezmason and it is mounted under /drivey. so, rewrite the url a tiny bit and you get:

https://github.com/rezmason/drivey/

interesting that this is running very slow (like 1 frame per second) on Chrome, but runs very smooth on Firefox. I'm on the latest version of both for Mac.
That is very odd. I wonder what your Chrome browser's zoom is set to, that might affect its resolution.

If you create an issue on the repo, I'll try and figure it out when I have the bandwidth.

Just tried it again on my work laptop Chrome (Mac, latest) and it's running smooth, so it was something with my personal laptop and not your code.
That is amazing, I remember seeing an early version of this on Windows and being impressed. It is great to see it revived and with source!
Would be neat to have eye gaze be literally controlled by where you look using webcam tracking! Not sure how accurate it would be though.
Only tengentially related but eye tracking + foveated rendering is the thing that makes me the most excited about PSVR 2 !
Was yours based on "Drivey"?

EDIT: never mind, it looks like it was, very cool.

Yep, my third attempt in ten years!

The original was written in "JujuScript", with strong types and novel operators. I pretended it was Haxe, and ran around fixing compiler errors it till it compiled to JavaScript. I built out a small Three.js project to hook it to, built up the features, then refactored it into something I felt was maintainable. I tried preserving the organization of the original script as best as I could.

Sidenote: I belong to the "port it" school of software preservation. My friend who runs the BlastEm project belongs to the "emulate it" school. I've seen both approaches have been employed to preserve Glider, which I think implies how important that game is to people. :)

That's really cool, but I wonder why on my machine is maxes out all the cores on my CPU and still runs at something like 1 FPS on high If I turn it to Low it runs okay but looks.. not great.

But I don't see anyone else having issues so, is it just me?

Same here. I've also experienced it with other JavaScript simulations. I suspect it has something to do with Chrome's hardware acceleration because it works smooth as butter on Firefox.
Sounds like a lack of hardware acceleration. My i7-1185g7 is sitting at 20% but my Intel Iris Xe GPU is maxed. Runs smooth though.
Gorgeous and hypnotic.
That is amazing, I remember seeing an early version of this on Windows, its so great to see it revived and with source!
Hmm, nothing happens for me on mobile (Chrome, Pixel 6 Pro). Just a black screen with some controls on the bottom.
Yeah. That is awesome.
This is beautiful.
Great work on this though! Super impressed. Would be fun to clean it up and convert to typescript.
Honest question. What do you see "not clean" in the original code?
Good question. The honest answer is that I don't know and that's the problem.

A compiler would tell me what all the types should be and if they are being respected. I'd also write a lot of unit tests to make sure that the code is doing what it is expected to as well as enable refactoring more easily. The code isn't formatted consistently, so that also makes it hard for me to read, I'm kind of OCD about that and having tools like eslint/prettier, which do it automatically, makes this super easy to fix. Linting the code would also point out other issues that the compiler misses. Putting it into CI would ensure that all changes get checked and builds would fail, if there are issues.

So I guess that is what I mean when I say 'clean it up'.

Update: Getting a lot of downvotes (yes, I know against HN 'rules' to comment about that), but I don't get why people dislike my response so much and would love feedback on that (similar to how the OP asked for honest feedback).

What I did was pull the source code, load it up in IDEA, convert the .js files to .ts files. Then looked at the errors. Most of what stood out was that the author included a copy of threejs directly and used parts that TS can't infer types on. Not a huge deal, but makes following the code more difficult for sure. I don't think it would take too much time to update it at all.

If you compiled me, you'd know that you are a type who I respect ;)

I think you're right on many counts, and I appreciate the effort you took to see what TS could do for this kind of project.

If you create an issue on the repo, I can notify you if I make an attempt at using TypeScript to maintain it, in a branch at least. No guarantees, but I've considered it before, and it'd be worth my time once I have some to allocate.