Developer Meeting Notes

Well hopefully that was a requisite for being hired? Idk but, starting a job being totally unprepared doesn’t sound cool, I mean professional

To be fair, Voidium is just making a wild guess that is not confirmed by the foundation. We won’t know one way or another until he is officially making patches.

Nah, nothing unprofessional about it. Reading code is as hard as writing it and going into a new codebase always takes time. If you expected every new hire to already know it, you’d be shooting yourself in the foot.

5 Likes

I don’t think he needs that much time as you think he will.
First, Brecht and Sergey had all opportunities to make logical and clear architecture (they even made technical presentation about it). Second, they also wrote code more or less from scratch - which means it is clear and well documented. Third, you can start working on Cycles without knowing vast majority of it’s code. For example if you given a task to implement caustics you already have multiple algorithms to choose from, and it is pretty isolated task so you can skip code about volumes, SSS, denoising etc.

I would say requisite for being hired is being good programmer and having experience in render engines. I mean, that’s how Brecht got scouted for Arnold right?
“Familiarize with the code you’re not guaranteed to be hired for” is free work, and that sound unprofessional.

8 Likes

Well. Kinda. You have to be familiar with the renderer as a whole so that you can pick an approach that won’t break or misbehave or perform badly when, say, caustics are being cast on volumes in a scene. But picking algorithms is Brecht’s job so the new guy doesn’t have to know everything right off the bat :slight_smile:

1 Like

I think that is just a complementary point of view.
When I got my first job I had to run and buy a Macromedia Director Manual to be able to accomplish the tasks requested.
Jobs don’t always rain on you because you’re so good. You might need to become good for one.
When I say professional I mean in this case to be good to start the actual work at day 1 you get paid (more or less)

There is an… internship? Traineeship? for that. Which should be paid. At least where I am from, it’s paid as long as you complete it. I understand your point of view. Let me say it like this: unpaid work is not as unprofessional for a person as much it is unprofessional for a company. And I believe Ton hold his company(-ies) to a high standart.
(You are free to reply and I will listen to what you have to say but I probably will not reply to keep things on topic)

1 Like

Every developer job comes with an “onboarding” period of time where the new hire has to familiarize themselves with the expected code standards, conventions, tools, build pipeline, etc. That’s all in addition to the code itself.

Expecting anyone to be able to come in on day 1 and start making really meaningful contributions, especially to something like Cycles, is unrealistic.

Unless the programmer they hired was already a contributor to Cycles or some other area of Blender and thus is familiar with these areas, I would expect it to take some weeks before we start to see anything.

The code is an organized body of assumptions and decisions about how things are done in Blender - there’s no way anyone could just know them coming in, regardless of how experienced they are as a programmer. That would be like hiring a professional writer to finish a novel and expecting them to just sit down and write, without ever having read what was already written, studied characterizations, story arcs already written or mid-writing, background notes, etc.

A person may be a genius programmer, but they have to read and study the code - follow it through execution to gain understanding and query more knowledgeable co-workers to find out why something is done/organized a certain way when it isn’t obvious just from study.

This period of familiarization is always paid and it’s not unprofessional to have to learn how things are done in an organization before you can do them - that’s normal!

12 Likes

lol, not everyone can afford that. With many small organizations in poor regions you have to start helping them make money immediately or they can’t afford to pay you. Think of it as you make money for yourself but you give your “employer” a cut because they let you use their computers and expensive software and comfy air-conditioning and already have clients lined up for you to do work for.

I don’t think I’ve ever worked for anyone who was paying themselves more than $100 more than they paid me.

1 Like

That’s true. But in those situations, you have very specific requirements, allowing you to hire people who can start to work immediately to make profits.
When it comes to programming positions where the goal is to integrate someone into a team to be able to implement state of the art algorithms into a complex system, that kind of approach usually doesn’t make sense.

1 Like

