Skip to content

End User How it works

mottosso edited this page Sep 12, 2014 · 23 revisions

Pyblish is a plug-in driven framework.

This means that everything it does is done by plug-ins and that the surrounding library simply finds and triggers them at the opportune time. Let's have a look at how it does this.

Process

Plug-ins are categorised by four distinct processes.

  1. Selection
  2. Validation
  3. Extraction
  4. Conform

Each process runs one after another, in this exact order.

Selection - The Magnet

Selection is the process of gathering information about the content you wish to publish. This information may be things such as the currently logged on user, the time of day and, perhaps most importantly, which part of a working file you are interested in sharing with others. You can think of it as a magnet.

Publishing is synonymous with Sharing

For example, if your working file contains a Cube, Sphere and Torus, you may wish to see the Sphere published.

Each publishable element within your scene is called an Instance. An instance is an instantiation of content. That is, once a file is loaded into a program, the file has become an instance.

In this case, our Cube, Sphere and Torus are all instances. These instances are then collected into a Context. The context is singular throughout the lifespan of a single publish and represents all knowledge Pyblish has about your workspace.

Validation - The Gatekeeper

Validation is the step perhaps most associated with publishing. These plug-ins look at the information collected from Selection and validates it. A validation may be something like "Make sure all names end with a three-letter extension". Validators are the gatekeepers of content.

Extraction - The Rock Carver

Once finished, the context will be passed on to Extraction. Extraction has one responsbility - get whatever has been collected during Selection and extract it from your application, typically onto disk. You can think of this as rock carving; persisting temporal data onto disk.

However, Extraction can only occur if validation was successful. This is one of the key tenets of publishing. We only want data extracted if it lives up to the criteria set forth by your organisation. Luckily for us, our Sphere was called "MySphere_GEO" and is therefore valid.

Once our Sphere resides on disk, it is time for the final step of publishing.

Conform - The Transporter

Conform is the process of integrating the extracted content into the rest of your pipeline. This includes placing the files where you typically store this kind of data, spheres in this case, and possibly register the event with a central database, such as an online task tracking solution. This step is synonymous to shipping or transportation.

Integrations

Now that we know a little bit about the process and how plug-ins work, let's talk about the integrations.

As content is generated by artists in a variety of software, it is imperative that Pyblish can be there to validate it. That is why only the most rudimentary of features ship with the base library of Pyblish, and more in-depth features come in any of its integrations.

For example, the Autodesk Maya integration comes with a few demo plug-ins to help users of Maya get started in writing their own plug-ins along with a method in which they can publish their content directly from within Maya.

Other integrations, such as Asana, are software-neutral and offer users the option of communicating their publishing efforts into a cloud-based task tracking solution.

Another software-neutral integration is one for Open Metadata, with which users are given the option to persist additional data to their publishes, such as who did what and when along arbitrary metadata useful in further automation of the output.

All of these integrations however operate under the same premise that all features are hosted within plug-ins and that you are free to either use, modify or extend them to fit your unique circumstances.

Conclusion

Pyblish is a plug-in driven framework. Here to provide you with benefits typically only available to large visual effects or game organisations, open source and free, built by artists, for artists.

Clone this wiki locally