render op• Data kinds: voxel → rgb
• Call: import fullseye as fs; fs.ledger.vol_render_transfer(vol, color=None, yaw: 'float' = 35.0, pitch: 'float' = 25.0, size: 'int' = 256, alpha_gain: 'float' = 1.0, static_alpha: 'float' = 0.0, background=(0.04, 0.04, 0.06), frame: 'bool' = True, depth_samples: 'int | None' = None, static_color=None) -> 'np.ndarray' (to call the implementation directly, import videocube; videocube.vol_render_transfer(vol, color=None, yaw: 'float' = 35.0, pitch: 'float' = 25.0, size: 'int' = 256, alpha_gain: 'float' = 1.0, static_alpha: 'float' = 0.0, background=(0.04, 0.04, 0.06), frame: 'bool' = True, depth_samples: 'int | None' = None, static_color=None) -> 'np.ndarray'; from the registry, opsvideocube.get("vol_render_transfer"))
Renders the cube from an arbitrary viewpoint by front-to-back α compositing (size, size, 3) float [0, 1] (rgb).
vol (T, H, W) is opacity [0, 1] (video_spacetime_cube(mode="motion")). The colour is, if color is passed, grey from its values (same shape, normalised to [0, 1]); if it is a (T, H, W, 3) RGB cube ([0, 1]), that colour; if nothing is passed, the colour of time (blue = start → red = end). Passing static_color (grey of the same shape) sets the brightness of the static background to it (2026-09-21, so that live4d's trajectory rendering can draw "trajectories in the colour of time, background in the grey of the first frame" in 1 compositing pass). Colouring the trajectories by time makes "which way it moved" readable in 1 image. With static_alpha > 0 the static background (brightness of color, grey if absent) is overlaid faintly -- the value is the total opacity when passing through the length of the cube's longest side (0.15 means 15 % when looking through the full longest side, fainter along shorter sides), independent of the number of samples (Summagator's "static content"). Orthographic projection; along the line of sight depth_samples points (default = the cube's largest side) are sampled with trilinear interpolation, and C = Σ α_i c_i Π_{j<i}(1 − α_j). frame=True draws the 12 edges of the cube faintly (an orientation cue).
yaw is rotation in the plane of the time axis and the x axis (0 = viewing the time axis as depth = the orientation of watching the video as is); pitch is elevation. The cost per 1 image is size² × depth_samples (about 0.3 s for 256² × 64).
>>> rgb = vol_render_transfer(video_spacetime_cube(clip), yaw=40.0, pitch=20.0, static_alpha=0.02)
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_print_layer_inspection — py -3.11 examples/poc_print_layer_inspection.py
• poc_video_cube — py -3.11 examples/poc_video_cube.py
rgb as input)—
render)*Provenance: videocube.py — VIDEOCUBE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.