Minutes from 95th OpenVDB TSC meeting, June 15th, 2021, (EDT) Attendees: *Ken* M., *Jeff* L., *Dan* B., *Andre* P. Regrets: *Nick* A. Additional Attendees: JT Nelson (Blender), Richard Jones (DNeg), Johannes Meng (Intel), Sergio Rojas, Bruce Cherniak (Intel), Chris Flesher Regrets: None Agenda: 1) Confirm Quorum 2) Secretary 3) Forum 4) Open Source Day 5) 8.1.0 Release 6) NanoVDB 7) Multiple Tickets 8) TSC Membership 9) Python Binding 10) Fast Sweeping 11) Next meeting 1) Confirm Quorum Quorum is present. 2) Secretary Secretary is Andre Pradhana. 3) Forum Dan mentions that at a future meeting, we should discuss what we should do with the forum and the github discussion page. The latter is readily available in the OpenVDB Website github repository. There is a question about doing csgDifference where the second argument is an implicit function. Dan provides an answer to the question where he suggests to use tools::visitNodeDepthFirst() or to use the dynamic node manager. Dan also points out one example of an implicit function, which is an EnrightField, primarily used for debugging. This question is related to the support for implicit function, especially in the case of doing CSG-type operation with an implicit function. The challenge is how to introduce a scripting language that allows you to represent an analytic function/ closed form expression that can be combined with an explicit grid. Ken asks whether AX provides the proper solution for the purpose of for implicit function support in OpenVDB or if there is a light-weight solution that can be added to the core library. Jeff thinks that OpenVDB should stick with being an explicit grid library. Dan thinks that it can be valuable to have something that samples from a closed form expression. Jeff thinks that the proper way to address this is through an AX kernel. Ken argues that OpenVDB has support for meshes because you can generate an explicit SDF grid from that. Jeff says that AX is the ultimate generator for such things. Ken agrees that AX is probably the natural place to put this. He also mentions that Rhythm and Hues used to have a scripting language that supports this idea. Dan mentions that ILM has Zeno technology field that is also very useful. Ken thinks that if there is a light-weight way to add such thing to the core library, it will be very useful. Dan mentions that we cannot put a grid type in AX that is not listed in the core-library. In conclusion, we should table the discussion and revisit it at a later time. 4) Open Source Day Open Source day hosted by ASWF will take place between Wednesday, August 4th to Thursday, August 5th 2021. Ken confirmed that OpenVDB will participate. The program is 1 hour, including Q+A. But by June 23rd, Ken needs to submit a form outlining the intent/program and the speakers. OpenVDB presentation at SIGGRAPH will be available at the beginning of August or the end of July. The course video will only be available for SIGGRAPH attendees and OpenVDB has signed over the rights for it over to ACM SIGGRAPH, so we may not be able to put the video in the OpenVDB website. However, there is a chance that it will be available to be accessed through the ACM Digital Library. Ken thinks that we can discuss it next Tuesday. He proposes if we take the discussion on the email thread. We should talk about the things that is not included in the course, which may include the road map and also fo ask OpenVDB users/clients for what they would like to see from the project. We should also mention about our intent to accept contribution for OpenVDB Python binding that is based on PyBind11. See Python Binding (Section 9) discussion below. JT mentions that he finds that OpenVDB is very useful in his line of work and expresses intention to keep helping with video production related to OpenVDB. 5) 8.1.0 Release Ken says that he followed the guideline for releasing a new version of OpenVDB. However, he encounters a conflict during the release. We need to add a sentence on how to resolve conflicts if they arise during the release process. Dan says that the state of the release is good. We need announcement of the release. Merging the release branch into master is required to keep everything in-sync. 6) NanoVDB Ken says that there is a user who branches off an old version of NanoVDB. Ken will fix the issue and will merge in some new changes. Jeff says that it has been branched off an old version, so it hasn't been kept up-to-date with head Ken says that there is fixed-bit-rate compression and variable-bit-rate compression. He is able to make variable-bit-rate compression to be branchless to make it faster. 7) Multiple Tickets Rich asks for a way to keep track of tickets, ideas, and development process as Nick A. moves from DNEG. Rich and Nick will continue to work on OpenVDB AX and they would like to be able to have a process to collaborate. Ken mentions the need to triage the tickets/tasks/issues as they come in. Dan mentions that the OpenVDB JIRA will no longer be used. He proposes to use the Github Issue section. Currently, the Github Issue section includes discussion, questions, bug reports, etc. Dan thinks that we should switch on Github Discussion tab and Github Issue will contain tasks that we want to do. Dan thinks that the Forum should no longer be used and should be moved to Github Discussion. By triage, Ken means to properly tag them properly and to create corresponding Github issues for the ones we will work on. Ken asks Rich about the nature of the tickets that he wants to migrate over. Rich says they vary from old issues, simple API improvements, and bugs. Jeff thinks that Github Issue is the right place to put them. Ken asks if there is a way for us to tag a discussion with labels such as core, houdini, maya, AX, etc. Dan says it is doable. Dan also thinks that Github Issue is the right place to put them in. Dan will send an email summarizing what we talk about during the meeting to loop Nick. We will discuss this topic again the next time we meet. 8) TSC Membership Nick leaves DNEG on Tuesday. We should discuss Rich's promotion to be part of TSC. Jeff mentions that the TSC position goes with the person and not with the company. Ken says that there is an unwritten consensus that one company gets one vote. 9) Python Binding Somebody made a response to our discussion about Python binding for OpenVDB. Ken talked to Matthew Cong. Imath is the glue that binds everything together, so the Python binding for OpenVDB at ILM is relying heavily on IMath. IMath is currently the glue that keeps everything together, e.g. between UT_Vector and OpenVDB::math vector. Jeff mentions that if only C++ has a standard Vec3 class. Dan mentions that we made the decision that PyBind11 will be accepted to the library if somebody were to do the work. We should mention this on the Open Source day. 10) Fast Sweeping Andre has a PR-1106, which adds support for extending a field in one direction, i.e. when the corresponding SDF/Fog value is above or below a given iso-value, as well as dilation. Andre says that he will look at the FastSweeping unit test in debug mode that is currently running very slow. Andre will also add support for extending SDF into a mask if the mask grid does not have the same transform as the SDF grid. Ken thinks that doing trilinear interpolation inside the FastSweeping algorithm can slow down the code, so perhaps the right way to go about it is to re-sample the mask grid at the SOP level. Jeff thinks that there are cases, e.g. when we upres a really light-weight mask field against an SDF grid that is really dense. Andre will investigate this. 10) Baking Minor Version to The ABI Jeff brought up the fact that we bake the ABI minor version into the namespace. He asks if the minor version should be part of the namespace because the intent is that you should be able to mix-and-match anything that matches the major version. Patch number is not part of the namespace. Dan wonders if Peter Cucka has a reason for why he does it this way. We should think of repercussions of stripping it. 11) Next meeting Next meeting is June 22nd, 2021. 12pm-1pm EST (GMT-5).