CppCast - Visual Effects

Rob and Jason are joined by Josh Filstrup from Netflix. They first discuss an update to wxWidgets and a bug fix update in GCC. Then they talk to Josh about his background in Programming Languages and how he transitioned to work in the Visual Effects indus

  • Play Speed:
Content Keywords: standard
00:00:01
So 252 CBP Cass with guess Josh filstrup record, July 30th 2020.

00:00:07
Sponsor this episode of cppcast is the PBS Studio team the team promotes regular usage of static code analysis and the PBS Studio static analysis tool.

00:00:33
In this episode we discuss bug fixes in GCC.

00:00:38
ever talked to Josh Gilstrap from Netflix

00:00:43
Josh talks about his background and programming languages working in visual effects industry.

00:01:08
Welcomed episode 258. If you pee test the first podcast for sibo supposed to help his bicycle supposed to Albers ever host Rob Irving Joe Monaco host Jason Turner Jason. How you doing today? Hey Rob, how are you doing doing? Okay any news or anyting you have to share not particularly. I'm planning to do some more streaming on my YouTube channel today and tomorrow, but this one here until tomorrow and it's too late for people to tell anyhow, but you have to be subscribed to me on YouTube if you want to know about these last-minute stream, so I guess I can just make that as a plug hicast. What exactly are you doing on the stream today? I'm going to be recording some hacking on the game engine stuff that I started about seven months ago.

00:01:53
Any of the year cuz it hasn't been moving as quickly as I would like it to on the channel. So I just figured I'm just going to stream. I don't know like maybe 10 to 15 hours of stuff over the next couple of days while I just hacked on it and see if anyone cares. Okay. Well at the top episode of a treat a piece of feedback swings YouTube, we got this YouTube comment from an episode. We did several months ago. I was catching up on and I guess this is the Commodore 64 and tilts v a r episode of Jerry Ellsworth and Riley commented they should team up and make new baby. Commodore 64 is a new games for them, which I think is aimed at you Jason perhaps that's that mean that episode of so much fun and what he's referring to just in case I was going to remember is on air Jerry said that she had something like a hundred thousand eyes left from the color sitting in a closet.

00:02:53
Project the mammoth games Commodore 64 joystick that I still have sitting on my desk right now, which is the system-on-a-chip county 64 implementation would be awesome for those things to see the light of day. Yeah. Yeah. That's why have you been tracking the kickstarter as that certain shipping out yet the till 5 stuff. I remember a few months ago see notifications that I was starting to ship but I hadn't checked again after that since I wasn't one of the I didn't buy one. Now. I didn't either of those was a little expensive but I'm looking forward to seeing how well does. Yeah, I know several of our listeners did cuz we got a beats and stuff people talking about having NADA, right? Okay. Well, we love to hear your thoughts about the show. You can always reach out to us on Facebook Twitter or emails at feedback at cvs.com and originally was review on iTunes or subscribe on YouTube joining us. Today is Josh. Josh is a senior engineer working in the visual effects industry with a focus on building Creative Tech that scales currently

00:03:53
Works in the studio Engineering Group on Netflix. She has worked at Disney animation and Pixar is Computing interest are improving programming languages and high performance Computing and lately exploring the history and specification of old game console Hardware Josh. Welcome to the show. I feel like you put that last sentence in there just so I would ask you about it just as you were talking about, but I hadn't thought about it during the inside of a new hobbies.

00:04:29
One of them is exploring obscure Hardware. Okay, what's the most obscure Hardware that you've been researching? Probably far too much data devices. Apparently that instruction set the second to just expire this crazy crazy rabbit.

00:05:29
So much that was ahead of its time like one example is it had a Broadband adapter for years before the PlayStation 2 really did it and it just right before PlayStation 2 with 9 9 1999 in America a year before or so in Japan PlayStation 2 era awesome. So are you done now implementing emulators or did you buy an fpga kit so you can like to have for your you know, like what are you doing? I started with restoration and a really old couple of me.

00:06:29
In one of them have shipped. It was like learning about proper like plastic liner. How do sinkholes form at South Riding essential you end up other things that they are super conflict.

00:07:29
It was a lot of Hardware stuff like that. Just working on a Super 8 emulator.

00:07:48
Does the Dreamcast work yet is much more standard new parts develop new custom power supplies for them any leadership that replaced and even gone so far. It's an HDMI to the motherboard 1080p output original. The other one has all those things installed on my TV. Did you have to recap all of them pretty good on the hook up to the TV on planning?

