Minutes from OpenVDB TSC meeting, September 29th, 2023

Attendees: *Ken* M., *Jeff* L., *Andre* P, *Dan* B.

Regrets:
Attendees: *Greg* H.,  *Rich* J. *Nick* A.

Additional Attendees: 
Karl Marrett

Agenda:

1) Confirm quorum
2) Secretary
3) Explicit Instantiation of the Tree
4) VTT Integration
5) Reproducible Workflows
6) Next meeting

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

1) Confirm quorum

Quorum is present.

2) Secretary

Secretary is Jeff Lait

3) Explicit Instantiation of the Tree

We are still implicitly instantiating the Tree.  But we hadn't got
that far in the explicit instantiation.  If Tree was instantiated, the
function templates inside get instantiated, and it becomes a big
rabbit hole to get it working.  Also the goal is to remove stuff from
the Tree class to make this faster.

Tools were the first layer to be done.

4) VTT Integration

Cookbook would suffice rather than actual code for establishing.  Do
we discuss what the definition of Tile is?  How do we make sure our
terminology is consistent?

What of naming?  VTT is confusing with VDB.  What about Multires or
Adaptive grid?  Vs Sparse grid?

Can we make Grid the new baseclass?  It has a Tree() that returns a
reference so is hard to nullify.  

But TreeBase could the right point to inject?

There is no activation in VTT.  But there is a box from the 2^32
range.  An ROI mask could be done with a VDB or a VTT with coarse
tiles.

What does it look like to convert between them?  Does VDB become the
finest resolution of the VTT?

By Friday we'll share the google doc.

VTT should be a first class citizen.

5) Reproducible Workflows

Karl Marrett presented a proposal to improve OpenVDBs
interoperatbility with package systems, nix in particular.

Add some files to root of repository to make it understandable by
package managers.

Compliment of openvdb is distribution of VDB.  So if we can
commoditize distribution, we'll improve things.  Package managers are
not commoditized, they are slow, specific, and often useless for
active developers.  

Git sort of transcends package managers, it has the idea of forking,
etc.  Nix Flake is a decentralized package manager.  

Takes in flake.lock - specifies specific revisions of different repos.
Can output to a docker-like file.

Semantic versioning is built-in as well.  So can auto-bump based on
latest versions.

New libraries would have to be added in if they were not already in
NIX.

NanoVDB is not currently supported.  MacOS is not supported as there
is a broken package somewhere.  

Can we get a CI job on it?

6) Next meeting

Next meeting is on September 26th, 2023. 2pm-3pm EDT.
