Skip to content

Introduction

Info

This is an extensive presentation of Bip, its mechanism, logic and design philosophy. If you want a quick, concrete start guide, click here instead!

Quick start (8min ⏱)

What is Bip ?

logo

Bip (Blink Internal Pipeline) (1) is a collection of tools or applications for CG productions, as well as a production database. For advanced users such as technical directors and developers, it is also a framework allowing to enhance Bip with additional content and to create application that can be used across many DCC (creative programs).

  1. or Baguette Is Pain

Bip design specificity is that it is agnostic: it does not enforce any workflow or data model choices, it is left to the Technical Director in charge of its implementation to configure and tailor it, so it meets the needs and practices of a studio, a director and/or a project.

Abstract

By workflow, we mean the flow of data between departments, what is exported, what is imported, from where to where, and how. The workflow of a project is defined through a configuration file. See here for more information.

By data model we mean the naming convention, the folder structure, the project entities: items (for example "assets", "shots"), groups (for example "asset categories", "shot sequences") or documents (for example "scene", "renders", "movies"...). The data model, also called meta model internally, is defined through a configuration file. See here for more information

On the user side, Bip mostly consists of applications for artists and production. These tools can be standalone (started from the main launcher application), or they can be hosted in any supported software (such as Maya, After Effects, Nuke... See the complete list of available handlers).

Some hosted applications can also modify the behaviour of their host program (for example, override the Ctrl+s shortcuts in order to call Kouglof, the scene saving application).

Note

Ecosystem

Bip is indeed an empty framework for TD and developers, but it also provides a ready-to-use ecosystem built upon this framework.

It comes with a few default applications which covers the most common needs of an animation studio, while taking advantage of the agnostic features of Bip:

  • Hosted applications can be used seamlessly across different creative programs, they don't embed any code that is specific to the program, instead, they use Bip handlers as a universal intermediary layer to talk to the host creative software.
  • All the applications are unaware of the data model and workflow of the current project, and generate their UI dynamically.

Bip also allows to create handlers, and provides some default ones. Handlers are a unified interface with a product, such as a DCC, a production tracker or a job submitter. Thanks to handlers, applications don't have to know how to talk to the program they are interacting with, they just have to talk to the handler, which uses a common interface allowing blind re-usability. This how this "agnosticity" is concretely achieved.

Default applications

  • Brioche (core): Main entry point, launching creative programs, customizing them, setting the artist environment.
  • Bugne (core): Ecosystem automatic updater.
  • Clafoutis (core): Control center, administration, project and user management, settings...
  • Moka (circle): Scene manager, publish, build, export, import, check, fix a scene (working file).
  • Kouglof (circle): Scene browser, open, save a scene (working file) by following naming convention and folder structure rules automatically.

What in the world are those names?

What if Bip was not just an animation production framework? Why Bip could not be a bakery? And then why the Bip applications could not be (mostly french) pastries? WHY NOT? (Also, for technical reasons, it is a good practice for developers to give a non-functional name to their projects, in order to avoid blocking useful keywords. So launcher becomes, brioche, updater becomes bugne. Obviously.)

Info

There are three types of applications:

  • Core: The application is a vital element distributed by Blink.
  • Circle: The application is a default element distributed by Blink.
  • World: The application is providing studio-specific features, and is not necessarily agnostic, distributed by Blink or a third-party.

Available handlers

Aztec (host) for Maya. Consequence (host) for After Effects. Zen (host) for Harmony. Makeup (host) for Photoshop. Duedate (submitter) for Deadline. Shitgrid (tracker) for Shotgrid.

Brioche

This application is worth being introduced to here, for it is the backbone of Bip.

Brioche is the starting point for any user. Bip apps can be executed from here, but also batches or commands written by the technical directors or administrators.

  • Batches are used to start your favorite working program while following a pre-defined scenario, such as installing add-ons, tweaking configuration files...
  • Commands are a user-friendly yet powerful way to execute custom operations.

Production data

Bip is not only a bunch of applications and handlers, its framework provides a flexible API for registering and tracking production data.

  • Basics: Projects, items (e.g. assets, shots...), groups (_e.g. sequences, asset categories...), tasks, users...
  • Documents: Any type can be tracked (e.g. scenes, renders, textures, data...) by iteration (versioning system), with dynamic path management.
  • Relationships: It also silently keep records of dependencies (who created what from what, what item has been imported where and when...).
  • Custom attributes: It can track any type of custom data thanks to a highly customizable metadata system.

