ba.showSample3D opens an interactive VTK window that renders the
sample geometry: layers with optional rough interfaces, lattice and
disordered particle layouts, mesocrystals, and Mixture realizations.
The 3D viewer is optional and requires vtk (pip install vtk).
import bornagain as ba
from bornagain import nm
sample = ... # construct a ba.Sample
ba.showSample3D(
sample, # required argument
120*nm, # required argument
seed=0, # optional argument
)
A full call can name every argument:
ba.showSample3D(
sample=sample, # required argument
sample_size=120*nm, # required argument
seed=0, # optional argument
window_size=[1330, 1075], # optional argument
background="white", # optional argument
zoom=1.2, # optional argument
roughness=True, # optional argument
roughness_resolution=256, # optional argument
blocking=False, # optional argument; alias: block
)
sample_size is the side length, in nm, of the visible square patch.
Layout instances outside this patch are omitted, and particle geometry
crossing the boundary is clipped for display.
seed controls only the viewer-side realization of disordered layouts
(Dilute2D, Dense2D, paracrystals) and Mixture choices. It does not
affect scattering calculations. Fixing it gives a stable picture across
runs. For a fresh layout every call, draw a random 32-bit seed:
import random
ba.showSample3D(sample, sample_size=120*nm, seed=random.randrange(2**32))
window_size (list, default [1330, 1075]): render-window
[width, height] in pixels.background (str, default "white"): background color name.zoom (float, default 1.2): initial camera zoom; must be positive.roughness (bool, default True): render rough interfaces.roughness_resolution (int, default 256): points along each
roughness-map axis. 0 disables rough maps. Values above 2048 are
clamped with a warning.blocking (bool, default False; alias block): with the default,
start a separate viewer process and return its process handle. If true,
run the VTK event loop in the current process before returning.