00:08:48
I'm just thinking about your setup personally cuz I invest in a decent soldering iron not that long ago cuz a decent soldering iron is not that expensive but a decent desoldering gun with a vacuum pump in it. I just can't convince myself to spend a couple hundred dollars or whatever on one of those cuz I would only use it like twice. I know I wouldn't you know myself as I started getting into this cuz I have a temperature control myself.

00:09:26
It's like I don't understand how you can write something we never talked about on the show really have a hardware for a while. Okay on any of these and we'll start talking more about the work order Netflix. Okay. Alright. So this first one is an update to wxwidgets 3.1.4, which is first update in 9 months when we did have an absolute wxwidgets, but that was the episode where we had some pretty poor audio quality. So I feel like we should maybe do a follow up again with her and I'm talk someone from wxwidgets soon. Maybe still on my to-do list. Yeah. Yeah things in this one.

00:10:26
Great sand sea make build improvements else you wanted to call out here Jason. There's just one line item right here. Wxos export now supports the latest Mac OS 11 on arm Hardware as far as I know. No one has access to a Mac OS 11 on arm Hardware. So I'm really curious exactly how they tested on what that means. Those lightweight MacBooks like MacBook Air. That's not on Armor. No, that's not our job is like I think I can put in a deposit to all these things but

00:11:26
That's awesome. Somewhat, SoundHound somehow somewhere that got tested presumably, right? Okay. Next thing is GCC 10.2 release which is a bug fix release and they have a whole list of on bugzilla of all the different bugs that got fixed a little over 90 of them. Any interesting ones you saw on here Jason that you want to call out now that the Reddit discussion is hilarious at least the top rated comments are

00:11:58
They have a 9 stages of debugging your C. Plus plus code basically is my Reddit comments here though. I noticed would support in GCC. I mean, I remember hearing about this for a long time. Everyone.

00:12:58
That's the part. I noticed in my own flying around that she sees concept seems to be one tiny step ahead of claims Concepts right now. So it's really cool. Yeah, just see them all coming in in general. Which phrase is Carlos wonderful working for all this compilation. So they're probably also worth pointing out too since we're talking about see both of us 20 support. If you look at the compiler support for C plus plus 20 features gcc's ahead of everyone else right now incredible on both sides. It's always incredibly how fast to get stuff out. I remember when like

00:13:58
81 West

00:14:01
Now that's a funny one. Cuz I think's Klang implemented all of that stuff and then submitted the proposals to the standard for a lot of C plus plus 14 related thing. Is that supposed Plus on see the videos are already becoming available on YouTube on the strip with all of them prefer to have about 50 videos including 12 there lightning talks so much more. That's everything. I remember how many tracks They had but it's great to see them already available on YouTube for those that did not attend Iroquois watch content. Yeah, if you look at the list of videos that are online feel like I assuming Phil's doing a lot of this work, but I don't know the conference in to be posting about 4.

00:15:01
Day five a day depending on the day. So that should be should be done pretty quick. I would think I didn't start watching one of these videos. I need to finish it. But outside brand did one where they made a compiler for try not to curse on the show, but for which looks very first thing that was impressive to do that in any conference talk.

00:15:50
Yeah, it looks like a lot of fun and it's like a little bit of those are much more accessible now and at the same time, it's just a completely different experience, right? I definitely remember the last time I was at in person that was particularly like, okay. Well Josh, could we start off by you? Tell us a little about what exactly you do and Netflix and I know when your bio you say you worked on the CB engineering groups. That's the X

00:16:50
Call like production of some of Netflix original shows. I'm guessing you're not you know, the back end of Netflix hosting and streaming all the content or anything. Luckily. I am not I am not entrusted with such great responsibility. Never go down in Disney writing what I work on a stick Euler underlying libraries. Take care of her data pipeline transport, right? So what examples are S10 how many what are called or photoshop?

00:17:49
Shuffling the data from one place to another there's a lot of libraries in Ballston Sport and import utilities and then within the tools a lot of times there's interesting data transformation and there's typically underline underline libraries is typically so there's developers typically work in Python for kind of automating to her task for artists, but that python called in so they kind of the two core languages for animation python. I feel like if you don't mind when you take one step back maybe for our listeners who aren't familiar and forgive me if you did say this, but you're referring to the fact that Netflix is like

00:18:49
Netflix is a movie studio at this point right? There is a part of Netflix that produces original content. This isn't pipelines of processing compressed video or something. Like you out early for a car with a smaller operations one building and I'm sorry that you just said that Disney and Pixar smaller than Netflix when it comes to this kind of thing.

