BoneJ2 icon indicating copy to clipboard operation
BoneJ2 copied to clipboard

Improve ellipsoid surface sampling efficiency

Open mdoube opened this issue 4 years ago • 0 comments

Describe the bug Generating and checking ellipsoid surfaces seems to be the bottleneck for ellipsoid optimisation in Ellipsoid Factor.

Two strategies have been tried:

  • EF1 used a single set of random points on a unit sphere that were then increased in length as the ellipsoid dilated. This leads to bias on the poles and equator of ellipsoids, and also means that features have a high chance of being missed
  • EF2 uses a set of random points that are evenly spread over the ellipsoid surface, preventing some of the bias and sampling effects from EF1, but at a high cost, seemingly from the random number generator. Point generation can be reduced by regenerating only after a certain number of steps.

Proposed solutions Use regular sampling on the ellipsoid, if an efficient algorithm can be found, with a single random offset, or randomly varying (within limits) number of samples. This will make the sampling grid vibrate over the ellipsoid surface, and avoid nearly all of the calls to the random number generator.

mdoube avatar Mar 23 '20 03:03 mdoube