Week 16

July 9, 2017

Hi team,

This week was an important step towards rounding off some of the architectural decisions made throughout the pipeline, so as to start building directly applicable and relevant functionality for your everyday workflow.

But here’s what happened.

  • 20th of June - Alex told me he got too much on his hands to continue developing for Avalon
  • 21th of June - Shortly thereafter, Roy told me he got a project in to keep him and his team busy for a month.
  • 28th of June - On Monday this week, I learnt that Mindbender had gone on holiday for a month.

Everyone involved in this project was gone.

Table of Contents


Starting August my time will be split into 80% running a company and 20% developing this pipeline, as opposed to the 100% focus today.

If I don’t finish the compositing and rendering pipeline till then, it’s unlikely it’ll happen in any reasonable amount of time. At that point, workflow and tools will continue to grow - with help from collaborators - but the architecture upon which they are built will remain in place for the foreseeable future. The ability and maintainability of any tools built after this point will depend on the quality of execution of this architecture.

With one week gone, there’s three to go.

Installation Guide

The installation of this pipeline for remote artists is as simple as it could be; it involves running a command and connecting to Mindbender.

For the potential adopter however, their procedure is akin to what a studio must perform to host this pipeline. There are quite a few moving pieces and wrapping them all under an installation process that won’t turn new users away is a challenge.

One of the most important aspects to demoing a project of this kind and size is running an example. To jump right in as though you were an artist in an existing pipeline and just play around. For that to happen, I need to ship an example project.

The trouble here is that projects are split between files on disk and documents in a database. The installation process manages files, and it’s safe to assume the user has a file-system on his computer. It doesn’t take into account a database, and it’s not safe to assume a database - the specific database we require - is present on his system. So we must install it, and manage the upload of an example project ourselves.

I managed to distill this process into a single command.

$ avalon --import batman

Where batman is the example project distributed alongside the base Avalon installation.


Some of the things happening on start-up and scene save still had remnants of Mindbender-specific code. For example, on file-save mbID attributes were created on relevant nodes.

These “events” now happen via a new mechanism in the pipeline that I expect to grow over time.

from avalon import api

def on_event():
    print("An event happened")

api.on("event", on_event)


I found that some of the information required for the documentation wasn’t always relevant and sometimes distracted from the main thread of conversation. Information such as troubleshooting or frequently asked questions.

For example, when running through the installation of the database, sometimes things went wrong so it became important to highlight to the user what he could do to remedy things. For the users who didn’t have issues however, this information is superflous and distracting.

So I added a fly-out section - called “spoiler” for their use in hiding spoiler information in forums and the like - that the user could click if trouble occured.

untitled project

Next Week

If all goes well, we’ll have a working rendering pipeline by end of next week. Calle told me Emre will be on site and with no immediate tasks on hand, it’ll be you and me Emre!

Stay tuned!