Reproducibility

Deterministic runs

Set seeds before importing/constructing components that sample randomness.

import os, random, numpy as np
os.environ["PYTHONHASHSEED"] = "0"
random.seed(42)
np.random.seed(42)

from purkinje_uv import FractalTreeParameters, Mesh, FractalTree

p = FractalTreeParameters()
# p.length, p.branch_angle, p.w, p.l_segment, p.N_it ...

mesh = Mesh.from_file("endocardium.vtu")
mesh.detect_boundary()
mesh.compute_uvscaling()

ft = FractalTree(mesh=mesh, params=p, mesh_uv=mesh)
ft.grow_tree()

Version pinning

  • Python and OS: record versions alongside runs.

  • Dependencies: pin versions via a lock or env export:

    python -m pip freeze > requirements-lock.txt
    
  • Config: save the full FractalTreeParameters object used for generation next to outputs.