Catching up

Wow, it has been a while since I did anything with this website (just over a year in fact!). I have been very busy with my (now not so) new teaching job, alongside some new projects I’m very excited to be sharing.

The following blog will be an overview of what I have been doing in various projects, with more detailed blogs on specific projects to follow.


Teaching job

Last year, I mentioned that I had been given the opportunity to teach Python and pygame to a class of secondary schoolers by a London-based company called Software Academy. I had initially intended this to be an occasional holiday camp or weekly after school class, but the project soon expanded to a full time job, teaching NCFE accredited courses in Python, character animation, 3d graphics and vfx.

As it was a new programme, I was completely in charge of what would be taught, so a lot of my time was spent on lesson planning and coming up with projects that would be fun for 8-17 year olds of various skill levels, without confusing or boring those with more entry level knowledge, or no experience at all.

When teaching my first group, I discovered I had grossly overestimated the number of projects we could complete in the available time-frame. Pygame requires a pretty extensive knowledge of Python/ programming in general, which in turn presupposes an understanding of abstract concepts unfamiliar to the average eight year old. The most interesting part of games design comes with programming game logic, and not with all the boilerplate code that is required. To assist with my future classes, and other instructors at Software Academy, I created a kind of wrapper module for Pygame that handles a lot of the more complex parts of working in Pygame, and presents everything to the students in a much more approachable manner.

This has since become quite a large project in and of itself, deserving of a separate blog post. I found some of the challenges in its design to be really interesting and am looking forward to sharing the process. Definitely a portfolio piece for me.

sa_pgtraining code in Python
An example of code written using the sa_pgtraining module, and the snake game that results

Software Academy is now launching an online learning platform, with video courses that are also accredited by the NCFE. I have been filming the first set of courses (Python and Pygame). Designing the course as well as writing recording and editing has been a huge undertaking, but thankfully late into the first term, we recruited my audio engineer and video editor friend Paul (His website is here) to do the editing for me, and it has been a massive weight of my shoulders. (thanks Paul!)

I have found this job to be a lot of hard work, and quite stressful near the beginning when i first went in front of a class however I have also learned from it. I am growing to enjoy completing projects with the kids. I have never trained as a teacher, or planned to go into teaching, and I initially doubted my ability to teach a class, however the kids respond really well once we have settled into a routine, and so far all of them have come away having made some cool things.

As of September I will not be taking on any more full time classes, and will instead be continuing my attempts to become a technical artist. It has been an interesting meander in my life, and I am glad I have done it, but I feel it is a distraction from what I really want to be.

Rigtools

Last April I began prototyping some ideas for a new auto rigging tool with a focus on modularity. This project has now grown into a much more sophisticated system, and is my current major project. It is larger in scope than my dissertation project – Materialiser was.

The general concept still remains the same. That a rig is built as several discrete processes that are organised and controlled by one central factory system. This factory is assigned subsystems such as IK systems, FK systems, constraints, space switching, blend systems etc. Each system can be completely independent, and arranged in any configuration or combination you need. These systems have UI controls that are exposed by the factory, so the entire rig can be designed in one window. The factory has a build button which triggers the rig to be built entirely, duplicating a result skeleton template that can take any shape the user wishes, applying the subsystems and additional systems like mirroring and blending multiple systems together.

If a mistake is made, or changes are needed, the entire rig can be deleted and rebuilt again with updated settings in a fraction of a second.

I haven’t had as much time to devote to rigtools as I would have liked with my teaching job, but hopefully that will change soon.

A much more detailed blog on this will be coming up.

Black hole

Inspired by the black hole images released on the 10th of April 2019, showing plasma orbiting around the supermassive black hole at the centre of M87, I began to work on a black hole in Maya.

I have been paying particular attention to gravitational lensing effects, which is fairly hard to do in maya.

I have been trying many different approaches (and a lot of maths) to get it to be as realistic as I can. The accretion disk is a fluid simulation, I have been reading several research papers to create the correct geometry and behaviour for my gravitational “lens”. I have also included relativistic jets emitted from the poles of the black hole.

Again, this will be an excellent portfolio piece so there will definitely be a more detailed blog coming, with details on the research and design behind it. It is still an ongoing project, as I am keen to try multiple methods that I have come up with to get the best result I can.

Maya viewport image of black hole and gravitational lensing.
The black hole “lens” (exaggerated shape)

Miscelaneous

Other than my VFX and programming projects, there are other big things I would like to talk about that have happened this year.

At christmas, I was given an Ender 3 3D printer, and I have been using it non-stop since. I love designing functional objects in fusion 360 and having them printed and working in a matter of hours. As I write this, I am currently printing a stand to simultaneously charge my Nintendo Switch, and hold it in an upright position so it can be played.

Other inventions include:

Speaker holders to attach to tripods so I have cheap surround speaker stands

Picture holders

Various upgrades to the 3d printer itself, including better storage, cooling and filament feed

Planetary gear bearings for smooth rotation in 3d printed parts.

3D printed speaker stand
Speaker stand in use on one of my tripods
3D printed Nintendo switch stand/charger
switch stand/charger in use
Switch stand/charger


Several months ago, I had a bad accident on my bicycle, while cycling with my girlfriend. I hit a sunken section of road while going down a hill, and the bike was thrown into the air. Upon landing, the whole thing went over my head and I landed badly on both arms. I dislocated my left elbow, fractured my right forearm in two places, and possibly fractured my left wrist as well. I ended up staying in hospital for a few days and was in two arm casts for a month. I now have a permanent metal plate in my right wrist (and a cool giant scar to boot.) I am still not back to 100%, and may have joint problems for good, but I am getting better. I have had a lot of support from my family and especially my girlfriend, and I am so incredibly thankful to have them.

My surgery scar
Ouch!

Leave a Reply

Your email address will not be published. Required fields are marked *