3. Harmonica
An end-to-end production-server for management of animation and
visual-effects projects, developed in-house at Snowball Studios Ltd.
It exposes an API for DCC applications to interact with it, for versioning
content, review-submissions, task-tracking, etc.
It is hosted by multiple server-processes for multiple protocols.
There is a python-based client, that uses ZeroRPC, for DCC-apps that
support Python, and a WAMP client for DCC apps that support .Net
HTTP, XMLRPC and JSONRPC clients can be used as well.
WAMP is always used for Pub/Sub communications for synchronization.
4. Item Tree
Clients
<client>
.
.
< current > Projects
<project>
.
.
< current > Sub-Projects
<sub-project>
.
< current > Assets / Shots
<asset/shot>
.
< current >
<each-item>
Stages
<stage>
.
< current >
Files
<file>
< current >
Types Pool
Stages Pool
Statuses Pool Users Pool
<user>
.
< current >
User-Token
authentication
Remote
Connection
5.
6.
7. Pipeline Toolbox
A tool for navigating to assets/shots, content-versioning and task-
reporting - interfacing with Harmonica via XMLRPC.
Originally named 'PipelineToolBox', it started as a C++ Qt-based plugin,
for both Maya and Mudbox. Most of the code was shared between the
2 plugins (i.e: data-models, business-logic, networking, etc.), with a
common-interface that each plugin implements (i.e: Maya/Mudbox) for
specific DCC-app functionalities (i.e: scene-files read/write, exporting
viewport-previews, etc.).
Each plugin also has wrapper-code that bundles it all as a plugin for a
specific DCC-app.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19. Melodica
The code of the Pipeline-ToolBox was later ported to PyQt, for use in
Maya, Fusion and 3dsMax. The UI was also completely re-designed,
and the tool was re-named to 'Melodica'.
As before, most of the code is shared, with a common-interface for
DCC-app operations, and wrapper-code for embedding the tool in each
DCC-app's UI.
Also, the UI is styled using 'QSS' (a CSS-format for styling Qt dialogs).
As with the code, there is a main css-file for common definitions, and a
small css for each target-DCC-app, to style it to mimic native UI look.
20.
21.
22.
23.
24.
25.
26.
27. Sequence Shooter
A python tool for Maya, that uses PyMEL and Maya's native camera-
sequencer mechanism. It helps layout-artists navigate around shots in a
large sequence scene.
It can import time-codes that are exported from Premier-Pro. It allows
for quickly jumping-around to individual shots (reset the work-area
timeline to mach a shot).
It can activat/deactivate a head-up-display in the Maya viewport,
showing relevant shot information. It can export playblasts (viewport-
previews) with/without a HUD (heads-up display).
The UI is procedurally generated
28.
29.
30.
31.
32.
33.
34. Code Samples
By : Arnon Marcus
il.linkedin.com/in/arnonmarcus
a.m.marcus@gmail.com