That was it, thanks Paulo!
I have a related question, in case you know the answer --
Using Chunk.buildModel() works and in a few tests the meshes look as expected but it's missing some arguments that are represented in the UI, like setting the Quality and Depth Filtering.
I have seen what I think are those arguments in the Chunk.buildDepthMaps() method (downscale and filter_mode?) -- does that mean when a mesh is being built via the UI there is something else going on?
Reading the progress log the biggest difference I see is that the UI version seems like it is prepared to generate new depth maps but it doesn't actually do so when starting with laser scans. Is that correct?
The console echoes are also different, with more of the feedback I expect in the UI version:
From a python command:
BuildModel: source data = Depth maps, surface type = Arbitrary, face count = 60000000, volumetric masking = 0, OOC version, interpolation = Enabled, vertex colors = 0
From the UI:
BuildModel: quality = High, depth filtering = Moderate, PM version, source data = Depth maps, surface type = Arbitrary, face count = 60000000, volumetric masking = 0, OOC version, interpolation = Enabled, vertex colors = 0
Something I would love to see in future versions of Metashape is the option to echo UI commands as Python calls for debugging / learning.