Hacker News new | past | comments | ask | show | jobs | submit login
Scenic Tram Simulator (alexanderperrin.com.au)
918 points by fredley on Sept 24, 2017 | hide | past | favorite | 127 comments

What a lovely web experience! I adore the style and artistry of the illustrations here, and the attention to detail to the little things like the clack of the wheels increasing in frequency with the speed, the squeak of the brakes and the different noise when the tram goes over the wooden bridge etc.

I do wish there was a small prompt on screen right at the start with an indication of how to start off the animation. I clicked, dragged and swiped everywhere on the screen before I finally clicked the (i) button to see it was all keyboard driven! :) But perhaps that was deviously intentional, as it gave the site time to load up all the assets it needed in the background?

Just shows you the ‘power’ of touch. On my iPad, I didn’t even think about it.

I would imagine it is mostly just oversight, given the loading period in the beginning.

This is really great! I love "toys" like this on the web, they were prominent in Flash, but then the web looked like bootstrap, and now like Material Design... Sometimes, a little bit of web creativity is what you need to brighten the day.

The ebb and flow of various conventions for utilitarian or practical sites bears little connection with the amount of creativity present on the web.

"Shall I make a beautiful illustrative web-based experience or shall I make a site using Bootstrap?" said nobody ever.

It's not about what any individual person may say, but about what gets produced in the end. Pure HTML and JS tools like Bootstrap make it easy to crank out basic web templates for developers, while tools like Flash made it easier for designers to make beautiful toys.

This is a really good observation. Flash allowed a designer to work in their tool and export that content directly to the web. Back in the day you'd buy a cheap FTP-enabled web hosting account, and upload your exported index.html and content.swf as-is and that would be it.

As a designer these days I don't think there's anything like that kind of workflow available any more.

Well. It sounds to me now that you're making a slightly different point - and an altogether better one.

I actually made a similar argument yesterday to someone - whatever we feel about Flash as medium for normal web content or as a browser plugin, that shouldn't taint it's reputation as a content creation tool.

You say that, but Flash was basically a drawing program with a timeline - this makes it much easier to doodle all sorts of things compared to building a site with Javascript and HTML.

Not entirely true. The Flash Runtime was ES4. Few who made applications after 2006 used Flash Pro. It was an Eclipse based editor for the most part (Flash Builder).

However I get the point, but I feel it is important to stress this difference that you bring up.

My 18 year old clueless self seen turtleshell.com randomly, thought it was amazing, looked up flash, did stuff in Flash, 10 years later OOP. 10 years after that, software engineering.

My 18 year old clueless self today would want to be like "somethingcool.com" but I would have to troll through about 12 months of tutorials to see something on the screen.

I'd work in a factory.

Today you'd create something in Unreal Engine or Unity and upload that to a server. Or export it as a mobile phone app.

You can't compare Flash and Unity (let alone Unreal) in terms of approachability. I pretty much learned Flash the day before starting a job once. Try that with Unity.

Before flash goes away for good, I feed my nostalgia using http://www.andkon.com/arcade/.

Also, this toy/experiment reminds me so much of Machinarium, I'm going to play it again right now.

Thank you for your insight.

Please also check http://fl.corge.net/ because it contains outrageous amounts of outstanding code.

Beautiful, well done. I love that we can now publish short interactive-ish experiments like that on the plain web. Also, I love the little details - the wheels conform to the shape of the track and the pantograph conforms to the shape of the wires above.

Mean rant below: However, this suffers from terrible hitching and framerate issues. I tried it both in Firefox and Chrome (latest stable release for both), on Windows, on a i7-6700k cpu and nVidia GTX 1080ti gpu. The framerate just isn't stable and there are random hitches of one or two dropped frames. By itself this wouldn't be that big of a problem, but combined with the very contrasting art style (black on full white), it started giving me a headache and making me seriously sick after a short while. Even when not dropping frames, the motion was quite juddery, e.g. I saw the nearby poles jumping from position to position. I won't ask that the authors resolve the frame-rate issues, because I suspect it's an inherent issue to the browsers. Instead I would suggest that motion blur be implemented to hide the harsh frame-to-frame transitions and less contrast be employed between foreground and background (maybe make the background a bright grey rather than 100% full white).

