PULLER(1)

πŸ“¦ version 1.11.0, in fedora 43, fedora 44

πŸ’… PULLER(1) β€” User Commands ✨

okay bestie, sit DOWN, because this is puller(1), the command-line interface to the β€œpull” library, and she is a lot in the best way. this is the manual page for the pull library's front door, and yes there are like seventy flags, and yes we're going to go through every single one of them, because that's what we do here. 🫢


🌸 NAME 🌸

puller β€” command-line interface to the β€œpull” library


✨ SYNOPSIS ✨

no cap, here's the whole invocation, every bracket exactly where it lives:

puller [@file ...]  [-int <int>] [-enr <spec>] [-ens <spec>] [-enw
<spec>] [-efs <bool>] [-nave <bool>] [-cbst <bool>] [-noadd] [-usa
<bool>] [-pcet <bool>] [-nobin] [-lti <bool>] [-por <bool>] [-npcwza
<bool>] [-ubfgl <bool>] [-ratb <bool>] [-svec <vec>] [-gssr <rad>] [-v
<verbosity>] -vol <vol0 vol1 ...> -info <info0 info1 ...> [-k00
<kern00>] [-k11 <kern11>] [-k22 <kern22>] [-sscp <path>] [-kssb
<kernel>] [-kssr <kernel>] [-nss <# scl smpls>] [-np <# points>]
[-halton] [-ppv <# pnts/vox>] [-ppvzr <z range>] [-jit <jitter>] [-pi
<npos>] [-step <step>] [-csm <step>] [-snap <# iters>] [-maxi <# iters>]
[-stim <# iters>] [-maxci <# iters>] [-irad <scale>] [-srad <scale>]
[-bws <bin width>] [-alpha <alpha>] [-beta <beta>] [-gamma <gamma>]
[-theta <theta>] [-wall <k>] [-eip <k>] [-ess <scl>] [-oss <scl>]
[-edmin <frac>] [-edpcmin <frac>] [-fnnm <frac>] [-pcp <period>] [-iad
<# iters>] [-icb <# iters>] [-ac3c <ac3c>] [-sit <sit>] [-rng <seed>]
[-pbm <mod>] [-eiphl <hl>] [-nt <# threads>] [-nprob <prob>] [-pprob
<prob>] [-addlog <fname>] [-o <nout>] [-eob <base>]
heads up, the required ones are -vol and -info (no brackets on those, they're mandatory, main character energy only) and literally everything else is optional. also peep that the scale-samples flag shows up as -nss in the synopsis and -nssr in the options list below β€” that's genuinely how the page reads, so keep both spellings in your head πŸ’€

πŸŽ€ OPTIONS πŸŽ€

  • @file ... β€” response file(s) containing command-line arguments
  • -int <int> β€” inter-particle energy type (interaction type); default: β€œjustr”
  • -enr <spec> β€” inter-particle energy, radial component (energy specification); default: β€œcotan”
  • -ens <spec> β€” inter-particle energy, scale component (energy specification); default: β€œzero”
  • -enw <spec> β€” windowing to create locality with additive scale-space interaction (β€œ-int add”) (energy specification); default: β€œbutter:16,0.8”
  • -efs <bool> β€” whether or not strength contributes to particle-image energy (bool); default: β€œfalse”
  • -nave <bool> β€” whether or not to nix points at edge of volume, where gage had to invent values for kernel support (bool); default: β€œfalse”
  • -cbst <bool> β€” during initialization, try constraint satisfaction before testing seedThresh (bool); default: β€œfalse”
  • -noadd β€” turn off adding during population control
  • -usa <bool> β€” allow volumes to have different shapes (false is safe as different volume sizes are often accidental) (bool); default: β€œfalse”
  • -pcet <bool> β€” use neighbor-counting β€œenough” heuristic to bail out of population control (bool); default: β€œfalse”
  • -nobin β€” turn off spatial binning (which prevents multi-threading from being useful), for debugging or speed-up measurement
  • -lti <bool> β€” impose liveThresh on initialization (bool); default: β€œtrue”
  • -por <bool> β€” permute points during rebinning (bool); default: β€œtrue”
  • -npcwza <bool> β€” no population control with zero alpha (bool); default: β€œfalse”
  • -ubfgl <bool> β€” use beta for gamma learning (bool); default: β€œfalse”
  • -ratb <bool> β€” be choosy when adding points to bins to avoid overlap (bool); default: β€œtrue”
  • -svec <vec> β€” if non-zero (length), vector to use for displaying scale in 3-space (3 doubles); default: β€œ0 0 0”
  • -gssr <rad> β€” if non-zero (length), scaling of scale to cylindrical tensors (double); default: β€œ0.0”
  • -v <verbosity> β€” verbosity level (int); default: β€œ1”
  • -vol <vol0 vol1 ...> β€” input volumes, in format <filename>:<kind>:<volname> (1 or more meetPullVols) β€” required, bestie, no skimping
  • -info <info0 info1 ...> β€” info definitions, in format <info>[-c]:<volname>:<item>[:<zero>:<scale>] (1 or more meetPullInfos) β€” also required, slay
  • -k00 <kern00> β€” kernel for gageKernel00 (kernel specification); default: β€œcubic:1,0”
  • -k11 <kern11> β€” kernel for gageKernel11 (kernel specification); default: β€œcubicd:1,0”
  • -k22 <kern22> β€” kernel for gageKernel22 (kernel specification); default: β€œcubicdd:1,0”
  • -sscp <path> β€” path (without trailing /) for where to read/write pre-blurred volumes for scale-space (string); default: β€œ./”
  • -kssb <kernel> β€” blurring kernel, to sample scale space (kernel specification); default: β€œds:1,5”
  • -kssr <kernel> β€” kernel for reconstructing from scale space samples (kernel specification); default: β€œhermite”
  • -nssr <# scl smpls> β€” if using β€œ-ppv”; number of samples along scale axis for each spatial position (unsigned int); default: β€œ1”
  • -np <# points> β€” number of points to start in system (unsigned int); default: β€œ1000”
  • -halton β€” use Halton sequence initialization instead of uniform random
  • -ppv <# p[nts/vox> β€” number of points per voxel to start in simulation (need to have a seed threshold volume, overrides β€œ-np”) (int); default: β€œ0”
  • -ppvzr <z range> β€” range of Z slices (1st num < 2nd num) to do ppv in, or, β€œ1 0”) for whole volume (2 unsigned ints); default: β€œ1 0”
  • -jit <jitter> β€” amount of jittering to do with ppv (double); default: β€œ0”
  • -pi <npos> β€” 4-by-N array of positions to start at (overrides β€œ-np” (nrrd); default: β€œβ€
  • -step <step> β€” initial step size for gradient descent (double); default: β€œ1”
  • -csm <step> β€” convergence criterion for constraint satisfaction (double); default: β€œ0.0001”
  • -snap <# iters> β€” if non-zero, # iters between saved snapshots (unsigned int); default: β€œ0”
  • -maxi <# iters> β€” if non-zero, max # iterations to run whole system (unsigned int); default: β€œ0”
  • -stim <# iters> β€” if non-zero, max # iterations to allow a particle to be stuck before nixing (unsigned int); default: β€œ5”
  • -maxci <# iters> β€” if non-zero, max # iterations for contraint enforcement (unsigned int); default: β€œ15”
  • -irad <scale> β€” particle radius in spatial domain (double); default: β€œ1”
  • -srad <scale> β€” particle radius in scale domain (double); default: β€œ1”
  • -bws <bin width> β€” spatial bin width as multiple of spatial radius (double); default: β€œ1.001”
  • -alpha <alpha> β€” blend between particle-image (alpha=0) and inter-particle (alpha=1) energies (double); default: β€œ0.5”
  • -beta <beta> β€” when using Phi2 energy, blend between pure space repulsion (beta=0) and scale attraction (beta=1) (double); default: β€œ1.0”
  • -gamma <gamma> β€” scaling factor on energy from strength (double); default: β€œ1.0”
  • -theta <theta> β€” slope of increasing livethresh with respect to scale (double); default: β€œ0.0”
  • -wall <k> β€” spring constant on walls (double); default: β€œ0.0”
  • -eip <k> β€” amount by which it’s okay for per-particle energy to increase during gradient descent process (double); default: β€œ0.0”
  • -ess <scl> β€” when energy goes up instead of down, scale step size by this (double); default: β€œ0.5”
  • -oss <scl> β€” opportunistic scaling (hopefully up, >1) of step size on every iteration (double); default: β€œ1.0”
  • -edmin <frac> β€” convergence threshold: stop when fractional improvement (decrease) in energy dips below this (double); default: β€œ0.0001”
  • -edpcmin <frac> β€” population control is triggered when energy improvement goes below this threshold (double); default: β€œ0.01”
  • -fnnm <frac> β€” don’t nix if this fraction (or more) of neighbors have been nixed (double); default: β€œ0.25”
  • -pcp <period> β€” # iters to wait between attempts at population control (unsigned int); default: β€œ20”
  • -iad <# iters> β€” # iters to run descent on tentative new points during PC (unsigned int); default: β€œ10”
  • -icb <# iters> β€” periodicity of calling rendering callback (unsigned int); default: β€œ1”
  • -ac3c <ac3c> β€” allow codimensions 3 constraints (bool); default: β€œfalse”
  • -sit <sit> β€” scale is tau (bool); default: β€œfalse”
  • -rng <seed> β€” base seed value for RNGs (unsigned int); default: β€œ42”
  • -pbm <mod> β€” progress bin mod (unsigned int); default: β€œ50”
  • -eiphl <hl> β€” half-life of energyIncreasePermute(β€œ-eip”) (unsigned int); default: β€œ0”
  • -nt <# threads> β€” number of threads hoover should use (int); default: β€œ1”
  • -nprob <prob> β€” do full neighbor discovery with this probability (double); default: β€œ1.0”
  • -pprob <prob> β€” probe local image values with this probability (double); default: β€œ1.0”
  • -addlog <fname> β€” name of file in which to log all particle additions (string); default: β€œβ€
  • -o <nout> β€” filename for saving computed positions (string); default: β€œ-”
  • -eob <base> β€” save extra info (besides position), and use this string as the base of the filenames. Not using this eans the extra info is not saved. (string); default: β€œβ€

πŸ‘‘ NOTES πŸ‘‘

if you publish research using this tool or the β€œpull” library, you GOTTA cite the paper, it's the rules, it's giving academic integrity:

Gordon L. Kindlmann, Ra{\'u}l San Jos{\'e} Est{\'e}par, Stephen M.
Smith, Carl-Fredrik Westin.  Sampling and Visualizing Creases with
Scale-Space Particles.  IEEE Trans. on Visualization and Computer
Graphics, 15(6):1415-1424 (2009).

πŸ¦‹ SEE ALSO πŸ¦‹

gprobe(1), ilk(1), mrender(1), miter(1), nrrdSanity(1), overrgb(1), tend(1), unu(1), vprobe(1)


and that's the whole page, bestie πŸ’– this was PULLER(1) from the User Commands section, dated April 2021, and you ATE. now go render some creases. periodt. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from