1 of 124

2 of 124

Opening Remarks

David Morin, Executive Director, The Academy Software Foundation

3 of 124

Keynote: The Future of Linux for Professional Artist Workstations

Nick Cannon, VFX Reference Platform

4 of 124

What We’ll Cover

  • Some history
  • The CentOS challenge
  • Why Linux?
  • VFX Linux Task Force
  • What distribution to use?
  • Longer-term opportunity
  • Next steps…

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

5 of 124

Goals

  • Build and sustain a healthy alternative to Windows and macOS, optimized for VFX artists in studio environments.
  • Increase ease of adoption of Linux by studios and software vendors.
  • Increase interoperability between Linux, Windows, and macOS.

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

6 of 124

Some (Recent) History

2022

2021

2020

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

7 of 124

Some (Recent) History

2022

2021

2020

Decision to pivot CentOS to CentOS Stream

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

8 of 124

Some (Recent) History

2022

2021

2020

Decision to pivot CentOS to CentOS Stream

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

9 of 124

Some (Recent) History

2022

2021

2020

Decision to pivot CentOS to CentOS Stream

Community recognizes need for coordination

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

10 of 124

Some (Recent) History

VES announces Studio Platform Survey

2022

2021

2020

Decision to pivot CentOS to CentOS Stream

Community recognizes need for coordination

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

11 of 124

Some (Recent) History

VES announces Studio Platform Survey

2022

2021

2020

Decision to pivot CentOS to CentOS Stream

Community recognizes need for coordination

https://bit.ly/VRP21Rep

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

12 of 124

Some (Recent) History

VES announces Studio Platform Survey

VFX Linux Task Force launched

2022

2021

2020

Decision to pivot CentOS to CentOS Stream

Community recognizes need for coordination

https://bit.ly/VRP21Rep

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

13 of 124

Some (Recent) History

VES announces Studio Platform Survey

VFX Linux Task Force launched

2022

2021

2020

Decision to pivot CentOS to CentOS Stream

Community recognizes need for coordination

VFX Linux Recommendation

https://bit.ly/VRP21Rep

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

14 of 124

Artist Workstation Operating Systems

Split of total artist workstations by primary operating system

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

15 of 124

Artist Workstation Operating Systems

Ratio of studios planning to change the proportion of operating systems installed on workstations in the next 2 to 3 years

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

16 of 124

Why Linux?

  • Flexibility
  • Vendor Independence
  • Performance
  • Supportability
  • Licensing
  • Talent

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

17 of 124

Studio Platform Survey

Proportion of studios deploying each Linux distro to workstations installed in 2021

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

18 of 124

Studio Platform Survey

Proportion of studios planning on deploying each Linux distribution to new workstations installed in 2022

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

19 of 124

Studio Platform Survey

When does each studio currently using CentOS Linux expect to decide what distribution to replace it with?

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

20 of 124

VFX Linux Task Force

  • Launched by the VES Technology Committee in March
  • Goal - By August, recommend which Linux distribution studios should align on.
  • 10 technology leaders or lead engineers from a mix of small, mid, and large VFX and animation studios.
  • Met with Linux distribution vendors, and major software vendors

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

21 of 124

Selecting Distributions

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

22 of 124

Selecting Distributions

  • Represented in the 2021 Studio Platform Survey Report, i.e. already proven in a studio

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

23 of 124

Selecting Distributions

  • Represented in the 2021 Studio Platform Survey Report, i.e. already proven in a studio
  • Ability to:
    • access support services
    • financially support open source work
    • influence roadmap to address industry-specific requirements
    • secure additional legal obligations and accountability.

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

24 of 124

Selecting Distributions

  • Represented in the 2021 Studio Platform Survey Report, i.e. already proven in a studio
  • Ability to:
    • access support services
    • financially support open source work
    • influence roadmap to address industry-specific requirements
    • secure additional legal obligations and accountability.

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

25 of 124

Red Hat Enterprise Linux Ecosystem

Fedora�Linux

Collection of the latest and best open source projects

Red Hat Enterprise Linux

Production quality, stable, supported operating system

Rebuild

Distributions

Freely available “bug-for-bug” compatible rebuilds of RHEL

CentOS

Stream

More stable collection building towards next minor release of RHEL

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