Thanks so much for the kind words and also the performance analysis! I agree with you 100% that the motion can be jarring and unpleasant. I'm yet unsure as to what exactly is causing the issue, but I believe it's something with regards to GC that is just over my head for the moment. Resolution also plays a huge factor, and as a temporary measure I've added a half-res toggle in the info panel. This helps out especially with high DPI monitors.

Whilst it shouldn't be surprising, I'm astounded as to how much of a science and balancing act it is to achieve frames that at least ~feel~ smooth, especially on web browsers.

I'll be working away as much as possible to try and make things silky all over. Thanks for your patience until then!

Just curious - did you draw all this artwork yourself? It is exquisite. If so, did you draw onto paper then scan in, or did you use a tablet etc. to create vector drawing that you then animated?

On all my browsers here it animates smoothly enough (good frame rate), but every time it renders changing parts of a frame there’s some flashing effect, and as a result when the car is moving fast looking at the background is pretty unpleasant, especially skinny high-contrast elements like the trees and posts against a white background

Maybe that’s just inevitable when using the canvas for painting?

Just something that might help you debug it, it looked a lot more fluid on my 60hz screen than my 144hz one, where it got pretty jarring at full tram speed. You might also want to add a rate limiter on the bell, but that's personal preference.

I've got a 32GB iMac here, and in Chrome, on full screen on my 27" display, the animation worked smooth as butter. In fact, the smooth scrolling added to the whimsical, arty style of the site for me, leading to a great experience.

EDIT: Actually, I just tried it again in entirety, and noticed some juddering from time to time. However, when I am looking at the beautiful background artwork (which is most of the time), that juddering is less obvious. I guess it depends if you are looking at the background art or the foreground animation as to whether it is really apparent for you.

I had your same experience, it looked choppy to me.

I guess people who have a "gaming capable" PC will notice the micro-stuttering more than others, because they are used to fluid animations.

It's interesting how no one minds about low FPS when watching a movie (24 FPS is "cinematic"!), but when in a game (or any interactive experience where you provide a nontrivial amount of input) suddenly FPS has a huge impact on the experience.

Motion blur makes all the difference.

> I won't ask that the authors resolve the frame-rate issues, because I suspect it's an inherent issue to the browsers.

Stuttering in WebGL is not an inherent issue in browsers. :)

To me it seems like something in their code is thrashing the GC. Maybe the `getLUT` function which creates a new 100-length array every frame...

Interestingly it was very smooth on my iPhone SE but stuttered a lot on my desktop.

MBP2015 here, with Intel GPU, and Chrome with 100+ open tabs - no problems here. I even noticed that you're playing a cat avatar. Just how awesome is this.

Reducing the browser window size fixed the glitching for me (Chrome, MacBook Pro).

i was more annoyed by the fixed 30fps framerate

It's a very nice demonstration. Very pleasant and aesthetically pleasing.

I don't know that the title here is really quite right. "Demo" is probably closer to what this is, maybe "Interactive Animation". When I think of a simulation I'm typically thinking of some effort around achieving realism and a much higher degree of freedom of action. This isn't an effort to achieve any of that. This is an artistic impression of such a trip. I can interact with it, but there is very little freedom of choice. Also the rendering is "drawn" 2D.

The title of the piece is actually "Short Trip" as seenin the title tag and the end of the experience. It seems the HN submitter chose "simulator."

From the credits:


> Three.js, Javascript

> Short Trip is the first instalment in a collection of interactive illustrations created for the web. It has been created as a study into capturing the essence of graphite on paper within a digital context, and to learn more about web-based graphics technologies. Short Trip will run on most devices supporting WebGL, including mobile devices.

> Have a look at alexanderperrin.com.au/paper/shorttrip

> Due to the current limitations of both WebGL technologies and my understanding of them, there’s bound to be issues found here and there. If you’ve found something particularly odd and have a spare few minutes it would be greatly appreciated if you tell me about it here. At the moment there’s a few known issues particularly relating to Android support. I hope that these will improve with time.

> Regardless, I hope that you enjoy your journey.

Well, it is literally on rails...