00:19:49
In the sense that they're all kind of places where all the shooting out. So what it what does anything mean anymore? I said something but I did not know that off before we take no stuff. Can you tell us some of the you know, original content projects that you've been involved with your I can't pay for Netflix. I can't talk about any of those Cars 3 Cars 3 awesome and people should watch Cars 3 on airplane, which I know is not the full movie watch.

00:20:49
Experience but it was still really good underrated Disney Animation Frozen 2 Wreck-It Ralph. So if I had watched the 10000 names at the end of the movie scrolling past yours was in there for them to on the credits as well. Like I was in the middle which is why it was like there was a real, I was excited Frozen to Rob just the ones I think my daughter is probably watched it two or three times though. I'm going to say some frozen ones in this house. Well,

00:21:49
Is like younger I'd like legit. All they wanted to do there is quite alright.

00:22:14
That's awesome. You mentioned this in your bio that you started with a programming language. Are you have programming language background? How did you make this move from programming language says into all this EFX stuff and it's not working. So I have been working at Spectrum Analysis company at the cell phone towers, like embedded devices. 5 at the time which was pretty cutting-edge to do something kind of a little more. I guess I could say just like

00:23:14
Obscured and exploration about like what I was excited about the time, so I started doing some graduate work in programming languages in high school and life. Hi Siri and kind of all the things I don't know if you've heard of automated software was really interested in how to use it today that I was I was pretty homesick and I was missing some of the Prophet job I got.

00:24:14
So that's that's all that really happened in the transition there. If I was home to again, I had a large background and working with C plus plus like that's kind of what my original like interest in program started. And so that was like that's how I car because obviously everything once I started working there. I just fell in love with the task has one of those really cool. But also you have a wonderful things are like really significant individual tax.

00:25:14
Has your programming language background been been useful and visual effects industry. I think it's like I know it's out there and sometimes I get frustrated some of that ruling I find lacking for ensuring copper correctness. I think it's really really heavy leaning on a great tool right like in incredible.

00:26:14
DUI then find yourself. When you do need to use Python like trying to use the like I gradually typed python or some of these other things to try to be another layer of correctness industry. You had somebody remind Carl Adler on right? We are just now moving on a Python 3 individual you mean away from the thing that was deprecated and ended of life like 10 years ago. You're just now getting rid of Burden by the devastation is almost all right.

00:27:14
Python but they're all like a 3.5 minimum. So but now you are moving into a world where you might be able to start using some of these things, right? So we've been able to kind of start in a in a better place with that stuff, right? But it's like I remember when I first got the pics are there was a map Library written by a program that have been there a long time and it was literally older than me.

00:28:01
And I was just like, okay.

00:28:08
What are some of the library's you spend the most time working on throughout your career and VFX start a USB Universal unfortunate acronym clashing but file format and underlying set of libraries important in Oregon City something out of you know.

00:29:08
Assets are going to be getting created from many many places and a lot of times we want to be able to brew and granular non-destructive for models geometry files coming out of sand. USB files go ahead and do a scene and then I want to translate that in different places so I can use these Notions of composition to say I want to pull in this model and then I want to apply a transformer blows those based on height of the grammar that is a fine for composition order a renderer or whatever kind of your final result is nothing. Like I know how to do all this fast composition logic and it allows you to have these very granular. This is my this is my step file. And what does the Naples?

00:30:09
Many artists who work on the same shot at the same time. And so it is really a table kind of parallelism across departments. Really really cool. This is a project you're continuing to work on you've worked on for a long time. Also, where can I learn about people for the show but it's surprising people who has been paid or professionally worked on open source projects throughout their career and I'm like really really grateful.

00:31:08
ASA really put a library out there in a way that works across all these platforms platform differentiation greatest more that can merge into the standard. It's it's really cool. There is this project also have to support that standard the film industry uses for the standard.

00:32:09
text and its people interact with a few things like food in openttd so it has pretty good compatibility of crossbows, but I know there has been interesting challenges with be just like the Boost version is new nothing our windows and things like that isn't that surprising whenever I've had a challenge but I will say I've been I've been doing a lot of my free time so much better than I used to be a while, but we have

00:33:09
Pretty recently though. That's right. I am working on recent tweet from said that it's now his full-time move. I will get more and more traction. We can all agree on a package manager and someone in myself and then that's you know, I'm glad though that we have at the very least a few options that seem to have a standard set of packages available. Right? Like we can pretty much assume boost and live format and whatever is going to be available in every direction and the things are definitely getting better.