26 of 124

Red Hat Enterprise Linux Ecosystem

Open Source Community Projects

Individual projects, each working toward their own goals

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

27 of 124

Red Hat Enterprise Linux Ecosystem

Open Source Community Projects

Individual projects, each working toward their own goals

Fedora�Linux

Collection of the latest and best open source projects

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

28 of 124

Red Hat Enterprise Linux Ecosystem

Open Source Community Projects

Individual projects, each working toward their own goals

Fedora�Linux

Collection of the latest and best open source projects

CentOS

Stream

More stable collection building towards next minor release of RHEL

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

29 of 124

Red Hat Enterprise Linux Ecosystem

Open Source Community Projects

Individual projects, each working toward their own goals

Fedora�Linux

Collection of the latest and best open source projects

Red Hat Enterprise Linux

Production quality, stable, supported operating system

CentOS

Stream

More stable collection building towards next minor release of RHEL

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

30 of 124

Red Hat Enterprise Linux Ecosystem

Open Source Community Projects

Individual projects, each working toward their own goals

Fedora�Linux

Collection of the latest and best open source projects

Red Hat Enterprise Linux

Production quality, stable, supported operating system

Rebuild

Distributions

Freely available “bug-for-bug” compatible rebuilds of RHEL

CentOS

Stream

More stable collection building towards next minor release of RHEL

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

31 of 124

Linux distribution research and assessment…

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

32 of 124

The Recommendation

For artist workstations running Linux, it is strongly recommended that all VFX and Animation studios deploy Red Hat Enterprise Linux 9.x or one of its binary compatible rebuild distributions such as AlmaLinux 9.x or Rocky Linux 9.x in 2023, and no later than June 2024 for those still running CentOS Linux 7.

DCC software vendors are encouraged to build their products on at least RHEL 8.x (or downstream equivalent) and qualify all minor releases of RHEL 9 as being officially supported for their customers in 2023.

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

33 of 124

The Recommendation

For artist workstations running Linux, it is strongly recommended that all VFX and Animation studios deploy Red Hat Enterprise Linux 9.x or one of its binary compatible rebuild distributions such as AlmaLinux 9.x or Rocky Linux 9.x in 2023, and no later than June 2024 for those still running CentOS Linux 7.

DCC software vendors are encouraged to build their products on at least RHEL 8.x (or downstream equivalent) and qualify all minor releases of RHEL 9 as being officially supported for their customers in 2023.

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

34 of 124

The Recommendation

For artist workstations running Linux, it is strongly recommended that all VFX and Animation studios deploy Red Hat Enterprise Linux 9.x or one of its binary compatible rebuild distributions such as AlmaLinux 9.x or Rocky Linux 9.x in 2023, and no later than June 2024 for those still running CentOS Linux 7.

DCC software vendors are encouraged to build their products on at least RHEL 8.x (or downstream equivalent) and qualify all minor releases of RHEL 9 as being officially supported for their customers in 2023.

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

35 of 124

The Recommendation

For artist workstations running Linux, it is strongly recommended that all VFX and Animation studios deploy Red Hat Enterprise Linux 9.x or one of its binary compatible rebuild distributions such as AlmaLinux 9.x or Rocky Linux 9.x in 2023, and no later than June 2024 for those still running CentOS Linux 7.

DCC software vendors are encouraged to build their products on at least RHEL 8.x (or downstream equivalent) and qualify all minor releases of RHEL 9 as being officially supported for their customers in 2023.

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

36 of 124

The Recommendation

For artist workstations running Linux, it is strongly recommended that all VFX and Animation studios deploy Red Hat Enterprise Linux 9.x or one of its binary compatible rebuild distributions such as AlmaLinux 9.x or Rocky Linux 9.x in 2023, and no later than June 2024 for those still running CentOS Linux 7.

DCC software vendors are encouraged to build their products on at least RHEL 8.x (or downstream equivalent) and qualify all minor releases of RHEL 9 as being officially supported for their customers in 2023.

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

37 of 124

Longer Term Goals

  • Increasing support for Linux from more Digital Content Creation (DCC) tools
  • Increasing Linux adoption by studios that mostly use Windows or macOS
  • Increased platform innovation driven by cross-studio collaboration
  • Linux providing the best artist experience for professional graphics workstations
  • Securing the future of Linux as a sustainable, healthy platform for studio workstations

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

