Source: docs/api.md

API Reference (Generated)

This file is generated by npm run docs:generate from source-of-truth APIs in:

  • src/index.d.ts
  • src/glsl/glsl-functions.js
  • module export files in src/three/*.js, src/gui.js, and src/el.js

Do not edit this file manually.

Surface Summary

  • Constructor options: 24
  • TriodeRenderer members: 18
  • TriodeSynthApi members: 62
  • TriodeSceneApi members: 32
  • Transform chain members: 12
  • Module namespaces: 10
  • GLSL transforms: 69

Constructor Options (new Triode(options))

OptionTypeOptionalNotes
pbunknownyesLegacy integration surface.
widthnumberyesInitial canvas width.
heightnumberyesInitial canvas height.
numSourcesnumberyesNumber of source slots (s0..sN).
numOutputsnumberyesNumber of output slots (o0..oN).
makeGlobalbooleanyesInstalls helpers globally when true; keep false for host-safe embedding.
autoLoopbooleanyesStarts the internal RAF loop automatically.
detectAudiobooleanyesEnables audio analysis helpers.
errorPolicyTriodeRuntimeErrorPolicyyes
argPolicyTriodeArgPolicyyes
arrayHelpersTriodeArrayHelpersModeyes
cssRenderersTriodeCssRenderersModeyes
enableStreamCapturebooleanyesEnables recorder/capture setup.
webgl`1 \2`yesRenderer backend version selection.
canvasHTMLCanvasElementyesUse an existing canvas element instead of auto-creating one.
css2DElementHTMLElementyesOptional mount target for CSS2D renderer.
css3DElementHTMLElementyesOptional mount target for CSS3D renderer.
precision`"lowp" \"mediump" \"highp"`yesShader precision hint.
onErrorTriodeRuntimeErrorHandleryesRuntime error hook for update/afterUpdate/tick contexts.
liveModeTriodeLiveModeyescontinuous keeps runtime state; restart recreates runtime behavior.
clockTriodeClockyes
adaptersPartial<TriodeRuntimeAdapters>yes
legacybooleanyesCompatibility mode restoring older defaults and warning behavior.
extendTransforms`Record<string, unknown> \Array<Record<string, unknown>>`yesRegisters additional transform definitions at startup.

TriodeRenderer Members

  • constructor(options?: TriodeOptions)
  • eval(code: string, options?: TriodeEvalOptions): void - Evaluates livecoding source against the runtime sandbox.
  • getScreenImage(callback: (blob: Blob) => void): void
  • hush(options?: { hooks?: boolean; outputs?: boolean; sources?: boolean }): void
  • resetRuntime(options?: TriodeResetOptions): void - Clears scene and runtime state without destroying the instance.
  • reset(options?: TriodeResetOptions): void
  • freeze(time?: number): void
  • resume(): void
  • step(dtMs?: number): void
  • loadScript(url?: string, once?: boolean): Promise<void>
  • setResolution(width: number, height: number): void - Resizes canvas, outputs, and source buffers.
  • tick(dt: number, uniforms?: unknown): void
  • shadowMap(options?: Record<string, unknown>): void
  • scene(attributes?: TriodeSceneAttributes): TriodeSceneApi
  • stage(config?: TriodeStageConfig): TriodeSceneApi - Creates/reuses scene and applies stage presets.
  • onFrame(callback: (dt: number, time: number) => void): void
  • liveGlobals(enable?: boolean): boolean - Toggles global helper installation at runtime.
  • dispose(): void - Fully disposes the runtime and related resources.

TriodeSynthApi Members

  • time: number
  • bpm: number
  • canvas: HTMLCanvasElement
  • width: number
  • height: number
  • fps?: number
  • stats: TriodeStats
  • speed: number
  • mouse: unknown
  • update: (dt: number) => void
  • onFrame: (callback: (dt: number, time: number) => void) => void - Installs an update callback receiving (dt, time).
  • afterUpdate: (dt: number) => void
  • click: (event: Event) => void
  • mousedown: (event: Event) => void
  • mouseup: (event: Event) => void
  • mousemove: (event: Event) => void
  • keydown: (event: KeyboardEvent) => void
  • keyup: (event: KeyboardEvent) => void
  • onError?: TriodeRuntimeErrorHandler
  • liveMode: TriodeLiveMode
  • legacy: boolean
  • render: (output?: unknown) => void
  • liveGlobals: (enable?: boolean) => boolean - Toggles helper globals in the active runtime.
  • setResolution: (width: number, height: number) => void
  • hush: (options?: { hooks?: boolean; outputs?: boolean; sources?: boolean }) => void - Clears outputs and reset frame hooks to no-op handlers.
  • resetRuntime: (options?: TriodeResetOptions) => void
  • reset: (options?: TriodeResetOptions) => void
  • freeze: (time?: number) => void
  • resume: () => void
  • step: (dtMs?: number) => void
  • tick: (dt: number, uniforms?: unknown) => void
  • shadowMap: (options?: Record<string, unknown>) => void
  • scene: (attributes?: TriodeSceneAttributes) => TriodeSceneApi - Returns a scene handle for manual scene composition.
  • stage: (config?: TriodeStageConfig) => TriodeSceneApi - Convenience scene bootstrap with camera/lights/world/render options.
  • errorPolicy: TriodeRuntimeErrorPolicy
  • argPolicy: TriodeArgPolicy
  • ortho: (eye?: TriodeNumericTuple, target?: TriodeNumericTuple, options?: TriodeCameraOptions) => unknown
  • perspective: (eye?: TriodeNumericTuple, target?: TriodeNumericTuple, options?: TriodeCameraOptions) => unknown
  • screenCoords: (width?: number, height?: number) => unknown
  • normalizedCoords: () => unknown
  • cartesianCoords: (width?: number, height?: number) => unknown
  • setFunction: (definition: TriodeTransformDefinition) => void - Registers a custom transform definition.
  • osc: TriodeTransformFactory
  • noise: TriodeTransformFactory
  • solid: TriodeTransformFactory
  • src: TriodeTransformFactory
  • tx: TriodeTextureApi
  • gm: TriodeGeometryApi
  • mt: TriodeModuleApi
  • cmp: TriodeModuleApi
  • rnd: TriodeModuleApi
  • nse: TriodeModuleApi
  • tex: TriodeTextureApi
  • geom: TriodeGeometryApi
  • mat: TriodeModuleApi
  • compose: TriodeModuleApi
  • random: TriodeModuleApi
  • noiseUtil: TriodeModuleApi
  • gui: TriodeGuiApi
  • arr: TriodeModuleApi
  • el: TriodeModuleApi
  • math: Record<string, (value: number, ...args: number[]) => number>

TriodeSceneApi Members

  • add(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • mesh(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • box(material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • sphere(material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • quad(material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • points(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • lines(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • lineStrip(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • lineLoop(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • linestrip(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi - @deprecated Use lineStrip(...) instead.
  • lineloop(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi - @deprecated Use lineLoop(...) instead.
  • line(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • circle(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • ellipse(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • triangle(geometry?: unknown, material?: unknown, options?: TriodeObjectOptions): TriodeSceneApi
  • lights(options?: Record<string, unknown>): TriodeSceneApi
  • world(options?: Record<string, unknown>): TriodeSceneApi
  • group(attributes?: TriodeSceneAttributes): TriodeSceneApi - Creates or reuses a scene subgroup.
  • layer(id: number, options?: Record<string, unknown>): unknown
  • layerAdd(id: number, options?: Record<string, unknown>): TriodeSceneApi
  • lookAt(target: unknown, options?: Record<string, unknown>): TriodeSceneApi
  • out(output?: unknown | TriodeRenderCallOptions, options?: TriodeTransformRenderOptions): TriodeSceneApi
  • render(output?: unknown | TriodeRenderCallOptions, options?: TriodeTransformRenderOptions): TriodeSceneApi - Compiles the scene into output passes.
  • autoClear(amount?: number, color?: number, options?: Record<string, unknown>): TriodeSceneApi
  • clear(amount?: number, color?: number, options?: Record<string, unknown>): TriodeSceneApi
  • at(index?: number, options?: { touch?: boolean }): unknown
  • obj(index?: number, options?: { touch?: boolean }): unknown
  • texture(output?: unknown | TriodeRenderCallOptions, options?: Record<string, unknown>): unknown - Alias of .tex(...).
  • instanced(geometry: unknown, material: unknown, count: number, options?: TriodeObjectOptions): unknown - Creates an instanced mesh object.
  • instancedAdd(geometry: unknown, material: unknown, count: number, options?: TriodeObjectOptions): TriodeSceneApi
  • find(filter?: Record<string, unknown>, options?: { touch?: boolean }): unknown[] - Returns matching child objects by property filter.
  • empty(): boolean

Transform Chain Members

  • out( output?: unknown | TriodeRenderCallOptions, options?: TriodeTransformRenderOptions, ): TriodeTransformChain
  • render( output?: unknown | TriodeRenderCallOptions, options?: TriodeTransformRenderOptions, ): TriodeTransformChain - Alias of .out(...).
  • autoClear(amount?: number, color?: number, options?: Record<string, unknown>): TriodeTransformChain
  • clear(amount?: number, color?: number, options?: Record<string, unknown>): TriodeTransformChain - Alias of .autoClear(...).
  • basic(options?: Record<string, unknown>): TriodeTransformChain
  • phong(options?: Record<string, unknown>): TriodeTransformChain
  • lambert(options?: Record<string, unknown>): TriodeTransformChain
  • material( typeOrOptions?: "basic" | "lambert" | "phong" | Record<string, unknown>, options?: Record<string, unknown>, ): TriodeTransformChain - Material bridge for basic/lambert/phong/custom options.
  • st(source: TriodeTransformChain): TriodeTransformChain
  • tex(output?: unknown | TriodeRenderCallOptions, options?: Record<string, unknown>): unknown - Renders the current chain to a texture.
  • texture(output?: unknown | TriodeRenderCallOptions, options?: Record<string, unknown>): unknown
  • texMat(output?: unknown, options?: Record<string, unknown>): unknown - Returns a Three material with current chain texture attached.

Module Namespaces

NamespaceExport CountNotes
arr17Typed-array utilities
cmp7Alias: compose
el2DOM element helpers
gm32Alias: geom
gui6GUI helpers
math6Math helper namespace
mt20Alias: mat
nse14Alias: noiseUtil
rnd15Alias: random
tx15Alias: tex

arr

  • create(len, mapfn)
  • uint8(len, mapfn)
  • float32(len, mapfn)
  • noise(width, height = 1, options = {})
  • random(width, height = 1, options = {})
  • mirror(data)
  • mirror1(data)
  • image(url, callback)
  • grid(width, height = 1, options = {})
  • sum(list)
  • mul(list, mul)
  • concat(list1, list2)
  • padTo(arr, len, value = 0)
  • map(arr, from = [0, 0], to = [0, 1])
  • normalize(arr)
  • avg(arr)
  • transpose(arr)

Typed-array utilities

cmp

  • size(object, precise = true)
  • line(object, x = 0, gap = 0)
  • stack(object, y = 0, gap = 0)
  • circle(object, radius = 100)
  • random(object, box)
  • noise(object, box, opts = {})
  • lookAt(scene, object, offset)

Alias: compose

el

  • create(tag, attributes)
  • setAttributes(el, attributes)

DOM element helpers

gm

  • box(width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1)
  • capsule(radius = 1, length = 1, capSegments = 4, radialSegments = 8)
  • circle(extent = 1, segments = 32, thetaStart = 0, thetaLength = Math.PI * 2)
  • cone(radius = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2)
  • cylinder(radiusTop = 1, radiusBottom = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2)
  • dodecahedron(...args)
  • edges(...args)
  • extrude(...args)
  • icosahedron(...args)
  • lathe(...args)
  • octahedron(...args)
  • plane(...args)
  • polyhedron(vertices = [], indices = [], radius = 1, detail = 0)
  • ring(...args)
  • sphere(...args)
  • tetrahedron(...args)
  • torus(...args)
  • torusKnot(...args)
  • tube(path, ...args)
  • wireframe(...args)
  • points(num)
  • shape(shapes, curveSegments = 12)
  • drawShape(points)
  • line(points)
  • rect(...args)
  • ellipse(width = 1, height = 1, curveSegments = 24, thetaStart = 0, thetaEnd = 2 * Math.PI)
  • triangle(...args)
  • grid(...args)
  • text(text, options = {})
  • GridGeometry(...)
  • posFromEleAzi(elevation, azimuth, radius = 1)
  • signedArea(A, B, C)

Alias: geom

gui

  • init()
  • create(name = "triode")
  • addFolder(name, settings, setupFn, gui)
  • lights(scene, camera, defaults = {})
  • world(scene, defaults = {})
  • hideSaveRow(nameOrGui)

GUI helpers

math

  • lerp(a, b, perc)
  • map(n, start1, stop1, start2 = 0, stop2 = 1, withinBounds = false)
  • constrain(n, low = 0, high = 1.0)
  • nextPow2(n)
  • rad(deg)
  • deg(rad)

Math helper namespace

mt

  • basicProps(...)
  • phongProps(...)
  • lambertProps(...)
  • meshBasic(options)
  • meshPhong(options)
  • meshLambert(options)
  • meshStandard(options)
  • lineBasic(options)
  • points(options)
  • worldPosGradientY(options, uniOptions)
  • hydra(source, properties = {})
  • triode(...args)
  • dots(pos, size, color, fade, options = {})
  • squares(pos, size, color, fade, options = {})
  • lines(pos, color, options = {})
  • linestrip(pos, color, options = {})
  • lineloop(pos, color, options = {})
  • text(color, options = {})
  • mesh(color, options = {})
  • getBlend(blendMode)

Alias: mat

nse

  • types(...)
  • options(...)
  • pink(...)
  • brown(...)
  • yellow(...)
  • improved(...)
  • init(opts = {})
  • fbm(noiseFn, H, opts = {})
  • get2(x, y, min = 0, max = 1, scale = 1, type = IMPROVED)
  • get3(x, y, z, min = 0, max = 1, scale = 1, type = IMPROVED)
  • get4(x, y, z, w, min = 0, max = 1, scale = 1, type = IMPROVED)
  • PINK(...)
  • BROWN(...)
  • YELLOW(...)

Alias: noiseUtil

rnd

  • setfn(func)
  • num(a = 0.0, b = 1.0)
  • int(a, b)
  • bool(p = 0.5)
  • choice(list)
  • exp(a, b, n = 2)
  • gauss(mean, sd = 1, y1 = false, prevKey = 'gauss')
  • gaussMinMax(a = 0, b = 1, y1 = false, prevKey = 'gaussMinMax')
  • cache(name, gen)
  • cacheNum(name, a = 0.0, b = 1.0)
  • cacheGauss(name, mean, sd = 1, prevKey = 'cacheGauss')
  • cacheGaussMinMax(name, a = 0, b = 1, prevKey = 'cacheGaussMinMax')
  • cacheBool(name, p = 0.5)
  • arr(len)
  • color()

Alias: random

tx

  • get(id)
  • set(id, tex)
  • data(data_, options_ = {})
  • dataArray(data_, options_ = {})
  • load(url, onLoad, onError)
  • save(tex, options = {})
  • wrap(tex, options = {})
  • repeat(tex, x = 2, y = 2)
  • mirror(tex, x = 2, y = 2, options = {})
  • mirror1(texture, x = 2, y = 2, options = {})
  • pointsym(texture, options = {})
  • atlas(textures, options = {})
  • createSceneTexture(scene, options = {})
  • createQuadScene(material, options = {})
  • fbo(options = {})

Alias: tex

Transform Catalog

color

  • a
  • b
  • brightness
  • color
  • colorama
  • contrast
  • g
  • hue
  • invert
  • luma
  • posterize
  • r
  • saturate
  • shift
  • sum
  • thresh

combine

  • add
  • blend
  • diff
  • layer
  • mask
  • mult
  • sub

combineCoord

  • modulate
  • modulateHue
  • modulateKaleid
  • modulatePixelate
  • modulateRepeat
  • modulateRepeatX
  • modulateRepeatY
  • modulateRotate
  • modulateScale
  • modulateScrollX
  • modulateScrollY

coord

  • kaleid
  • pixelate
  • repeat
  • repeatX
  • repeatY
  • rotate
  • rotateDeg
  • rotateRad
  • scale
  • scroll
  • scrollX
  • scrollY

genType

  • atan
  • cos
  • map
  • pow
  • sin
  • tan

glsl

  • glsl

src

  • cnoise
  • fbm
  • gradient
  • hex
  • noise
  • osc
  • pnoise
  • prev
  • shape
  • snoise
  • solid
  • solid2
  • solid3
  • src
  • voronoi
  • wnoise