Ftrack <3 Pyblish = Webinars


Have I missed something? I though we were having a dry run today :slight_smile:


Scroll up, you agreed to Tuesday! :slight_smile: Can you make it?


I believe it is Tuesday today :wink:


Will join, can you send me invite link


Haha, my god. You are right, it is Tuesday.

Tonight it is. :slight_smile:

@benminall I’ll create the meeting shortly and post the link here.


@marcus did you setup that meeting?


Will do now.


Starts in 1 hour.


Unless you say otherwise, I’ll let @tokejepsen start the production examples section.


Sure I don’t mind.


webinar id#

  1. Go to
  2. Enter this Webinar ID: 156-435-475


Man, this was great. Really well done, guys. You guys were rock solid, calm, assertive, had great content and were well prepared.

I’m working on getting the video up now, and will be back either tonight or tomorrow morning depending on trouble.

One thing I thought about as we were going, was how great it was that you were making references to the previous presented; Toke, you were referring to my previous examples, and Milan you were also referring to what Toke was talking about. I think this is great and ties it all together. It would have been difficult to plan for initially, since we didn’t know much about what the other person were going to talk about. But the recorded session should provide good material of what we’ll talk about.


Things to note:

  1. The resolution of the video is a form of hybrid between all of our formats, as we switch screens.
  2. Audio is ok, mine is a bit low-res I think, I’ll have a look at that. Otherwise, volumes are ok.

Have a think about comments on each other’s talks till Thursday. I think for one, that maybe it could be an idea to briefly mention who you are and what your company does? Just to get a highest level sense of where we are.

On a personal note, I felt I was much too nervous and speaking a bit too quickly, repeating myself a few too many times. I had hints in the sidenotes to each slide, but didn’t manage to see in the “presentation mode” of the Google Slides so were mostly speaking from heart. I also didn’t have a timer of sorts, so didn’t have a sense of how long I had been talking which somewhat stressed me out. So those are things I’ll be taking care of for Thursday. Let me know if you think of anything else.

Also, @mkolar and @tokejepsen, feel free to jump into the slides and replace your icons and update your email addresses on the first slide, along with the last slide. Maybe add your emails and a link to your companies etc. You should have edit permissions? Otherwise let me know!


Preparing for the webinar made me think of Pyblish in a new light, and I’ve discovered a new way of breaking it down to the layman. Let me know what you think of this idea of constraints and types to introduce plug-ins and families.

What is Pyblish?

If PUBLISHING is sharing with constraints, then PYBLISH then is a means through which you define and manage these constraints.

Constraints range from…

  • This file must go into this location
  • Models cannot have locked normals
  • This asset must be registered with our asset tracking software
  • to anything anything along those lines.

Defining Constraints

Each CONSTRAINT is written in the Python programming language and encapsulated in a “plug-in” - a subclass of one out of two superclasses, depending on the kind of behavior you are looking for - global or local.

Managing Constraints

Plug-ins are typically stored in one file each and discovered at run-time, similar to Python’s import mechanism.

Each constraint is associated with a user-defined TYPE, such as a model, rig, animation or composite, such that each type can be managed independently.

CONSTRAINTS are known as plug-ins
TYPES are known as families


One note I had was that in the dry run you mentioned constraints whereas the ASCII manufacturing line mentions contract.

Personally I think constraint can have a negative feeling as it depicts limiting something or blocking productions. Even though contract might require some more explanation (seems farther fetched?) I feel it has a more positive intention with the word, to define rules to which the content must hold.

Basically every CVEI pyblish run is an automated data-wrangler (and project manager) that ensures it holds to the contract. It’s as if every instance is signing a contract in which it states it would act according to the rules of the pipeline.

I’ll think some more on the rest of the terminology.


I thought I was waffling more than I did😀

Think I’m missing how we are opening the files, as it seems a bit like magic that I’m opening the files directly from Ftrack. This is a benefit from Pyblish that if there has previously been published a scene file, itll open the latest work file.


Strangely I’ve talked to our artists about having automated file opening and most of them didn’t really like the idea. They tend to have multiple workfiles at any time and don’t always necessarily want the one they worked on latest. Are you picking the latest version or latest by saved date?


Yeah, but the device itself isn’t really a constraint; it is the means with which apply constraints.

There is a word for this device, it’s specific and to the point, it isn’t very well known…

Maybe better to not have a title on the device in the ASCII drawing?


Its seems to be working fine here, but we don’t have multiple work files open at the same time. People have multiple tasks open though. Could you give an example of how people have multiple work files open?

When they open a task, they get the latest versioned work file open. When they want to open anything either Maya or Nuke, they navigate from the work file directory.