00:34:12
Standard it is but specifically only the form so live format also has its own like print app and it's on Ajo stuff. So if you want to use live format with IO streams or whatever, then you would have to do like format and then pipe that insert that format in to see out to basically like so it kind of has this weird hodgepodge, but it's easy to write like a helper routines that make it look pretty

00:34:51
It is actually one correction on my day right now is actually technically C + + 11.

00:35:04
If it has for ten long time everywhere at work, like what we've been have forced into a few things you really care about. Yeah, I strongly feel like simos. What's 14 as a bug fix to see if I supposed to love them and you should just skip 11 if you can support especially pretty early on the stupid rednecks with the thing from

00:36:04
It got a lot better if food is kind of your performance Benchmark. Not a great place.

00:36:26
As long as you're still talking about USD and Anna and I get that you haven't worked on in the last year, but you did spend a lot of time on it. And you said it's this Universal the screen description. I just I just have this like mental image of like when I'm using open office and I say save this document is a word format. It's like oh this is going to work but you're going to be missing some features. Right? Like this always happens when we're transferring between file format and you're talking about how like all the different 3D software uses. This thing. Is that do you have the same thing happen? When you go to export from the Native format to this that it's like hold on. There's a few things that I can't do a really great question. So pretty specific kind of Park.

00:37:26
Medidata untyped dictionary to a file in the scene in a way that transport so that we need to add a new feature to USD vs. Jamming it into the escape. Hatch mobile level is very much like

00:38:26
Erin Hobbs death he's going to pick her forever and he's kind of like the lead one of the designers of UFC and he's just super thoughtful about the standard very thoughtful about the

00:38:50
three sponsors the PBS Studio team the company develops that PBS Studio static code analyzer designed to detect errors in the code of programs written in C C plus plus C sharp and Java recently. The team has released a new English version addition to working under Windows 2 C sharp part of the analyzer can also operate under Linux and Mac OS over Force equals plus programmers will be much more testing to find out that now you can experiment that analyzer in online mode on the godbolt. Org website. The project is called compiler Explorer and lets you easily try various compilers and code analyzers. This is an indispensable tool for studying the capabilities of compilers besides that it's change assistant when it comes to demonstration of code examples, you find all the links in description of this episode.

00:39:33
Well, if you haven't worked on Tuesday too much in the pasture Netflix. What have you been working on that? I've been working on in the same space communication modern modern Computing companies write your kind of work into the cloud is the challenge. I think that's at least think about how do you take this infrastructure and make it work out of this new environment that has like elastic?

00:40:33
I'm cycling is Building Services that are scalable but not the scalable with respect them in a really interesting count for me, So I saw this press release hear from Netflix Tech blog that they are working on a community visual-effects community with the net FX platform. But this this whole thing is it's it's very light on details not being someone in the industry. I'm just curious if this is something you're involved in with your special effects working at Flex or anything you can talk about

00:41:33
Text Jason where technology we're developing will be shared with customer the space and see what comes up over the next few months kind of thing. But there's one thing I thought was would possibly be interesting to delve into performance profile.

00:42:33
Performance performance targets and your performance it was it was always interesting. Like when I hop into the office to give you context of a work on a workstation that has about anywhere from 30 to 60 Coors, right and a Quadro graphics card.

00:43:33
Buy cheap used so I can't say much about those. How do you say properties on like a traditional render farm, right, which is why you need to have very much. I remember when I first found out about performance and kind of a star so I was given a task this one, especially you have all these kind of / frame geometry files coming out of this every second every like frame in the simulation is spitting out like a child.

00:44:33
Aggregates apology. This is so I was like, okay cool. I don't like my little patch. Of course. I was a waiter in horses. Like hay for 45 minutes. I don't look at it in for like 5 or 10 seconds.

00:45:33
Cost of doing this and quickly parallel programming skills because that's actually one of my favorite to Old Alpha Lambda. It does something and it just kind of work.

00:46:33
Call CSE. Let me know if I assume it's going to be replacing at least I just try to not you know, sound optimistic. I guess I should say Visual Studio has the board for it. GCC has support for it claim standard. Library still is not so it's one of these things that's been super lagging like after the compiler said that they all yeah, we have. But 17 support it just like a big ass truck that says, I mean if you don't look at the standard Library, so by the time that the the visual effects standardization tools that you guys use ketchup to see if you will have it 2021 or 17.

