Minutes from 139th OpenVDB TSC meeting, July 12th, 2022, (EDT)

Attendees: *Ken* M., *Jeff* L., *Andre* P, *Nick* A., *Dan* B.,
*Rich* J.

Additional Attendees: JT Nelson (Blender), Peyton Murray,
Greg Hurst (United Therapeutics), Sebastian Gaida


Regrets:

Agenda:

1) Confirm quorum
2) Secretary
3) Forum
4) Siggraph
5) vdb_tool
6) NanoVDB
7) VDB File Format
8) Boost
9) VDB Clip and VDB SOP
10) Outstanding PRs
11) Next Meeting

--------------------

1) Confirm quorum

Quorum is present.

2) Secretary

Secretary is Dan Bailey.

3) Forum

Nothing to discuss.

4) Siggraph

Who is attending from TSC? Ken, Jeff, Dan, Rich. ASWF has scheduled an OpenVDB
session 1:50pm - 2:30pm on Tuesday 9th August as part of their Open Source
Days. Need a summary by 18th July to go into the Siggraph schedule, Ken to
organize. Greg may also be able to attend, would be good to talk about
Mathematica in this session. Rough plan is to talk about any new or noteworthy
features in VDB 9.x and what's planned for VDB 10.x.

5) vdb_tool

Ken has taken Nick's feedback on board and introduced a Python binding to the
vdb_tools based on using CPython as a draft. Was not too complicated, but
introduces an optional Python binding, so may still be worthwhile keeping the
existing solution as well. Also, lots of new docs and some additional examples
to help explain usage of the tool.

6) NanoVDB

Ken has been looking at adding a similar solution to PointIndexGrid where data
can be stored out-of-tree. It is lightweight and only requires a ValueMask
grid. Primary benefit is cases where user wants to store multiple channels per
voxel.

NeuralVDB likely to be presented at Siggraph as well, will still need TSC
approval before including in the project.

7) VDB File Format

Dan highlighted that embedding .vdb files in .bgeo.sc typically results in
smaller file sizes. This is primarily due to bgeo using a larger block size for
Blosc compression than VDB which is more efficient and VDB storing uncompressed
topology. VDB delayed-load cannot be used when embedded in bgeo files although
Blosc does allow seeking so technicially it should be possible to support.

Should re-consider what we can do about improving VDB file format, will need to
continue supporting old VDB file format, but is there an opportunity to
introduce a new one that is more efficient? One option might be to pull out the
IO from the Grid and Tree classes as a starting point.

8) Boost

Wish to revisit the work previously done to make Boost an optional dependency
(PR823 does not result in a change in Grid ABI). One major piece is being able
to disable delay-loading as this has a mandatory dependency on boost due to
using interprocess. Does not appear that C++17 will help here as
std::filesystem does not contain interprocess communication. Dan to resurrect
PR823 and bring it up-to-date.

9) VDB Clip and VDB SOP

Jeff to share the code behind the VDB SOP that relates to camera overscan. Plan
is still to include the VDB SOP in the repo.

10) Outstanding PRs

* PR1430 - Nick has made some significant refactoring to VolumeToMesh, though it
  does move some failures from run-time to compile-time. TSC agrees this is a
  good thing in general. Jeff points out that constexpr if can help alleviate
  fallout from this.

* PR1432 - Convex hull activation. Only hiccup is that it is H19.5 only due to
  the new Convex Hull API in HDK. In theory should be possible to turn this
  into a tool in the core library at a later date. Missing SOP on the PR which
  will need H19.5 conditional CMake logic.

* PR1426 - Draft PR from Nick for adjusting leaf value iterators to minimize
  performance cost due to the delay-load atomics. Still discussing the larger
  topic of what to do about delay-loading. General desire to be able to use a
  grid with this feature disabled. This PR may be a more practical solution.

11) Next Meeting

Next meeting is on July 19th, 2022. 1pm-2pm EDT (GMT-4).