Did you notice that you can choose whether or not to stop at each stop. If you do, the cats will get on and/or off.

Quite impressive, especially paying attention to little details like the clock showing the local time.

Dang, didn't notice that until you pointed it out. Yes, that is really cool.

Also, love the little animated cats along the path. At one stop, I saw an 'old lady' cat off to the left of the screen moving fast towards my tram. Perhaps she was rushing to get on, but I took off on my next leg of the journey regardless, and noticed that as soon as I started moving, she stopped running with a somewhat dejected slump to her stance. Probably totally random and coincidental, but I'd like to think she was trying to run and catch the tram and missed it!

It really is like public transport!

Also the flora changes with the gain in elevation.

It would be nice if it didn't require any input from me; I feel guilty skipping stops, but it brings me out of the reverie that I have to play a game, instead of just enjoying the scenery roll by.

What a lovely thing to play with.

[spoiler warning]

It's nice that you're not allowed to walk the cat over the cliff at the end and ting the bell.

Yeah, I saw that cliff and thought it was going to end a lot more morbid than it did.

Where do you get the cat?

I believe they are referring to the character you are controlling. It doesn't let you walk off the cliff.

Loved it. Does anyone get smooth scrolling, or does the animation stutter even on high end machines? Not complaining, just trying to figure out if I have the wrong settings for my PC.

Stutters like mad for me, so bad that I closed it even though it seemed really sweet. Chrome and Firefox on Windows, recent i7 and higher end nvidia GPU.

Runs perfectly here in Firefox, on Linux, with Intel graphics. Very smooth, no stuttering.

Stutters on my 2015 MBP, but runs fine on my Oneplus 5. Guess web graphics struggle with larger screen sizes/resolutions.

Stutters a lot on my 2015 MBP. In Firefox especially, but surprisingly even in Chrome.

It seemed pretty fuzzy while moving on a 144hz display.

Stutters horribly and quite low average FPS, FF on Windows, with _very_ decent specs.

Ran great on my iPhone 8.

I got no stuttering on my 2017 MBP

2017 MBP LOL well it runs fine on my 2013 MBA

Ran fine on my iPhone 5S, although admittedly that's a far lower resolution.

Beautiful illustration and execution. I was hoping for a bit of discussion on tools used to create this. Looks like it makes clever use of three.js.

I just got back from a good, long trip to Europe. This captures the spirit quite nicely.

Yes, I live in Europe and can confirm that this is much like my morning commute. I felt deja vu. Maybe it's about me? I thought nobody noticed I'm a cat.

Ah ah, where do you live? My guess would be Switzerland or Austria.

In tone this reminds me of the fable of the "Cat Town" in the novel "1Q84" by Haruki Murakami.

I picked up a copy because of your comment. I am looking forward to diving in!

So beautiful. It stopped loading at 93% on my phone (Android 7.1.1, latest Firefox) but it works well on my laptop.

Nice illustrations. The sounds are also great. I could spend the night driving the car back and forth but I've got work to do and I already spent too much time on this :-)

Huh, I was able to load it (and even run it, they thought to put in touch controls!) on Android 6.0.1, Chrome 59.0. I'm quite impressed at how smoothly it ran on a mobile device.

Got the same on my IOS (iPhone 6S, chrome and safari) and OSX (MacBook Pro 2015 mid, chrome and safari). Getting 522's so I guess the site is being HNed to death. Or there is some issue with apple OS things.

Bandwidth limit exceeded. Guess it was the former :).

Same here, Tried firefox at first but doesn't load in chrome either.

Also stuck at 93% on Firefox for macOS (not iOS).