In order to fetch, sort, filter and deliver the data fast enough, the Bip server is using a graph database engine, Neo4j, meaning that data is stored as connected nodes, rather than rows in a table.

database_nodes

Info

Bip uses on a database server, Bop, which hosts and provides production data and secured authentication.

Features

General

  • Documented - Users, TD, administrators and developers can find a documentation at bip.blinkink.co.uk.
  • Agnostic - Bip does not enforce any hardcoded workflow, and is not tied to any specific program. It can be plugged to any creative application (as long as it has a Python API).

For artists

  • Open/Save scenes - Save and open working files from your favourite creative program without having to think about the path, the version, the validation or the permissions.
  • Auto-update - The pipeline tools are automatically updated.
  • Launch creative program - Start the CG applications with the right addons and settings and environment for the project.
  • Manage scenes - Export, import, publish, build, fix, check, update working files.

For production

  • Manage data entities - Create and manage projects, assets, shots, documents, edits...
  • Metamodels - The studio logic (naming conventions, workflow decisions, available apps...) is user-defined (usually by the TD), which allow to tweak Bip behaviour to meet the studio practices:
  • Data model - The entities, categories, groups, tasks and all the key concepts of the projects.
  • Flow model - The workflow rules.
  • File model - The file structure, directory and file names.
  • Data synchronization - If you prefer to use an external production tracker (Shotgrid, Ftrack, Kitsu...) as a primary tracker, Bip can be selectively synchronized to it.

For TD

  • Batches - Start and customize creative programs dynamically by writing batches. This is how to handle plugins, addons, settings and custom scripts deployment automatically over all the user machines.
  • Plugins - Register, enable and manage plugins (Bip GUI applications or handlers for hosts, job submitters or production tracker) per project.
  • Commands - Write powerful commands that can be executed from the Launcher.
  • Tasks - Easily write tasks for your creative applications. Bip provides a simple framework that allows to focus on the operations, while the data is provided and recorded automatically.
  • Recipes - Combine tasks into complex scenario for any step of the workflow: scene build, sanity check, render submission...
  • Tracking - Record basic production data, dependency relationships, custom attribute...
  • Versioning - Keep track of all the iterations of a document (files).
  • Path management - Automatically generate dynamic paths from a folder structure template.

For administrators/IT

  • Permissions - Every pipeline action is registered to an editable permission system.
  • Portable installer - Easy-to-deploy installer, manual or pre-configured, GUI or headless.
  • Offline - If your project has security requirements, Bip can work in an internal network.
  • Online - If your project has users spread over the world, Bip can work on different networks, with or without VPN.
  • Updates - Self-update system, with per-project version locks, as well as a rollback system.
  • Version/branch control - Bip allows the users to switch branches and versions of their current installation. Useful for deploying beta features without affecting the whole team for example, or lock separate versions of the pipeline between different projects.
  • Authentication - Secured login system for the users.
  • Logging: Complete logging and exception catching, optionally on a remote location for easier support.

For developers

  • API: Bip comes with an API that can be used from external scripts for retrieving Bip data, or create your whole client.
  • Toolkit: An SDK allows you to quickly create your own BipApp.
  • Authentication: Secured login system for the users.
  • Nodal database: Dependencies, versions and relationships are stored on Neo4j, and queried through dynamically generated requests.

Requirement

  • Windows 10
  • Git 2.x.x
  • Python 3.9.x

Installation

Danger

Bip is at an early development stage. It is made by and for Blink. Install and use Bip at your own risk. See the disclaimer section below for more information.

Development

Bip is crafted with ❤️ by Blink, a London based animation studio.

It is built in Python, the UI is made with Pyside, the data is managed with Neo4j and is tracked with Gitlab.

dev_logos_banner

Info

Friends

The batch launching API application, which is an essential component, massively relies on JeanPaulStart, developed with ❤️ by our friends from Cube.

Licence

Bip is an open source project, distributed under the MIT license.

licenses

Disclaimer

  • Bip is under active development, updates are very frequent.
  • We do not guarantee stability.
  • Retro-compatibility is not a priority yet.
  • It is developed by and for Blink, whose priorities define the Bip roadmap.
  • It is not ready for public use until v5.0.0.
  • Blink cannot provide support for this product.