Skip to content

Pipeline Principles

Alexander Richter edited this page Dec 7, 2024 · 1 revision

docu

  • a pipeline is an agreement
  • helps to focus on your task
  • change and evolve
  • can´t replace communication
    (but minimize unnecessary ones)

SSTP

  • simple (code, user/script understanding)
  • smart (complex and flexible but easy to understand)
  • transparent (you understand how and why)
  • performance (fast and easy loading & execution - no one should wait)

DEVELOPMENT

  • PEP8

  • performance

    • optimized core scripts
    • git versioning
    • only two configuration layers (project & user)
    • multi OS but not parallel
  • reuse

    • libraries
    • parenting (lib, arUtil, software.py)
  • independent

    • project
    • relative paths
    • software (maya, nuke, houdini ...)
    • OS (windows, linux, mac)
  • scripts

    • data - project dependent
    • lib - independent scripts
    • img - independent script images
    • software - software dependent scripts and images
  • UI

    • Placement
      UI files are in the script sub folder (ui/script.ui)
    • Usability
      As much care as into the process should go into handling it.
    • Style
      Consistent through all scripts while static styles are defined inside the .ui file.
    • Parenting
      arUtil: One ui to rule them all which adds basic functions and styles.
    • simple & consistent
      Same looking and handling
    • keyboard driven
      RETURN: Accept | ESC: Close
    • important must be first selected
    • intuitive
    • less is more in terms of interaction
  • versioning

    • data - software version (Maya 2019, NukeX 12)
    • git - scripts, plugins (no path redirecting)
  • understandable

    • structure
    • readability before complexity
    • tooltips and help
    • default UI and library functions
  • closed modular

    • add | change | delete without breaking the whole pipeline
    • pipeline tool first independent second
  • specific before general

    • project data before pipeline
    • user data before project (over writable)
  • explicit over implicit

    • Tank().get_data() (instead local get_data())
    • from PySide import QtGui (instead from PySide import *)
  • extras

    • achievement
    • surprise (quotes)
    • hints (of how to use)
    • instant help

RIGHTS

Rights provide different ways to change settings in the pipeline.

  • admin (super): project independent admin.
    • king of the hill (all projects)
  • pipeline (admin): project dependent admin + development extras
    • change project, personal, pipeline settings
  • production (admin): project dependent admin
    • change project, personal settings
  • user: restricted access
    • change personal settings
Clone this wiki locally