38 of 124

Next Steps…

  • Publish and socialize the report and its recommendations
  • All studios deploying Linux workstations to start planning the deployment of RHEL 9.x or one of its compatible downstream distributions
  • All DCC software vendors to plan to build their products on at least RHEL 8.x (or downstream equivalent) and qualify all minor releases of RHEL 9 as being officially supported

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

39 of 124

Next Steps…

  • ASWF and VES Technology Committee to collaborate on the creation of:
    • a “Workstation Experience Working Group” tasked with creating a layer of configuration and packages that enables a best-in-class artist experience on Linux workstations
    • a community forum and knowledge base to curate and share know-how for how to adopt and maintain Linux in a studio environment, and for how to port software to Linux

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

40 of 124

https://vfxplatform.com/linux

Discuss @ ASWF Slack:

#linux-workstations

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

41 of 124

Thank you!

AlmaLinux Foundation

Academy Software Foundation

Autodesk

Canonical

CloudLinux

CIQ

Epic Games

Foundry

Red Hat

Rocky Enterprise Software Foundation

SideFX

VES Tech Committee

VFX Linux Task Force

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

42 of 124

CI and Rust Working Groups Update

Jean-François Panisset

Scott Wilson, Scanline VFX

43 of 124

Rust Working Group

Scott Wilson, Workflow Engineer, Scanline VFX

44 of 124

What is Rust?

  • A programming language that aims to be safe, fast, and concurrent
  • A compiled, strongly-typed language
  • Has a rich and powerful type system
  • Has no runtime garbage collector
  • Compatible with C and Python

45 of 124

Why use Rust and not Python?

  • The type system allows building systems that are verified to be correct at compile time
  • Rust is faster than Python (generally the same speed as C++)
  • All of a project’s dependencies are compiled into the application or library by default

46 of 124

Why use Python and not Rust?

  • Rust is challenging for beginners to the language
  • Python is faster for prototyping than Rust
  • Python has a larger ecosystem than Rust

47 of 124

Why use Rust and not C++?

  • Rust makes it really hard to get undefined behaviour
  • Rust’s package manager makes setting up a project much easier than most C++ projects
  • Rust makes building concurrent systems much easier

48 of 124

Why use C++ and not Rust?

  • Entertainment industry’s core libraries are written in C++
  • Interoperability between C++ and Rust adds costs
  • There are more C++ developers than a Rust developers
  • It takes time to train developers to work effectively in Rust

49 of 124

Rust Working Group Mission

To create a foundation for C and Rust bindings for the C++ libraries used by the media and entertainment industry.

50 of 124

Rust Working Group Goals

  • Collaborate with the ASWF communities to create C and Rust bindings
  • Create tooling to help build bindings
  • Define a set of conventions and rules to make libraries consistent across projects
  • Have bindings easily accessible through Rust’s crates.io repository

51 of 124

Rust Working Group Non-Goals

  • Re-write libraries in Rust

52 of 124

Current Working Group Status

  • USD: In progress
  • Ptex: Making progress
  • OpenEXR: Refocusing efforts on finalizing the bindings
  • CPPMM: Working, but needs major clean up
  • Example Project: Needs to pass CI for CentOS 7, Windows, and Mac OS

53 of 124

Call to Action

  • Need individuals or companies to contribute to bindings that interest them
  • Need CI and build experience with Windows and MacOS

https://github.com/vfx-rs/organization

54 of 124

Q&A Time

55 of 124

CI Working Group

Jean-François Panisset, VES Technology Committee

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

56 of 124

Continuous Integration, a Working Group on...

  • "the practice of merging all developer's working copies to a shared mainline several times a day" [Booch 91]

  • Cloud Native Continuous Integration
    • Fully distributed
    • Fewest persistent resources
    • Automated
    • Efficient
    • Auditable
    • Secure
    • Cost effective / free

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

57 of 124

Continuous Integration++ Working Group

All aspects of the toolchains and processes:

  • Revision Control
  • CI build environments
  • Build toolchains
  • Testing
  • Packaging and distribution

�Identify "consensus" approaches, don't prescribe

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

58 of 124

