@yantor3d@mograph.social
@yantor3d@mograph.social avatar

yantor3d

@yantor3d@mograph.social

Allegedly Chaotic Neutral

Senior VFX Pipeline TD at Laika

#Python #maya #VFX #OpenUSD #rigging #techArt #ebikes #woodworking

Delete your Script Editor tabs

Opinions are my own.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

yantor3d, to random
@yantor3d@mograph.social avatar

Reverse Hunger games.

Every year, we reap 10 of the 100 wealthiest people to fight to the death. The odds of being chosen are proportional to their net wealth; they can surrender wealth to lower their odds.

The chosen have one week to prepare. If you can afford a giant killer robot, now's the time.

The losers' fortunes are donated to the poorest countries. The winner gets launched into space. If they did very well, they're inside the rocket instead of strapped to it.

yantor3d,
@yantor3d@mograph.social avatar

"Why not just have the rich pay taxes?"
"This is more fun."

yantor3d, to python
@yantor3d@mograph.social avatar

A dutiful dev writes a test for both sides of the if/else for 100% coverage.

A lazy dev re-writes the if/else as a ternary operator for 100% coverage.

yantor3d, to python
@yantor3d@mograph.social avatar

If you break the pipeline and nobody notices, does it still count?

Asking for a friend.

yantor3d, to python
@yantor3d@mograph.social avatar

Currently having an argument in an MR about a function because the code in it is, quote, "not complicated or reused."

yantor3d, to python
@yantor3d@mograph.social avatar

I have lost count of how many times I have had this exchange with one of my junior devs.

Them: "Can I do (thing)."
Me: "Try it and see what happens."

flipsideza, to animation
@flipsideza@fosstodon.org avatar

Maybe with Shotgun becoming Flow, they will finally give it a UI facelift.

Ha, who am I kidding!

#autodesk #animation #shotgun

yantor3d,
@yantor3d@mograph.social avatar

@flipsideza "We changed the logo."

yantor3d, to python
@yantor3d@mograph.social avatar

An interesting skill I'm having to develop as a senior with multiple juniors to wrangle is how to lead a horse to water.

In other words, teaching the juniors how to debug their code so they can do it on their own and don't come running to me with every error.

Lesson one: Reading the stack trace..

yantor3d, to random
@yantor3d@mograph.social avatar

What part of your pipeline has the longest backstory to explain why it is the way it is?

For us, it's the "shop" field in the asset management schema. Why it's not "department" is another, albeit shorter, lore dump.

yantor3d, to random
@yantor3d@mograph.social avatar

Several weeks ago the pipeline supe made the declaration that all changes no matter how small must go through a Merge Request and be reviewed.

I immediately piled up a backlog of over a dozen MRs that took nearly two weeks to clear, and days before anyone looked at them.

He said that we'd have a department meeting to discuss review protocols. It hasn't happened yet.

Fortunately I can still edit the approval requirements on my MRs to make it optional.

yantor3d, to random
@yantor3d@mograph.social avatar

@b0rk most of the time I need to use an algorithm like you'd learn getting a CS degree, it's for Advent of Code, and most of the time it's Dijkstra's algorithm.

The one time I used an algorithm on the job was writing a custom Maya plugin splineIK node for rigging characters. I used the binary search to precisely place the end point of each bone with a sample segment of the curve.

It is not fun "writing" a binary search in a node based, visual programming language.

yantor3d, to python
@yantor3d@mograph.social avatar

One of the biggest points of disagreement I have with my supe about is accessing environment variables like the current project. He is adamant that it always has to be passed in, I made it optional and let it fall back to the environment. He has yet to explain it in a way that makes is case (or at all).

yantor3d,
@yantor3d@mograph.social avatar

@meejah Oh, at least a wrapper so we're not repeating a key everywhere - like

from package import Env
Env.project

But still, it's a lot of duplication...

yantor3d,
@yantor3d@mograph.social avatar

