Okay demo only in the sense it's not interactive. Not very long either. Perhaps a little childish. Whatever, check it out here and it's source here. It should run on any modern browser, although on mobile you'll want to rotate to landscape.

PlayCanvas is cool. It's like Unity3D except the editor and the end results live in the browser. To my great surprise it's really good, too. Importing assets is easy, scripting is easy, the scripting documentation is excellent, stuff like creating custom events and programmatically changing materials works logically. A couple of this.entity.model.model.meshInstances style object chains looked a bit awkward, but it was okay with the good docs.

The weirdest thing I encountered was to find a rather new example (from 2014, that's new, right?), where a function the example used had been deprecated so long ago it didn't give a warning anymore and just failed and googling the function's name yielded an another function which had also already been deprecated. At least this one still had a deprecation warning which mentioned the new function's name. Never encountered a double deprecation before. It even sounds really dirty.

Anyway, the basic workflow I used was to upload my awesome self made .fbx model to the editor and on the code side I set up a Github repository and linked/synced it with the project. A cool thing about the editor is that it's able to run the project "locally" which means you can serve your scripts from localhost and edit them locally, and still use the web-based editor. Neat. And when the project is finished you can just download a .zip with all the project files ready to be served somewhere with a single unzip. There was some sort of publish option, too, which I didn't try yet which I'm assuming needs less manual file moving.

PlayCanvas finally made me install Blender. Before today I always sticked to a weird idea(l) where I tried to keep to just coding. Half of it was about hoping someone would someday start doing the modelling part of my (our?) graphics and games projects, the other half was thinking I'll never be good at anything that has something to do with drawing. Now that I'm learning to draw, too, there's really no excuse...

Blender's documentation seems to suck a bit. I ended up at a page a couple of times where instead of seeing the doc I saw a number titled "file count" or something? I also met a useful "hotkey reference" which was a small info box with the text "Hotkey: see below". Below it was a massive wall of text. I tried ctrl+f:ing 'hotkey' and there was one result, which was:

note however that most Blender hotkeys you know in Edit mode do not exist for texts!

t-thanks for that. I never found the hotkey. All the other doc pages I found were mostly just huge lists of hotkeys with really weird descriptions for them.

The only real way to find info was to watch tutorial videos. And who the hell has time for watching tutorial videos? You can't really skim them, that sucks. No one remembers everything on the first watch/listen/read which is why you need to be able to refer back quickly, preferably through a bookmark or something (okay no one uses bookmarks anymore, maybe a history or another google search). Luckily the videos were rather good so it wasn't as big a pain as it could have been.

Blender's UI definitely sucks. There's often little to no indication what mode you're currently in and what's it called so you could at least google how to get back to it when you forget how. I at some point lost the wireframe mode and never found it again. Sometimes things like the overlay that draws a grid and coordinate axes disappears, and the recommended and easiest way to get it back was to open the default project, and then reopen your project with a checkbox unchecked that makes it not load the UI settings from your project. Ugh.

But even with the somewhat crappy UI Blender did leave me with the impression that it's really powerful when you do know the shortcuts. I heard some schools here in Finland use something like a year just for teaching students how to use it. Makes sense.

Next time I play with PlayCanvas I think I'll try out something procedural.