Welcome

  • William Leeson (leesonw) new senior Cycles developer hired by the Blender Institute (working remote).

Announcements

New Features and Changes

Video Sequence Editor

  • Performance improvements:
    • Improve crop transform performance (commit ) (Jeroen Bakker)
    • Avoid redrawing during playback when possible (commit ) (Jeroen Bakker)
    • Refactor image transform processing (commit ) (Jeroen Bakker)
    • Split sampling of image buffers for different types (commit) (Jeroen Bakker)
    • Use “parallel range” for image buffer scanline processor (commit ) (Jeroen Bakker)

Mesh Editing

  • Performance improvements:
    • Use multi-threading in various places:
      • Triangle extraction for single material meshes (commit ) (Jeroen Bakker)
      • Face tessellation (commit ) (Campbell Barton)
      • Extracting lines from meshes (commit ) (Germano Cavalcante)
    • Split thread-safe iteration into the private API (commit ) (Campbell Barton)
    • Simplify normal calculation, resolve partial update error (commit ) (Campbell Barton)
    • Use ‘BLI_task_parallel_range’ in Draw Cache (commit , commit) (Germano Cavalcante)
    • Remove unit-length edge-vector cache from normal calculation commit) (Campbell Barton)
    • Support face-normal calculation in normal & looptri functions commit) (Campbell Barton)
    • Improve Boolean performance on windows by using TBBMalloc for GMP (commit ) (Erik Abrahamsson)

Geometry Nodes

  • Add Convex Hull Node (commit ) (Henrik Dick)
  • Add Select by Material node (commit ) (Jacques Lucke)
  • Hide some socket labels (objects, collections, materials) (commit ) (Hans Goudey)
  • Add Texture and Material options to switch node (commit ) (Eitan)
  • Support curve data in more places (commit , commit ) (Hans Goudey)
  • Rename bounding box mesh output to “Bounding Box” (commit ) (Hans Goudey)
  • Performance improvements:
    • Enable multi-threading in evaluator again (commit ) (Jacques Lucke)
    • Nodes: cache socket identifier to index mapping (commit ) (Jacques Lucke)

User Interface

  • Graph Editor: Allow selection of FCurve & its keys (commit ) (Maxime Casas)
  • Render Window as Non-Child on Win32 platform (commit ) (Harley Acheson)
  • Make flash on mode transfer overlay an operator property (commit ) (Pablo Dobarro)
  • Add unit for time stored in seconds (commit ) (Sergey Sharybin)

Asset Browser

  • Add option to link assets on drag & drop (commit ) (Julian Eisel)

Grease Pencil

  • Performance improvement: Multi-thread line art object loading (commit ) (Yiming Wu)
  • Hide Brush panels for some tools (commit ) (Antonio Vazquez)

Sculpting

  • Performance improvement: Improve multires performance (commit ) (Joseph Eagar)

Python API

  • Use keyword only arguments (commit ) (Campbell Barton)

Weekly Reports

Summary
9 Likes

can’t get enough performance patches

3 Likes

Performaaaaance !!! they’re on fire !

1 Like

I’m getting crashes on both Linux and Windows crashes when editing a MB_Lab mesh and switching to wireframe. I haven’t dug further into what’s causing it, but it has the usual modifiers, shape keys, and vertex groups. Anyone else?

I have something weird on Windows, with the window system, the render view is always on top, so I can’t alt-tab for example, was the fix supposed to fix that or it was about something else ?

I think that was discussed here:

looks like that did get fixed in master?

Yes, the “Render” window is back to the old behavior of being top-level. So not on-top, not grouped quite the same on the taskbar, but you can now use Alt-Tab to quickly go back and forth to it.

1 Like

This is nice. Exited to see bigger changes to cycles… Performance is great too.

It seems like I still get the same issue :confused: I’ll investigate

That change of behavior of the Render window is only in master, so for version 3.0. Whether that change could happen in a later release of 2.93 is not for me to decide.

1 Like