Revision Control

  • Familiar tooling: Git + GitHub
  • AcademySoftwareFoundation GitHub org
  • Branching, PR, review policies per project...
  • ... but must be documented
  • Source files must have a SPDX header to indicate license:

  • EasyCLA infrastructure to manage Contributor License Agreements

/*

** SPDX-License-Identifier: BSD-3-Clause

** Copyright Contributors to the OpenEXR Project.

*/

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

59 of 124

CI Build Environments

  • Native to project: Travis, AppVeyor, CircleCI
  • Briefly Azure Pipelines...
  • ... but now GitHub Actions
    • GitHub hosted runners (free)
      • Multi-platform (Linux / Windows / macOS)
      • Up to date software stack
      • Limitations
    • YAML based configuration, create build matrix
    • Access to org-level secrets (SonarCloud, Docker Hub...)

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

60 of 124

Sample GitHub Actions build matrix for OpenEXR

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

61 of 124

Build Toolchains

  • CMake for C++ projects
    • De facto version from aswf-docker (3.22.0 for CY2022)
    • Lots of expertise and examples
  • Red Hat Developer Toolset
    • Building with newer compilers on older Linux distributions
  • C++ / Python versions specified by VFX Platform
    • Other languages as well (Java for OpenCue, Rust)
  • Build containers
    • aswf-docker project on Linux

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

62 of 124

Testing

  • CTest for C++ projects, pytest for Python (examples)
    • 80% code coverage requirement for CII Silver
  • Linting / Static Analysis
    • CII badge requirement
    • clang-tidy (OpenEXR, OSL)
    • pytest --pylint
    • SonarCloud (org-level secret)
  • Dynamic Analysis / Fuzzing
    • Google OSS-Fuzz for OpenEXR
    • Valgrind
  • Limitations of GitHub-hosted runners

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

63 of 124

Sample ASFW Projects on SonarCloud

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

64 of 124

Packaging and Distribution

  • Python and PyPI
    • OpenTimelineIO builds Python wheels as part of CI
    • Waiting for Organization level support from PyPI
  • Paid Docker Hub account for Docker containers
    • No throttling on downloads of aswf-docker containers
    • Available to all projects (GitHub org level secrets)
  • JFrog Artifactory
  • Looking at leveraging LF code signing infrastructure

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

65 of 124

Limitations of GitHub-hosted Runners

  • Minimal hardware (2 cores, 7 GB, 14GB disk)
  • x86 only, no ARM / M1 options
  • No GPU acceleration (OCIO test suite)
  • Projects need more CPU/memory (OpenVDB) and longer build times (clang, Qt full builds)
  • "Self" hosting is possible, but tricky to do reliably
    • Don't want expensive runaway cloud instance
    • Watch out for abuse ("expensive" build events)
  • AWS CodeBuild
    • On demand access to larger instances, Linux GPU
    • Per minute pricing
    • OCIO GPU test suite, soon OpenVDB

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

66 of 124

