@huukhanhnguyen/model / lanes/textures/ops
lanes/textures/ops
normalizeColorStops()
normalizeColorStops(
raw,method?):ColorStop[]
Color-ramp stops — object form only (schema-hygiene §D): [{t:0, color:'#000'}, {t:1, color:'#fff'}]. A positional [[t, color], …] tuple throws — it is not a second spelling, it is an error.
Parameters
raw
unknown
method?
string = "gradientMap"
Returns
opBandpass()
opBandpass(
buffer,low,high):ImageBuffer
Keep only radial frequencies in [low, high] cycles per tile (DC survives when low <= 0). Turns raw noise into brushed metal, ocean chop, moire-free detail bands — spectral shaping without hand-built kernels.
Parameters
buffer
low
number
high
number
Returns
opBlend()
opBlend(
buffer,other,mode,amount,mask?):ImageBuffer
Parameters
buffer
other
mode
string
amount
number
mask?
Returns
opBlur()
opBlur(
buffer,radius):ImageBuffer
Parameters
buffer
radius
number
Returns
opCells()
opCells(
value,options):ImageBuffer
Bond-pattern cell grid: joints at 0, every cell evaluated by the value formula with LOCAL (u, v) and k = the cell's stable id. joint is the full gap thickness in tile units, split half-and-half across neighboring cells so every gap reads the same.
Parameters
value
options
columns
number
height
number
joint
number
offset
number
pattern
string
rows
number
width
number
Returns
opChannels()
opChannels(
base,red,green,blue,alpha):ImageBuffer
Pack up to four greyscale sources into RGBA. Missing channel → 0; missing alpha → 1. Dimensions follow the current stream buffer.
Parameters
base
red
ImageBuffer | undefined
green
ImageBuffer | undefined
blue
ImageBuffer | undefined
alpha
ImageBuffer | undefined
Returns
opDistance()
opDistance(
buffer,threshold,maxDistance):ImageBuffer
Two-pass chamfer distance transform (approximate EDT, O(n)). Source pixels above threshold are sites (distance 0); output is min(dist, maxDistance) / maxDistance in 0..1.
Parameters
buffer
threshold
number
maxDistance
number
Returns
opField()
opField(
value,width,height):ImageBuffer
Parameters
value
width
number
height
number
Returns
opGradientMap()
opGradientMap(
buffer,stopsRaw):ImageBuffer
Multi-stop gradient LUT: scalar -> RGBA. Stops = [{t, color}, ...].
Parameters
buffer
stopsRaw
unknown
Returns
opIsolines()
opIsolines(
buffer,density,blur):ImageBuffer
Contour lines through a scalar field: sin(density * value) draws evenly spaced rings, smoothstep turns the sign crossing into a soft-edged band of width blur instead of a jagged single-pixel line.
Parameters
buffer
density
number
blur
number
Returns
opLevels()
opLevels(
buffer,gamma,multiply,add,invert):ImageBuffer
Parameters
buffer
gamma
number
multiply
number
add
number
invert
number
Returns
opNoise()
opNoise(
type,scale,octaves,seed,width,height):ImageBuffer
Noise as a first-class source — long algorithms live in nodes, not in formula strings. seed shifts the hash lattice so two noise nodes with the same scale never correlate. type "tile" is the seamless torus-embedded fbm (see tfbmCore) — pick it whenever the source must repeat edge-to-edge; the other types ("value"/"fbm"/"cell"/"ridged") are plain planar noise and DO show a seam at the tile boundary.
Parameters
type
string
scale
number
octaves
number
seed
number
width
number
height
number
Returns
opNormalMap()
opNormalMap(
buffer,strength):ImageBuffer
Parameters
buffer
strength
number
Returns
opSplatter()
opSplatter(
stamp,options):ImageBuffer
Grid-with-jitter scatter of a stamp formula (evaluated in instance-local coordinates, u/v in [-0.5, 0.5], k = instance index) — the tile-sampler move that makes manufactured-organic surfaces read as real. Deterministic from seed; stamps wrap toroidally so the tile stays seamless.
Parameters
stamp
options
count
number
height
number
intensityJitter
number
mode
string
rotationJitter
number
seed
number
sizeJitter
number
stampSize
number
width
number
Returns
opStrokes()
opStrokes(
x,y,options):ImageBuffer
Parameters
x
y
options
copies
number
height
number
intensity
number
samples
number
strokeWidth
number
t0
number
t1
number
width
number
Returns
opTint()
opTint(
buffer,low,high):ImageBuffer
Parameters
buffer
low
string
high
string
Returns
opTransform()
opTransform(
buffer,rotate,scale,offset,flipX,flipY):ImageBuffer
Affine transform with optional flip + configurable wrap (Task 2).
Parameters
buffer
rotate
number
scale
number | number[]
offset
number | number[]
flipX
boolean
flipY
boolean
Returns
opWarp()
opWarp(
buffer,displacement,strength):ImageBuffer
Domain warp: displace the stream's lookup along the GRADIENT of another texture's scalar output (SD-style warp).
Parameters
buffer
displacement
strength
number
Returns
scalar()
scalar(
width,height):ImageBuffer
Parameters
width
number
height
number