93% here as well :(

If this awakened feelings inside of you of driving people from station to station, may I suggest Densha de Go[0]


Very calming way to start the day. Almost like a guided meditation.

loved that? you will love this!!!


Some nice illustrations and animations there, but not really an interactive sequence like this one in the OP.

Also, I know it is a take on a popular children's fable, but this one seems to have a not so subtle political message underlying it, and it also seems to be a lot darker (I only got up to the end of page 3). I don't know - it seemed to me in this one that the rats seemed to be a metaphor for a particular socio-economic cultural group. I could be wrong, but something about it made me a little uneasy.

I can't get past page three! Hell I already can't wait to see what happens with coked-up rats

I need much more of this kind of lovely thing in my life.

A very pleasant ride! I didn't think to stop for passengers at the first few stops. I feel a bit guilty about that. Meh... they should have read the "express service" sign.

Interactive MTA Conductor: Unannounced skipping stops and shows up when it wants to.

I didn't grab any at all, but thanks for the tip I picked them up on the way back.

This was such a refreshing experience. The sound work especially brought things home for me.

Fails in Chrome Version 60.0.3112.113 (Official Build) (64-bit) with the error:

"My apologies, your device doesn't support WebGL, which is what Short Trip relies on! Try updating it, or try another one."

WebGL works all across the web, so you must be doing something wrong in detecting it. This is on a Mac running Yosemite (I know, company won't let me upgrade!) with plenty o' memory and lots o' CPU available.

This is one of the things I see on HN where all I can think is "how the flying f..k does this even work" and "what a madness of assets, that must have taken months to record".

For what its worth, the simulator even does physics (try not pressing right on a hill, for example - the tram will roll backwards, and brake much faster than on plain level)... awesome.

I really wanted to drive it off the cliff.

It was much needed this morning, thank you for this wonderful piece of Internet!

What an awesome experience! In fact you could reverse it too. Splendid!

I don't see it in the help, but Space also does something.

You can click on the bell at the end. Besides letting passengers on and off was there anything else along the way that was interactive like that?

Press the spacebar when in the tram...

Can someone recommend to me what I can to do view this despite the bandwidth exceeded? I am not sure my life can go on without.

It's back up, for me at least.

Lovely! Really enjoy playing it. Great work.

P.S. you have a erroneous </div> tag in the html source near the credits block.

i didn't stop for anyone on the way back, am i a bad person?

To absolve your conscience, imagine your tram had "TECHNICAL RIDE" written on it.

The next release will have a switch and several people tied to the tracks.

Unfortunately, I'm getting a Cloudflare timeout on http://alexanderperrin.com.au/paper/shorttrip/static/img/tre...

I love this so much.

Technical write up?

[edit] some info here - http://alexanderperrin.com.au/portfolio/short-trip/

To be honest, it's kinda mediocre, the gameplay is ok, but really linear, the color filter feels grayish and the characters are really two-dimensional

Doesn't appear to work on Google chrome on Linux Mint.

This was really pleasant. Thanks for sharing this.

Is the scenery a huge one-time drawing or is it generated as the train progresses ? In any case it's truly well done !

I've noticed it had several upvotes during the interval in which it has been hugged to death. Is this expected?

Could well have been that they were returning from playing it and were up voting it then.


Did you notice that

... wall clocks are showing your local time?

... passengers walk towards you (the driver) when you miss their stop?

What kinds of libraries did you use to build this? I see you have a webpack bundle.

Webpack was certainly invaluable when developing this! The ThreeJS framework was used for everything graphics and animation, however. I absolutely love working with it.

How much of the graphics is procedurally generated versus sprites?

Very cool! Thanks!

Wow! This is such a lovely, inspiring experience. Is the source available?

I wish there was the opportunity to drive myself off the cliff at the end. :(

Loved this. Many thanks to the author for brightening my day!

Title should be changed to "Short Trip".


This is insane. Extremely well done!


Amazing, I loved this.

that was a good thing

That was fantastic.

beautiful, beautiful work! Well done Sir!

Please include a volume control.

The site seems down...

Hugged to death

guys stop downvoting me xD it was true when I wrote this

Loved to death. Bandwidth limit exceeded.

Poor fella. Couldn't handle all the hugs.

A lot of people on hacker news have trouble receiving affection.

Damn, bandwidth eaten for the month, I'll check back in November :-D, but would like to see this.

It's back up, for me at least.

Damn I missed it... why do people ever host stuff on this trash? :(


1. It's not a Show HN, the author didn't post this here

2. It's some random person's experiment and they likely didn't expect the HN hug of death.

Is this your way of offering to pay for hosting?

You don't have to pay, just put it on github pages.

But if software/web are your profession, surely $5/mo on a droplet isn't too much of an investment.

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