Skip to main content

Maya plugin for Conductor Cloud Rendering Platform.

Project description

CoreWeave for Maya

Maya plugin node to manage submissions to Conductor's cloud service.

Architecture

cwSubmission node is the base class for a family of custom dependency nodes that store all the configuration and submission data for a job.

cwSmokeSubmission is a subclass of cwSubmission that makes a simple graph with a work node. It is used to test the submission process.

cwSimRenderSubmission is a subclass of cwSubmission that makes a graph... TBC.

The compute function of the node will be responsible for generating a valid graph of task dependencies. It will use the Storm DSL to achieve this.

UI

The UI is written with PyMEL. It provides a window that contains a menu bar and several tabs. It is a GUI that gives access to the settings stored on an underlying cwAssSubmission node.

The node being represented can change (or at least it will in a future version) via a menu within the UI itself.

The intention is that users never need to see the node in the attribiute editor. In this sense it is similar to defaultRenderGlobals, which you access through the RenderSettings window. This is a departure from ciomaya which implements the UI as a regular Maya AttributeEditorTemplate.

Ranks

When generating jobs that distribute animation tasks, there are distinct collections of tasks that only differ in their frame number. Other attributes are identical. For example, we have ass-export tasks, render tasks, and comp tasks. All ass-export tasks most likely use the same environment, software, and hardware. Ass-export tasks are executed before connected render tasks, and render tasks are executed before comp tasks. They are arranged in the visual graph in columns from left to right, representing the order of execution. We'll call these columns "ranks".

In order to configure a job, the plugin provides a UI with a tab for each rank, and finally one for the job configuration.

UI Screenshot

Common task attributes

Each task needs certain configurations in order to run. These common attributes are:

  • Software
  • Hardware
  • Environment
  • Commands

Tasks will most likely be dependent on file assets. For the most part, assets are scraped automatically, however the user also has the opportunity to specify assets that are missed by the scraping process.

The three panels below illustrate the configuration for the Export rank, the Render rank, and the Job.

Export

Render

Job

This is work in progress. Soon there will be tabs for comp, slack notification, and shot tracker as shown below.

Graph

Install

To install the latest version.

pip install --upgrade cwmaya --target=$HOME/CoreWeave/maya

Then setup the Maya module.

python ~/CoreWeave/maya/cwmaya/post_install.py

Usage

Open the Plugin Manager and load CoreWeave.py.

To set up a render, choose CoreWeave->Storm Window from the main Maya menu bar.

For detailed help, checkout the tutorial and reference documentation.

Contributing

See CONTRIBUTING

Changelog

Unreleased:

Version 0.0.1-beta.9

  • Reset dag node unique naming stack before each compute so that successive graphs start from 0
  • On Send-to-Composer, we now automatically open the desktop app if it is not already open.
  • Adds a presets section to the tools menu with load and save options.

Version 0.0.1-beta.8

  • Adds template for a test job to run several tasks one after the other, chained up.
  • Massive refactor of the template system in order to make it easier to add 3rd party templates.
  • The window now remembers the last loaded template
  • Refactored to minimize inheritance and adopt a more composition-based approach
  • Adds an oiption to save the spec to disk
  • Flattened all menu items so its easier to find items quickly.
  • Show json in vscode rather than in a window in Maya
  • Adds a Namefield for easy name editing
  • Adds an example project

Version 0.0.1-beta.7

  • Adds a mechanism to specify default template values
  • Adds a context manager to do stuff in the context of a saved scene
  • Adds a menu item to save the JSON payload to a file
  • Adds a context manager to send stuff to desktop app in the context of a healthy authenticated session

Version 0.0.1-beta.6

  • Adds a template for a SimRenderMovie graph
  • Removed the AssExportKick graph template for now.

Version 0.0.1-beta.4

  • Retrieves actual Core Data entities from Conductor

  • Reduces the amount of information broadcasted to Slack channels

  • Includes the versions of ciocore and storm DSL on PyPi

  • Resolves software and environment in the compute function

  • Refactors inheritance hierarchy as BaseTab to TaskTab to ConcreteTask implementations

  • Adds UI components for managing u=inst types and software/plugin relationships

  • Relaxes the dependencies on the 'requests' library

  • Adds an output path configuration option

  • Adds window to visualize submission results

  • Adds automatic hydration upon application start

  • Integrates a smoke test preset node into the workflow

  • Adds a user interface for managing extra assets

  • 0.0.1-beta.2

  • Initial import

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

cwmaya-0.0.1b9-py2.py3-none-any.whl (74.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file cwmaya-0.0.1b9-py2.py3-none-any.whl.

File metadata

  • Download URL: cwmaya-0.0.1b9-py2.py3-none-any.whl
  • Upload date:
  • Size: 74.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.19

File hashes

Hashes for cwmaya-0.0.1b9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4ed3ed3bcb469329c858892e7b26fa25919f5d1afb4f6556984f4951aa51af3a
MD5 d4e79fc5033a38cc6b839d87246c61aa
BLAKE2b-256 91c489180de6562e29528fa021159e9031223197b8725d07ce3d3bd64592ef3d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page