Massive Robot is the journal of Dan Webb, an old school web guy who's learning about 3D graphics programming, XR and computer vision.

Elsewhere...

Getting started

And we're off! Today is my first day properly getting to grips with graphics programming so I thought I'd start with some notes on where I've gotten so far and what my rough plan of action is.

The areas that I'd like to cover initially are roughly 3D graphics programming and the underlying principles and get familiar with game engines while, at the same time, I'm going to put a machine learning/computer vision curriculum together which I can interleave with the graphics work I'm doing to keep my brain fresh. I'm going to be careful to stick to the foundational stuff first rather than to head to quickly into VR/AR - I'll easily get trapped tinkering endlessly otherwise - time for that later.

To kick start my learning, I signed up to a whole load of Udemy courses. Udemy constantly have some kind of sale on but for the first week of the year they had a particularly good one where every course on the site was £10 so I just went in and bought the highest rated courses for every subject I could think of. At this point, over the last few months I've managed to get through a couple of those courses and I've been pretty impressed so far.

A particular highlight has been this Unity course. I'm in a bit of a weird spot whereby although I'm a pretty experienced programmer I know nothing about programming patterns around gaming/graphics, basic 3D concepts (apart from bits I've dredged from memories of my CS degree) or Unity as a piece of software. This has certainly been a bit frustrating but this course is one I'd highly recommend as it's very project based and has allowed me to learn the basics while diving a bit deeper into the programming side of things myself. There have been a good few points where I've grimaced at some of the programming decisions, decided to do it my own way and then discovered a bit further down the line why they'd done something a certain way which is a bit of a PITA but its not detracted too much. I must admit, working with Unity has been really exciting so far, it's quite an incredible piece of kit. Post forthcoming with my initial thoughts on Unity.

Aside from this I've been making my way through this short course on shader programming. This is pitched at a higher level from a programming point of view and I'm finding this as a great conduit through which I can properly apply and grasp some of the lower level mathematical concepts around graphics programming and 3D. Previously to this I'd made my way through this great set of videos that explain linear algebra in a brilliantly visual way - an amazing resource - there are also great videos on that channel explaining the maths behind things like blockchain and neural nets that are worth a watch too. It's already clear to me that getting good at all at both graphics and ML is going to involve really understanding linear algebra.

Finally, I've been breaking up work on the courses with working on this site (getting back into web dev briefly was fun - will post more about that in the future) and watching conference talks on various related subjects. I've found the library of Unite talks to be a great source as well as GDC's presentation library. A couple of highlights so far are this one on the design challenges of building the Rick and Morty VR experience and this one on Unity architecture using ScriptableObjects. Since the start of this I've been really curious as to how games/graphics programmers apply various patterns and this was an interesting glimpse.

If anyone out there has any tips, I'm all ears. Ping me on twitter with suggestions.