macOS runner on MacStadium

  • Dedicated x86 Mac Mini from MacStadium Open Source Program
  • Bare metal, macOS Monterey, 16GB, 4 core i3, 500GB
  • Working on a VM based solution for ASWF builds (you can't really containerize macOS)
  • Reach out if you have specific applications

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

67 of 124

The aswf-docker Project

https://github.com/AcademySoftwareFoundation/aswf-docker

  • Created by Aloys Baillet
  • Yearly implementation of the VFX Reference Platform
  • Hierarchy of layered containers:
    • aswf/ci-base has tools and most prerequisites
    • aswf/ci-openexr is used to build OpenEXR
    • aswf/ci-vfxall has everything pre-built
  • Used by most ASWF projects to build in a controlled environment with all required dependencies
  • Currently based on CentOS 7.9, leverages RedHat Developer Toolset for newer tools
  • Clang also included

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

68 of 124

The aswf-docker Project (cont.)

  • Includes CUDA, OpenGL
    • Can be used to run GPU accelerated test suites
    • Can be used to run entire applications
  • Can be used to build "difficult to build" open source projects on CentOS 7 by providing updated dependencies and tools
  • Pushed to paid for, unthrottled account:
    • https://hub.docker.com/u/aswf
    • but 4+ GB vfx-all container can still take a while to pull...
  • 600K pulls from Docker Hub across versions!

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

69 of 124

The aswf-docker project: future directions

  • Support for Conan package manager
    • Create Conan packages from build results
    • Push to JFrog Artifactory repository
    • More granularity for clients consuming packages
    • Better applicable to Windows and macOS
    • Well in progress, volunteers welcome!
    • aswf-docker/packages/conan/recipes/
  • Windows container support
    • Containers have limitations on Windows, but should be possible to build equivalent set of containers
  • VFX Platform 2023 support
    • New set of ASWF and non-ASWF components for CY2023
    • Move from CentOS 7.9 base to RHEL/Rocky/Alma 8.x/9.x
    • VFX Linux Task Force recommendations

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

70 of 124

Come Join Us!

  • Monthly meetings, 13:00-14:00 Pacific Time, next is Aug 17 (on ASWF calendar)
  • #wg-ci channel on ASWF Slack
  • https://github.com/AcademySoftwareFoundation/wg-ci
  • Lots of opportunities to contribute, and exchange with others interested in tooling

Q&A

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

71 of 124

OpenTimelineIO

Joshua Minor, Pixar

Nick Porcino, Pixar

Stephan Steinbach, Pixar

Eric Reinecke, Netflix

Nigel Hadley, Foundry

Rory McGregor, ftrack

Eric Desruisseaux, Autodesk

72 of 124

OpenFX: an Open Standard for Visual Effects Plugins�Pierre Jasmin, RE:Vision Effects�Gary Oberbrunner, Dark Star Systems

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

73 of 124

Agenda

  • Overview: what, why, who?
  • Technical overview, major API features
  • What’s next and how you can contribute

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

74 of 124

What Is OpenFX?

  • Open, extensible C API for VFX plug-ins
  • Defines an industry-wide common interface between image-based visual effects plug-ins and host applications
  • Reference standard for visual effects and video processing software creators
  • OFX has been around since 2004, used in features since 2005
  • We just joined the ASWF!

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

75 of 124

Why OpenFX?

  • Proprietary APIs are a pain for everyone
  • OpenFX: let’s standardize the plug-in interface and open-source it
  • Help applications support a variety of plug-ins
  • Help plug-in developers support many host applications
  • Save dev and support effort compared to proprietary APIs
  • Give artists throughout the industry access to a much wider set of tools

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

76 of 124

Who Uses OpenFX?

  • Hosts
    • Autodesk Flame
    • Foundry Nuke
    • Blackmagic DaVinci Resolve & Fusion
    • Magix Vegas
    • Filmworkz Nucoda
    • Sony Catalyst
    • FilmLight BaseLight
    • SGO Mistika
    • Assimilate Scratch
    • HS-Art Diamant & Dustbuster
    • FXHome HitFilm
    • ToonBoom Harmony
    • BorisFX Silhouette
    • Natron
    • TuttleOFX
  • Plug-ins
    • BorisFX Sapphire, Continuum, Mocha Pro
    • RE:Vision Effects
    • Neat Video
    • Red Giant Universe & Magic Bullet
    • Digital Anarchy
    • Frischluft
    • NewBlue TotalFX
    • Photron Primatte
    • FilmConvert
    • Ilumy Design
    • Aeriform MVRK
    • drastic technologies MediaReactor
    • timeinpixels
    • OpenColorIO
    • Openfx-arena, Tuttle + many more open-source

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

77 of 124

What is OpenFX technically?

  • OpenFX is a generic C-based plug-in architecture that can be used to define any kind of plug-in API (not just images: 3d, sound, CAD, workflows, games, or anything else)
  • The image-based API is built on top of that core
  • A plug-in is just a shared library (DLL, dylib, .so) with a small set of exported C-linkage functions
  • OpenFX primarily specifies:
      • suites of function pointers (C-based classes)
      • sets of properties (name-value dictionaries)
  • Header-only library; no need to link with anything

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

78 of 124

OpenFX Features

  • Define params, inputs, and outputs
    • Plug-in defines params, but host manages them, shows them as sliders in UI, stores values in project, interpolates, etc.
  • Negotiate features between host and plug-in
  • Create effect instances
  • Host tells plug-in to render (on CPU or GPU)
  • Suites: Interaction, memory, threading, progress reporting, messages, and more

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

79 of 124

Bootstrapping

  • Host loads DLL from a defined location on disk
  • Plug-in only requires two functions:

// how many plug-ins do we have in this binary?

int OfxGetNumberOfPlugins(void)

{

  return 1;

}

// return the OfxPlugin struct for the nth plug-in

OfxPlugin * OfxGetPlugin(int nth)

{

  if(nth == 0)

    return &effectPluginStruct; // contains metadata, SetHost, and “main” function for the host to call

  return 0;

}

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

80 of 124

Properties

  • Properties are name-value pairs, looked up by string name
  • Plug-ins and hosts can have properties, organized by suites
  • Properties are used to pass values between host and plug-in and negotiate features
  • Grouped into “property sets”
  • Example: setting a string property
    • This sets the visible name, or label, for a plug-in in the host’s menu

gPropertySuite->propSetString(effectPropSet, kOfxPropLabel, 0,

"OFX Basics Example");

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

81 of 124

Actions

  • Most of the action is in the Actions
  • Examples: �load, unload, describe, describeInContext, createInstance, isIdentity, render
  • Actions are just the host calling the plug-in’s “main” with an action name (string) and a set of argument properties
  • The render action is the raison d’etre for the whole API: the plug-in gets source images and param values, and renders the result image back to the host

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

82 of 124

Parameters

  • OpenFX has a rich set of params: floats (1-3d), integers, booleans, colors, strings, popups, pushbuttons, and more
  • Most can be animated, depending on host capabilities
    • The host defines the animation curve types and does interpolation; plug-ins just get values at times
  • Support for spatial coordinates that auto-scale as resolution changes
    • Also angles, times, and scales.

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

83 of 124

Image processing

  • Frame based (with alternate frame access)
  • Generators, effects, transitions, general (“contexts”)
  • GPU and/or CPU (multithreaded)
  • 8u/16u/16f/32f, RGB/RGBA/A (premult or non-premult)
  • Plug-ins can access all clip attributes (size, position, time, aspect ratio, bit depth, and more)
  • Full support for region of interest and region of definition
  • Color space is not explicitly defined (yet!)
    • Most assume 8 bits = rec709, and float = scene linear

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

84 of 124

Interaction

  • Screen interaction with mouse, keyboard, and overlays
    • User interaction can update param values
  • Custom param drawing
  • InstanceChanged callback

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

85 of 124

Extensibility and Compatibility

  • OpenFX is suite-based
    • Extensible and robust over time; preserves backward compatibility
  • Hosts and plug-ins can define their own private or public suites and properties – no limits!
    • Examples: Nuke 3D camera, Vegas stereoscopic
  • Suites are versioned, so a host or plug-in can query whether a given suite + version is supported
  • Example: the new DrawSuite allows plug-ins to draw overlays on the host’s viewer using a simple device-independent set of calls (since OpenGL doesn’t work everywhere anymore)

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

86 of 124

C++

  • There is a C++ wrapper around the API for plug-ins, available from github
  • It’s not required but can simplify getting a basic plug-in up and running
  • Header-only, cross-platform
  • The API is still C-based
  • No C++ layer for host apps (yet!)

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

87 of 124

What’s Next?

  • DrawSuite will be in next release
    • available now on main branch
  • In discussion:
    • Color space management
    • OpenCL/Vulkan/Metal
    • New timeline suite, maybe based on OpenTimelineIO
    • Improved handling of multi-resolution scenarios
      • Desired output size/spatial format
  • What would you like to see?

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

88 of 124

What We Need

  • Compliance testing for hosts and plug-ins
  • More examples showing different features
  • Documentation
  • Modernize C++ layer and add host C++ layer
  • Host & plugin feature support matrix (https://github.com/ofxa/host-info/wiki)
  • Community involvement!

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

89 of 124

How To Contribute

  • OpenFX is an open standard; anyone can contribute ideas through our github
  • Docs, examples, fixes, and the C++ layer follow standard open-source PR process
  • The standard itself (header files) is managed by the TSC
  • Standard changes follow a defined process:
    • Proposal – create a github issue, tagged with “Standard Change”
    • Discussion – takes place on github and at meetings
    • Implementation – one host and one plug-in implement & demo the new feature
    • Acceptance – approval by the TSC & inclusion in the standard

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

90 of 124

To Learn More

  • And finally: thanks to the other OpenFX Association directors: John-Paul Smith, Dennis Adams, Peter Huisma and Phil Barrett

Talk Title Here

Speaker Name, Job Title, Company

Talk Title Here

Speaker Name, Job Title, Company

91 of 124

OpenEXR

Cary Phillips, Industrial Light & Magic

Kimball Thurston, Weta Digital

Peter Hillman, WetaFX

Nick Porcino, Pixar Animation Studios

92 of 124

OpenEXR Project Update & Discussion

  • OpenEXR v3.2 Preview
  • OpenEXR v4.0 Discussion Topics

Agenda:

93 of 124

Reminder: OpenEXR Project Mission

The goal of the OpenEXR project is to keep the EXR format reliable and modern and to maintain its place as the preferred image format for entertainment content creation.

  • Robustness, reliability, security
  • Backwards compatibility, data longevity
  • Performance - read/write/compression/decompression time
  • Simplicity, ease of use, maintainability
  • Wide adoption, multi-platform support - Linux, Windows, macOS, and others

94 of 124

OpenEXR Project Update & Discussion

OpenEXR v3.2 - September 2022

  • VFX Reference Platform 2022
  • API Compatible switch to use C core library within C++

95 of 124

OpenEXR Project Update & Discussion

OpenEXR v4.0 Questions / Feedback

  1. Extend the format?
  2. Improve Integration
  3. ABI Compatibility Switch?

Discussion:

96 of 124

OpenEXR Project Update & Discussion

1. Pros/Cons of new compression formats?

  • zstd
  • zfp
  • bc6h
  • LERC

Discussion:

97 of 124

OpenEXR Project Update & Discussion

2. Unaffiliated, outdated OpenEXR distributions/bindings?

  • tinyexr
  • pyrex
  • pypi.org/projects/OpenEXR
  • MacPorts

Discussion:

98 of 124

OpenEXR Project Update & Discussion

3. Strategies for improving ABI backwards compatibility?

  1. Reconsider current version namespacing policy?
  2. Inline / header-only C++?
  3. Fixed, simple, C types in API?

Discussion:

99 of 124

OpenEXR Project Update & Discussion

A. Namespace Policy

  • OpenEXR stable
  • Loss of versioning?

Discussion:

100 of 124

OpenEXR Project Update & Discussion

B. Inline / header-only C++

  • Attributes are already
  • Bloat? But static libraries
  • Patches? C dynamic vs. C++ then “embedded”

Discussion:

101 of 124

OpenEXR Project Update & Discussion

C. Fixed, simple C types in API

  • Imath_3_1::Box<V2f> → imath_box2f_t
  • stable definitions, data only
  • C++ subclasses to add functionality
    • For generality, templated data storage but specialize to C type
    • API passes a reference to the C type - portability, but can trivially static cast to the C++ type internally to operate on the data

Discussion:

102 of 124

OpenCue Project Update

Diego Tavares, Sony Pictures Imageworks

Benjamin Dines, Sony Pictures Imageworks

Gregory Denton, Microsoft

103 of 124

Agenda:

  • Project Overview
  • Community growth
  • Improvements and New Development
  • Updates from Sony Pictures Imageworks
  • Q&A

104 of 124

What is OpenCue?

  • OpenCue is an open source render management system. You can use OpenCue in visual effects and animation production to break down complex jobs into individual tasks. You can submit jobs to a configurable dispatch queue that allocates the necessary computational resources.

  • Originally developed at Sony Pictures Imageworks and open sourced with help from Google in 2019. It was adopted as an incubation project by the ASWF later that year and graduated to an adopted project in 2021.

105 of 124

Community Growth

20% annual growth in contributors from 10+ organizations

Over 102 Pull Requests merged at a rate of 2 per week

27 unique users reporting Issues, with even more users commenting in issues.

106 of 124

Community Growth

Percentage of contributors outside “founding” contributors

0%

20%

30%

50%

2019

2020

2021

2022

107 of 124

Improvements & New Developments

  • Improved Windows support, include support for hybrid farms with multiple OSes
    • Multiple Log Roots
    • Path Conversion in CueGUI
  • Improved GPU support
    • GPU Support for Windows
    • GPU CueGUI fixes and improvements
  • Academy of Motion Pictures Arts and Sciences
    • Included in the SciTech awards investigations for 2022

108 of 124

Improvements & New Developments

  • New Scheduler Modes (#1103)
    • Configurable dispatcher logic that can benefit larger studios with multiple shows, big and small
    • Expanded scheduler logic from just “Balanced” to including “Priority Only”, and “FIFO” scheduling modes.
    • “Balanced” mode ensures smaller jobs don’t get starved by large jobs and balances the amount of time a job has been waiting in the queue.

109 of 124

Updates from �Sony Pictures Imageworks

110 of 124

Movies Delivered by�

Since Last Year�

111 of 124

Render Stats�(since last year)

Movies Wrapped

6

Total Unique Users

1,239

Total Jobs Completed

3,928,307

Total Frames Rendered

123,828,157

Total Core Hours Processed

200,695,070

112 of 124

Thank You!

Time for Q&A

www.opencue.io��https://github.com/AcademySoftwareFoundation/OpenCue

113 of 124

OpenVDB

Ken Museth, NVIDIA

Jeff Lait, SideFX

114 of 124

MoonRay

Andrew Pearce, DreamWorks Animation

Randy Packer, DreamWorks Animation

Mark Jackels, DreamWorks Animation

Dan McCann, DreamWorks Animation

Keith Jeffery, DreamWorks Animation

115 of 124

Open 3D Engine

Royal O'Brien, The Linux Foundation

116 of 124

Closing Remarks

John Mertic, The Linux Foundation

Emily Olin, The Linux Foundation

117 of 124

Our Projects

contributed by:

Sony Pictures Imageworks

contributed by:

Google Cloud and

Sony Pictures Imageworks

contributed by:

Lucasfilm

contributed by:

Lucasfilm

contributed by:

Sony Pictures Imageworks

contributed by:

Dreamworks Animation

contributed by:

Pixar Animation Studios

contributed by:

Academy Software Foundation

created by:

Academy Software Foundation

contributed by:

The Academy of Motion Picture Arts and Sciences

contributed by:

Foundry

Open

Review

Initiative

created by:

Academy Software Foundation

contributed by:

Open Effects Association

Academy Software Foundation Governing Board CONFIDENTIAL

118 of 124

The Real Question is Which Projects Matter?

Value of of Individual Project

Number of Open Source Projects

119 of 124

The Answer: Projects With Sustainable Ecosystems

Sustainable projects have a developer community whose technology is used in commercial solutions that profit businesses, who in turn participate and reinvest back into the project and hire developers to work in the community.

PROJECTS

PROFITS

PRODUCTS

PARTICIPATION

DEVELOPER

COMMUNITY

MARKETS

TECHNOLOGY

PRODUCTS

120 of 124

ASWF Landscape

https://l.aswf.io/

  • Public list of open source projects in the animation and VFX industry
  • Updates can be submitted via GitHub

  • Goal is to have all active, open source projects in animation and VFX industries represented.

121 of 124

How to contribute

Contribute to an existing project:

  • Submit a PR with a bugfix or new feature
  • Pick existing GitHub issue as a sample project
  • Integrate with a new app / contribute plugin
  • Help improve project documentation
  • Submit additional test cases
  • Join the TSC discussion: dev mailing list, conf calls

Get involved with the TAC or Working Group:

  • DevOps / CI expertise always useful
  • Interest / expertise in security especially welcome
  • Join the TAC discussions: mailing list, conf calls, working groups

More information at tac.aswf.io/engagement

122 of 124

ASWF Blog

Contribute a guest post or we can write it up:

  • Production examples
  • Interesting use cases
  • Technical how-tos
  • Project/product overviews
  • Behind the screens

Send your suggestions to Emily Olin at eolin@linuxfoundation.org.

Blog: aswf.io/blog

123 of 124

Join the Discussion

Mailing Lists for ASWF projects: lists.aswf.io

Join as a member: aswf.io/join

Slack: slack.aswf.io

Github: github.com/AcademySoftwareFoundation

Behind the Screens: bit.ly/BehindtheScreens

Twitter: @AcademySWF, #ASWF

YouTube: AcademySoftwareFoundation

124 of 124

Thank you!