00:47:33
Will have it by then. So National Pike new Brown building 2011-2012 across the board, but it's just funny I think and now you're an industry-wide standard that you have to deal with.

00:48:33
A lot of it and it's like if there's any kind of like in all those Gardens building shows, right and a lot of times shows a lot of different versions of things and feel like you have like you may have a different version of different shows rebuild the world for that version. So I mean

00:49:33
The longest amount of time I've ever seen it like ours and this is all mine.

00:49:43
Yeah, you can get it can get pretty bad. But you know, what you going to do when you're locked into a bender you still have much say over that I got this question of informing and maybe I'm going out on the limb a little bit here, but you have your programming languages background and you've talked about how you want to rely on the tools make everything is like, you know, it's good as possible write the correct as possible and you talking about these like USD and what am I trying to say like a scene transformation pipeline time imagining? Okay, not a considerable portion of your work is like this has to be exact. This has to be perfect when we translate these scenes when we do geometry Transformations, whatever this is all perfect, but then it reaches a point right when it actually goes to be rendered and displayed by whoever that accuracy is not the important thing anymore. It needs to look good and it needs to render quickly.

00:50:43
And I'm just wondering like do you do you have to deal with like is that does that border actually exist? Am I just making it up? Do you have to deal with it and does it drive you crazy?

00:50:53
Yeah.

00:50:55
Definitely your initial question or are part of it. Like there's definitely this if you can think of it as a lossless transformation on most of the stuff I work on I mean like we were actually perceived to be the same.

00:51:55
Transformational improper is someone that I ran into the opening a jar has their own half floating points. There's some talk about standardizing coming out wrong with non-explicit.

00:52:44
But I didn't realize that was a bunch of getting a picture from It's Always Sunny where he looks like crazy. I was actually crazy. I should just like a jerk instructions explicit. Why do you hate me?

00:53:26
SL. Yeah, I open the XR will always hold a special place in my heart for that moment. And that's great too because I mean if it's a built-in conversion, you can at least ask the compiler to warn on it but since I was a user provided conversion, I can't think of any way that you could have even gotten a warning that you were doing. This. Don't remind me if you're listening to me. I want I want strong type. Yes, please. Look at what I want to do it. I need it.

00:54:06
Tijuana time I talk to someone about that. Was it on air? I don't remember now. They're their there have been a strong typed up proposals. I believe for as long as he bus passes going to answer but they always get abandoned because no one can agree on what exactly it would mean. That's that's my understanding is candy emulator pretty easily. I remember someone showed me this at like a single element in it treated as if you're just holding her and I think all you have to do is have like an explicit Constructor on it and you kind of get what you want.

00:55:06
Which operations do you have? Does it have and how do you enable or disable step directions to make which is that like a really hard problem and I think the pl Community doesn't give enough credit for what it does like right like I guess I can't break this code for the model system.

00:56:03
Is kind of incredible. I don't agree with everything that I sold to that point. You said your industry is just now moving to python3 and that's because python3 to python to was a break if C plus plus had a break forget it. How long would it take you to get to cross that break?

00:56:56
It's like working inside brake lights not like a legitimate off. My mind is mentioned in this is a long time ago. So I don't know how he feels about an hour plus mode some of the backwards compatibility out of there.

00:57:56
You probably need to get some modules before you can really have proper kind of trouble. I kind of personally feel like by the time you've enabled a considerable portion of the compilers warnings and run it through clang-tidy or something similar and are willing to actually listen to this morning. We've pretty much done that we've pretty much I mean we've effectively for to the language without breaking backward compatibility just only use these things that don't generate warnings. Now, I agree there's issues of spurious warnings making too much noise signor list turn off warnings that don't really matter.

00:58:56
Set up your infrastructure. It hasn't really been a problem for me and it's mostly caught issues that I was glad that it caught properly properly setting up a development environment where you can develop mistakes and then you can yell at me later when you today where can people find you online.

00:59:45
And I'm also super Hong Kong to get home. So my my website is just super Funk. Okay, please let us know if we're discussing the stuff you're interested in or if you have a suggestion for a topic love to hear about that to you can email all your thoughts to feedback at CPP cast.com would also appreciate if you can like see the cast on Facebook and follow sleepycast on Twitter. You can also call me a trial W Irving and Jayson at last to get some Twitter. We also like to thank all our patrons who helps for the show through patreon, you like sports impatient you can do so I patreon.com sleepycast and of course you can find all that info and the show notes in the podcast website cppcast. Com.

01:00:45
Play music for this episode is provided by podcast games.com.

00:00:01
Translate the current page