@meejah Counterpoint - this global is probably a singleton, so you can mock it once in the test config. Or mock the underlying environment variables once. If a specific test needs to do something different, it can mock the mock.

yantor3d,
@yantor3d@mograph.social avatar

@meejah That is an ambitious goal, if you have control over your dependencies. But in a VFX pipeline, especially one dragging along 15 years of legacy code, you work with what you have.

yantor3d,
@yantor3d@mograph.social avatar

@meejah Don't tell that to my boss... he has a package of Maya actions that he insists on writing unit tests for. So instead of using our Maya test runner to run the tests in Maya, he mocks everything the maya Python package. Which I feel only tests how good you are at mocking...

yantor3d, to random
@yantor3d@mograph.social avatar

The fragmented nature of the Fediverse is hilarious because sometimes you'll see the most unhinged, insane shit posted freely and other times you'll see utterly ordinary posts tag like cw: cheese.

yantor3d, to random
@yantor3d@mograph.social avatar

We're slowly moving to a more prescribed pipeline, where the artists do not need to know where files are on disk, only how to find them in the asset management system. Where the artists don't need to know what packages they need to select to do their work, just what app.

We'll get there... eventually.

And then it will all change when the next supe is hired. 🙃

yantor3d,
@yantor3d@mograph.social avatar

@flipsideza We had the opposite problem - there's low turnover among the core staff; some of the leads have been here for over a decade, so there's a lot of inertia behind "this is how we've always done it" as we try to make the transition to a modern pipeline.

yantor3d,
@yantor3d@mograph.social avatar

@flipsideza I take it your studio is not big on documentation... can't lose institutional knowledge if it's written down... in theory, anyway.

yantor3d,
@yantor3d@mograph.social avatar

@flipsideza I completely understand. In a similar vein, my supe gives me grief for not having unit tests for Maya facing code - I prefer integration tests that run in Maya standalone to mocking all of Maya cmds.

And yet, another TD has zero tests for all of his code...

yantor3d,
@yantor3d@mograph.social avatar

@flipsideza It's actually faster to have tests than to not have them.

Consider the time it takes to manually test your code, especially if you don't have a package unloader function and have to manually reload modules, or worse, restart Maya between code changes.

It's orders of magnitude faster to have an automated test suite. Ths time it takes to write the tests is less than the time it takes to manually test code.

Too, testable code is often better written and easier to maintain.

yantor3d,
@yantor3d@mograph.social avatar

@flipsideza just as an example, a few years ago I wrote maya_fn as a toy project; an API of the most common things you do in Maya as simple functions rather than the flag/argument style of maya.cmds

It would take so much time to test this by hand. But the test suite runs in seconds, and covers positive and negative use cases.

https://github.com/yantor3d/maya_fn

yantor3d,
@yantor3d@mograph.social avatar

@flipsideza The inertia of not having tests is probably the biggest obstacle to overcome. But once you set up your runners, you can start by requiring all new code have tests, and slowly extend coverage to old code...

...and then learn just how much your old code has embedded dependencies. On environment variables, on file naming conventions, on the database... pyfakefs and mock will he your friends.

yantor3d,
@yantor3d@mograph.social avatar

@flipsideza a final thought; we have dozens of publish actions that artists use to commit work to the asset management system, and import actions for all of their outputs.

It would take all day to manually test them all.

With automated test suites, it takes less than a minute.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • kavyap
  • thenastyranch
  • mdbf
  • DreamBathrooms
  • InstantRegret
  • magazineikmin
  • Youngstown
  • GTA5RPClips
  • slotface
  • modclub
  • everett
  • Durango
  • rosin
  • cisconetworking
  • tacticalgear
  • khanakhh
  • vwfavf
  • ngwrru68w68
  • Leos
  • normalnudes
  • ethstaker
  • tester
  • cubers
  • osvaldo12
  • anitta
  • provamag3
  • JUstTest
  • All magazines