HDK Utilities Library
Modules

@hiber3d/hdk-utils

Table of contents

Classes

Variables

Functions

Variables

weather

Const weather: Object

Weather presets, useful in combination with EnvironmentOptions.

Type declaration

NameType
bubbles{ emitter: { continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 500; size: [number, number, number] ; spawnRate: number = 500; velocity: [number, number, number] } ; material: { blendMode: "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_bubble_albedo' } ; particle: { billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0.5; lifetime: number = 5; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 0.1; sizeRandom: number = 0.5; sizeStart: number = 0.1 } ; velocityModifier: { forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] } ; wrapBox: { offset: [number, number, number] ; size: [number, number, number] } }
bubbles.emitter{ continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 500; size: [number, number, number] ; spawnRate: number = 500; velocity: [number, number, number] }
bubbles.emitter.continuoustrue
bubbles.emitter.emitterLifeTimenumber
bubbles.emitter.offset[number, number, number]
bubbles.emitter.particleCountMaxnumber
bubbles.emitter.size[number, number, number]
bubbles.emitter.spawnRatenumber
bubbles.emitter.velocity[number, number, number]
bubbles.material{ blendMode: "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_bubble_albedo' }
bubbles.material.blendMode"ALPHA_BLEND"
bubbles.material.colorEnd[number, number, number, number]
bubbles.material.colorStart[number, number, number, number]
bubbles.material.gradientColorRandomnumber
bubbles.material.gradientTexturestring
bubbles.material.particleTexturestring
bubbles.particle{ billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0.5; lifetime: number = 5; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 0.1; sizeRandom: number = 0.5; sizeStart: number = 0.1 }
bubbles.particle.billboardAlign"VIEW"
bubbles.particle.lifeRandomnumber
bubbles.particle.lifetimenumber
bubbles.particle.rotationWobbleAmountnumber
bubbles.particle.rotationWobbleFrequencynumber
bubbles.particle.sizeEndnumber
bubbles.particle.sizeRandomnumber
bubbles.particle.sizeStartnumber
bubbles.velocityModifier{ forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] }
bubbles.velocityModifier.forceGravitynumber
bubbles.velocityModifier.wobbleFrequency[number, number, number]
bubbles.velocityModifier.wobbleVelocity[number, number, number]
bubbles.wrapBox{ offset: [number, number, number] ; size: [number, number, number] }
bubbles.wrapBox.offset[number, number, number]
bubbles.wrapBox.size[number, number, number]
dandelion{ emitter: { continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 500; size: [number, number, number] ; spawnRate: number = 500; velocity: [number, number, number] } ; material: { blendMode: "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_dandelion_seeds_albedo' } ; particle: { billboardAlign: "VIEW_Y_ALIGNED" = 'VIEW_Y_ALIGNED'; lifeRandom: number = 0.5; lifetime: number = 5; rotationWobbleAmount: number = 0.25; rotationWobbleFrequency: number = 5; sizeEnd: number = 0.1; sizeRandom: number = 0.5; sizeStart: number = 0.1 } ; velocityModifier: { forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] } ; wrapBox: { offset: [number, number, number] ; size: [number, number, number] } }
dandelion.emitter{ continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 500; size: [number, number, number] ; spawnRate: number = 500; velocity: [number, number, number] }
dandelion.emitter.continuoustrue
dandelion.emitter.emitterLifeTimenumber
dandelion.emitter.offset[number, number, number]
dandelion.emitter.particleCountMaxnumber
dandelion.emitter.size[number, number, number]
dandelion.emitter.spawnRatenumber
dandelion.emitter.velocity[number, number, number]
dandelion.material{ blendMode: "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_dandelion_seeds_albedo' }
dandelion.material.blendMode"ALPHA_BLEND"
dandelion.material.colorEnd[number, number, number, number]
dandelion.material.colorStart[number, number, number, number]
dandelion.material.gradientColorRandomnumber
dandelion.material.gradientTexturestring
dandelion.material.particleTexturestring
dandelion.particle{ billboardAlign: "VIEW_Y_ALIGNED" = 'VIEW_Y_ALIGNED'; lifeRandom: number = 0.5; lifetime: number = 5; rotationWobbleAmount: number = 0.25; rotationWobbleFrequency: number = 5; sizeEnd: number = 0.1; sizeRandom: number = 0.5; sizeStart: number = 0.1 }
dandelion.particle.billboardAlign"VIEW_Y_ALIGNED"
dandelion.particle.lifeRandomnumber
dandelion.particle.lifetimenumber
dandelion.particle.rotationWobbleAmountnumber
dandelion.particle.rotationWobbleFrequencynumber
dandelion.particle.sizeEndnumber
dandelion.particle.sizeRandomnumber
dandelion.particle.sizeStartnumber
dandelion.velocityModifier{ forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] }
dandelion.velocityModifier.forceGravitynumber
dandelion.velocityModifier.wobbleFrequency[number, number, number]
dandelion.velocityModifier.wobbleVelocity[number, number, number]
dandelion.wrapBox{ offset: [number, number, number] ; size: [number, number, number] }
dandelion.wrapBox.offset[number, number, number]
dandelion.wrapBox.size[number, number, number]
fireflies{ emitter: { continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 1000; randomVelocity: [number, number, number] ; size: [number, number, number] ; spawnRate: number = 500; velocity: [number, number, number] } ; material: { blendMode: "ADDITIVE" = 'ADDITIVE'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_glow_01_albedo' } ; particle: { billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0.5; lifetime: number = 2; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 0.4; sizeRandom: number = 0.5; sizeStart: number = 0.4 } ; velocityModifier: { forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] } ; wrapBox: { offset: [number, number, number] ; size: [number, number, number] } }
fireflies.emitter{ continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 1000; randomVelocity: [number, number, number] ; size: [number, number, number] ; spawnRate: number = 500; velocity: [number, number, number] }
fireflies.emitter.continuoustrue
fireflies.emitter.emitterLifeTimenumber
fireflies.emitter.offset[number, number, number]
fireflies.emitter.particleCountMaxnumber
fireflies.emitter.randomVelocity[number, number, number]
fireflies.emitter.size[number, number, number]
fireflies.emitter.spawnRatenumber
fireflies.emitter.velocity[number, number, number]
fireflies.material{ blendMode: "ADDITIVE" = 'ADDITIVE'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_glow_01_albedo' }
fireflies.material.blendMode"ADDITIVE"
fireflies.material.colorEnd[number, number, number, number]
fireflies.material.colorStart[number, number, number, number]
fireflies.material.gradientColorRandomnumber
fireflies.material.gradientTexturestring
fireflies.material.particleTexturestring
fireflies.particle{ billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0.5; lifetime: number = 2; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 0.4; sizeRandom: number = 0.5; sizeStart: number = 0.4 }
fireflies.particle.billboardAlign"VIEW"
fireflies.particle.lifeRandomnumber
fireflies.particle.lifetimenumber
fireflies.particle.rotationWobbleAmountnumber
fireflies.particle.rotationWobbleFrequencynumber
fireflies.particle.sizeEndnumber
fireflies.particle.sizeRandomnumber
fireflies.particle.sizeStartnumber
fireflies.velocityModifier{ forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] }
fireflies.velocityModifier.forceGravitynumber
fireflies.velocityModifier.wobbleFrequency[number, number, number]
fireflies.velocityModifier.wobbleVelocity[number, number, number]
fireflies.wrapBox{ offset: [number, number, number] ; size: [number, number, number] }
fireflies.wrapBox.offset[number, number, number]
fireflies.wrapBox.size[number, number, number]
mist{ emitter: { continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 100; randomVelocity: [number, number, number] ; size: [number, number, number] ; spawnRate: number = 30; traceGround: true = true; velocity: [number, number, number] } ; material: { blendMode: "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_smoke_01_albedo' } ; particle: { billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0; lifetime: number = 10; randomRotation: number = 0.2; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 7; sizeRandom: number = 1; sizeStart: number = 7 } ; velocityModifier: { forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] } ; wrapBox: { offset: [number, number, number] ; size: [number, number, number] } }
mist.emitter{ continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 100; randomVelocity: [number, number, number] ; size: [number, number, number] ; spawnRate: number = 30; traceGround: true = true; velocity: [number, number, number] }
mist.emitter.continuoustrue
mist.emitter.emitterLifeTimenumber
mist.emitter.offset[number, number, number]
mist.emitter.particleCountMaxnumber
mist.emitter.randomVelocity[number, number, number]
mist.emitter.size[number, number, number]
mist.emitter.spawnRatenumber
mist.emitter.traceGroundtrue
mist.emitter.velocity[number, number, number]
mist.material{ blendMode: "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_smoke_01_albedo' }
mist.material.blendMode"ALPHA_BLEND"
mist.material.colorEnd[number, number, number, number]
mist.material.colorStart[number, number, number, number]
mist.material.gradientColorRandomnumber
mist.material.gradientTexturestring
mist.material.particleTexturestring
mist.particle{ billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0; lifetime: number = 10; randomRotation: number = 0.2; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 7; sizeRandom: number = 1; sizeStart: number = 7 }
mist.particle.billboardAlign"VIEW"
mist.particle.lifeRandomnumber
mist.particle.lifetimenumber
mist.particle.randomRotationnumber
mist.particle.rotationWobbleAmountnumber
mist.particle.rotationWobbleFrequencynumber
mist.particle.sizeEndnumber
mist.particle.sizeRandomnumber
mist.particle.sizeStartnumber
mist.velocityModifier{ forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] }
mist.velocityModifier.forceGravitynumber
mist.velocityModifier.wobbleFrequency[number, number, number]
mist.velocityModifier.wobbleVelocity[number, number, number]
mist.wrapBox{ offset: [number, number, number] ; size: [number, number, number] }
mist.wrapBox.offset[number, number, number]
mist.wrapBox.size[number, number, number]
plankton{ emitter: { continuous: true = true; emitterLifeTime: number = -1.0; emitterMesh: string = ''; inheritVelocity: number = 0.0; offset: [number, number, number] ; particleCountMax: number = 126; randomVelocity: [number, number, number] ; shape: "BOX" = 'BOX'; size: [number, number, number] ; spawnRate: number = 100.0; traceGround: false = false; velocity: [number, number, number] } ; material: { blendMode: "ADDITIVE" = 'ADDITIVE'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; depthSort: false = false; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; linearColorRandom: number = 0.52; particleTexture: string = 'particle_dust_albedo' } ; particle: { billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0.525; lifetime: number = 2.411; randomRotation: number = 0.0; randomRotationSpeed: number = 0.0; rotationSpeed: number = 0.0; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 10.0; sizeEnd: number = 0.055; sizeRandom: number = 0.0; sizeStart: number = 0.054 } ; velocityModifier: { collisionBounceFactor: number = 0.5; collisionMode: "NONE" = 'NONE'; forceAirRes: number = 2.3859999; forceGravity: number = 0.356; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] } ; wrapBox: { offset: [number, number, number] ; size: [number, number, number] } }
plankton.emitter{ continuous: true = true; emitterLifeTime: number = -1.0; emitterMesh: string = ''; inheritVelocity: number = 0.0; offset: [number, number, number] ; particleCountMax: number = 126; randomVelocity: [number, number, number] ; shape: "BOX" = 'BOX'; size: [number, number, number] ; spawnRate: number = 100.0; traceGround: false = false; velocity: [number, number, number] }
plankton.emitter.continuoustrue
plankton.emitter.emitterLifeTimenumber
plankton.emitter.emitterMeshstring
plankton.emitter.inheritVelocitynumber
plankton.emitter.offset[number, number, number]
plankton.emitter.particleCountMaxnumber
plankton.emitter.randomVelocity[number, number, number]
plankton.emitter.shape"BOX"
plankton.emitter.size[number, number, number]
plankton.emitter.spawnRatenumber
plankton.emitter.traceGroundfalse
plankton.emitter.velocity[number, number, number]
plankton.material{ blendMode: "ADDITIVE" = 'ADDITIVE'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; depthSort: false = false; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; linearColorRandom: number = 0.52; particleTexture: string = 'particle_dust_albedo' }
plankton.material.blendMode"ADDITIVE"
plankton.material.colorEnd[number, number, number, number]
plankton.material.colorStart[number, number, number, number]
plankton.material.depthSortfalse
plankton.material.gradientColorRandomnumber
plankton.material.gradientTexturestring
plankton.material.linearColorRandomnumber
plankton.material.particleTexturestring
plankton.particle{ billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0.525; lifetime: number = 2.411; randomRotation: number = 0.0; randomRotationSpeed: number = 0.0; rotationSpeed: number = 0.0; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 10.0; sizeEnd: number = 0.055; sizeRandom: number = 0.0; sizeStart: number = 0.054 }
plankton.particle.billboardAlign"VIEW"
plankton.particle.lifeRandomnumber
plankton.particle.lifetimenumber
plankton.particle.randomRotationnumber
plankton.particle.randomRotationSpeednumber
plankton.particle.rotationSpeednumber
plankton.particle.rotationWobbleAmountnumber
plankton.particle.rotationWobbleFrequencynumber
plankton.particle.sizeEndnumber
plankton.particle.sizeRandomnumber
plankton.particle.sizeStartnumber
plankton.velocityModifier{ collisionBounceFactor: number = 0.5; collisionMode: "NONE" = 'NONE'; forceAirRes: number = 2.3859999; forceGravity: number = 0.356; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] }
plankton.velocityModifier.collisionBounceFactornumber
plankton.velocityModifier.collisionMode"NONE"
plankton.velocityModifier.forceAirResnumber
plankton.velocityModifier.forceGravitynumber
plankton.velocityModifier.wobbleFrequency[number, number, number]
plankton.velocityModifier.wobbleVelocity[number, number, number]
plankton.wrapBox{ offset: [number, number, number] ; size: [number, number, number] }
plankton.wrapBox.offset[number, number, number]
plankton.wrapBox.size[number, number, number]
rain{ emitter: { continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 2000; size: [number, number, number] ; spawnRate: number = 1000; velocity: [number, number, number] } ; material: { colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; particleTexture: string = 'particle_rain_albedo' } ; particle: { billboardAlign: "VIEW_Y_ALIGNED" = 'VIEW_Y_ALIGNED'; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 0.033; sizeStart: number = 0.033 } ; velocityModifier: { forceGravity: number = -10; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] } ; wrapBox: { offset: [number, number, number] ; size: [number, number, number] } }
rain.emitter{ continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 2000; size: [number, number, number] ; spawnRate: number = 1000; velocity: [number, number, number] }
rain.emitter.continuoustrue
rain.emitter.emitterLifeTimenumber
rain.emitter.offset[number, number, number]
rain.emitter.particleCountMaxnumber
rain.emitter.size[number, number, number]
rain.emitter.spawnRatenumber
rain.emitter.velocity[number, number, number]
rain.material{ colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; particleTexture: string = 'particle_rain_albedo' }
rain.material.colorEnd[number, number, number, number]
rain.material.colorStart[number, number, number, number]
rain.material.particleTexturestring
rain.particle{ billboardAlign: "VIEW_Y_ALIGNED" = 'VIEW_Y_ALIGNED'; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 0.033; sizeStart: number = 0.033 }
rain.particle.billboardAlign"VIEW_Y_ALIGNED"
rain.particle.rotationWobbleAmountnumber
rain.particle.rotationWobbleFrequencynumber
rain.particle.sizeEndnumber
rain.particle.sizeStartnumber
rain.velocityModifier{ forceGravity: number = -10; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] }
rain.velocityModifier.forceGravitynumber
rain.velocityModifier.wobbleFrequency[number, number, number]
rain.velocityModifier.wobbleVelocity[number, number, number]
rain.wrapBox{ offset: [number, number, number] ; size: [number, number, number] }
rain.wrapBox.offset[number, number, number]
rain.wrapBox.size[number, number, number]
redFlares{ emitter: { continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 1000; randomVelocity: [number, number, number] ; size: [number, number, number] ; spawnRate: number = 500; velocity: [number, number, number] } ; material: { blendMode: "ADDITIVE" = 'ADDITIVE'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_glow_01_albedo' } ; particle: { billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0.5; lifetime: number = 2; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 1; sizeRandom: number = 0.5; sizeStart: number = 1 } ; velocityModifier: { forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] } ; wrapBox: { offset: [number, number, number] ; size: [number, number, number] } }
redFlares.emitter{ continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 1000; randomVelocity: [number, number, number] ; size: [number, number, number] ; spawnRate: number = 500; velocity: [number, number, number] }
redFlares.emitter.continuoustrue
redFlares.emitter.emitterLifeTimenumber
redFlares.emitter.offset[number, number, number]
redFlares.emitter.particleCountMaxnumber
redFlares.emitter.randomVelocity[number, number, number]
redFlares.emitter.size[number, number, number]
redFlares.emitter.spawnRatenumber
redFlares.emitter.velocity[number, number, number]
redFlares.material{ blendMode: "ADDITIVE" = 'ADDITIVE'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_glow_01_albedo' }
redFlares.material.blendMode"ADDITIVE"
redFlares.material.colorEnd[number, number, number, number]
redFlares.material.colorStart[number, number, number, number]
redFlares.material.gradientColorRandomnumber
redFlares.material.gradientTexturestring
redFlares.material.particleTexturestring
redFlares.particle{ billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0.5; lifetime: number = 2; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 1; sizeRandom: number = 0.5; sizeStart: number = 1 }
redFlares.particle.billboardAlign"VIEW"
redFlares.particle.lifeRandomnumber
redFlares.particle.lifetimenumber
redFlares.particle.rotationWobbleAmountnumber
redFlares.particle.rotationWobbleFrequencynumber
redFlares.particle.sizeEndnumber
redFlares.particle.sizeRandomnumber
redFlares.particle.sizeStartnumber
redFlares.velocityModifier{ forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] }
redFlares.velocityModifier.forceGravitynumber
redFlares.velocityModifier.wobbleFrequency[number, number, number]
redFlares.velocityModifier.wobbleVelocity[number, number, number]
redFlares.wrapBox{ offset: [number, number, number] ; size: [number, number, number] }
redFlares.wrapBox.offset[number, number, number]
redFlares.wrapBox.size[number, number, number]
snow{ emitter: { continuous: true = true; emitterLifeTime: number = -1.0; emitterMesh: string = ''; inheritVelocity: number = 0.0; offset: [number, number, number] ; particleCountMax: number = 2000; randomVelocity: [number, number, number] ; shape: "BOX" = 'BOX'; size: [number, number, number] ; spawnRate: number = 1000.0; traceGround: false = false; velocity: [number, number, number] } ; material: { blendMode: "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; depthSort: false = false; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; linearColorRandom: number = 0.0; particleTexture: string = 'particle_smoke_01_albedo' } ; particle: { billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 1.0; lifetime: number = 4.566; randomRotation: number = 1.0; randomRotationSpeed: number = -0.413; rotationSpeed: number = 11.7770004; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 10.0; sizeEnd: number = 0.015; sizeRandom: number = 0.341; sizeStart: number = 0.015 } ; velocityModifier: { collisionBounceFactor: number = 0.5; collisionMode: "NONE" = 'NONE'; forceAirRes: number = 1.818; forceGravity: number = -0.9; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] } ; wrapBox: { offset: [number, number, number] ; size: [number, number, number] } }
snow.emitter{ continuous: true = true; emitterLifeTime: number = -1.0; emitterMesh: string = ''; inheritVelocity: number = 0.0; offset: [number, number, number] ; particleCountMax: number = 2000; randomVelocity: [number, number, number] ; shape: "BOX" = 'BOX'; size: [number, number, number] ; spawnRate: number = 1000.0; traceGround: false = false; velocity: [number, number, number] }
snow.emitter.continuoustrue
snow.emitter.emitterLifeTimenumber
snow.emitter.emitterMeshstring
snow.emitter.inheritVelocitynumber
snow.emitter.offset[number, number, number]
snow.emitter.particleCountMaxnumber
snow.emitter.randomVelocity[number, number, number]
snow.emitter.shape"BOX"
snow.emitter.size[number, number, number]
snow.emitter.spawnRatenumber
snow.emitter.traceGroundfalse
snow.emitter.velocity[number, number, number]
snow.material{ blendMode: "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; depthSort: false = false; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; linearColorRandom: number = 0.0; particleTexture: string = 'particle_smoke_01_albedo' }
snow.material.blendMode"ALPHA_BLEND"
snow.material.colorEnd[number, number, number, number]
snow.material.colorStart[number, number, number, number]
snow.material.depthSortfalse
snow.material.gradientColorRandomnumber
snow.material.gradientTexturestring
snow.material.linearColorRandomnumber
snow.material.particleTexturestring
snow.particle{ billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 1.0; lifetime: number = 4.566; randomRotation: number = 1.0; randomRotationSpeed: number = -0.413; rotationSpeed: number = 11.7770004; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 10.0; sizeEnd: number = 0.015; sizeRandom: number = 0.341; sizeStart: number = 0.015 }
snow.particle.billboardAlign"VIEW"
snow.particle.lifeRandomnumber
snow.particle.lifetimenumber
snow.particle.randomRotationnumber
snow.particle.randomRotationSpeednumber
snow.particle.rotationSpeednumber
snow.particle.rotationWobbleAmountnumber
snow.particle.rotationWobbleFrequencynumber
snow.particle.sizeEndnumber
snow.particle.sizeRandomnumber
snow.particle.sizeStartnumber
snow.velocityModifier{ collisionBounceFactor: number = 0.5; collisionMode: "NONE" = 'NONE'; forceAirRes: number = 1.818; forceGravity: number = -0.9; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] }
snow.velocityModifier.collisionBounceFactornumber
snow.velocityModifier.collisionMode"NONE"
snow.velocityModifier.forceAirResnumber
snow.velocityModifier.forceGravitynumber
snow.velocityModifier.wobbleFrequency[number, number, number]
snow.velocityModifier.wobbleVelocity[number, number, number]
snow.wrapBox{ offset: [number, number, number] ; size: [number, number, number] }
snow.wrapBox.offset[number, number, number]
snow.wrapBox.size[number, number, number]
toxicGreen{ emitter: { continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 100; randomVelocity: [number, number, number] ; size: [number, number, number] ; spawnRate: number = 30; traceGround: true = true; velocity: [number, number, number] } ; material: { blendMode: "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_smoke_01_albedo' } ; particle: { billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0; lifetime: number = 10; randomRotation: number = 0.2; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 7; sizeRandom: number = 1; sizeStart: number = 7 } ; velocityModifier: { forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] } ; wrapBox: { offset: [number, number, number] ; size: [number, number, number] } }
toxicGreen.emitter{ continuous: true = true; emitterLifeTime: number = -1; offset: [number, number, number] ; particleCountMax: number = 100; randomVelocity: [number, number, number] ; size: [number, number, number] ; spawnRate: number = 30; traceGround: true = true; velocity: [number, number, number] }
toxicGreen.emitter.continuoustrue
toxicGreen.emitter.emitterLifeTimenumber
toxicGreen.emitter.offset[number, number, number]
toxicGreen.emitter.particleCountMaxnumber
toxicGreen.emitter.randomVelocity[number, number, number]
toxicGreen.emitter.size[number, number, number]
toxicGreen.emitter.spawnRatenumber
toxicGreen.emitter.traceGroundtrue
toxicGreen.emitter.velocity[number, number, number]
toxicGreen.material{ blendMode: "ALPHA_BLEND" = 'ALPHA_BLEND'; colorEnd: [number, number, number, number] ; colorStart: [number, number, number, number] ; gradientColorRandom: number = 0.0; gradientTexture: string = 'particle_gradient_in_out_01_albedo'; particleTexture: string = 'particle_smoke_01_albedo' }
toxicGreen.material.blendMode"ALPHA_BLEND"
toxicGreen.material.colorEnd[number, number, number, number]
toxicGreen.material.colorStart[number, number, number, number]
toxicGreen.material.gradientColorRandomnumber
toxicGreen.material.gradientTexturestring
toxicGreen.material.particleTexturestring
toxicGreen.particle{ billboardAlign: "VIEW" = 'VIEW'; lifeRandom: number = 0; lifetime: number = 10; randomRotation: number = 0.2; rotationWobbleAmount: number = 0.0; rotationWobbleFrequency: number = 0.0; sizeEnd: number = 7; sizeRandom: number = 1; sizeStart: number = 7 }
toxicGreen.particle.billboardAlign"VIEW"
toxicGreen.particle.lifeRandomnumber
toxicGreen.particle.lifetimenumber
toxicGreen.particle.randomRotationnumber
toxicGreen.particle.rotationWobbleAmountnumber
toxicGreen.particle.rotationWobbleFrequencynumber
toxicGreen.particle.sizeEndnumber
toxicGreen.particle.sizeRandomnumber
toxicGreen.particle.sizeStartnumber
toxicGreen.velocityModifier{ forceGravity: number = 0; wobbleFrequency: [number, number, number] ; wobbleVelocity: [number, number, number] }
toxicGreen.velocityModifier.forceGravitynumber
toxicGreen.velocityModifier.wobbleFrequency[number, number, number]
toxicGreen.velocityModifier.wobbleVelocity[number, number, number]
toxicGreen.wrapBox{ offset: [number, number, number] ; size: [number, number, number] }
toxicGreen.wrapBox.offset[number, number, number]
toxicGreen.wrapBox.size[number, number, number]

Functions

addVec

addVec(x, y): number[]

Apply addition between arrays or numbers, padding out any reminder in length with the default value 0.

Parameters

NameTypeDescription
xnumber | number[]addend 1
ynumber | number[]addend 2

Returns

number[]

resulting array of summations.

Example

const currentPos = [1, 2, 3];
const nextPos = addVec(currentPos, [-1, 2]); // [0, 4, 3]

divVec

divVec(x, y): number[]

Apply division to arrays or numbers, padding out any reminder in length with the default value 1.

Parameters

NameTypeDescription
xnumber | number[]dividend
ynumber | number[]divisor

Returns

number[]

resulting array of quotients.

Example

const size = [2, 6, 4];
const center = divVec(size, 2); // [1, 3, 2]

getSpotifyEmbedUrl

getSpotifyEmbedUrl(url): string

Return Spotify embed URL.

Parameters

NameTypeDescription
urlstringlink to Spotify track.

Returns

string


getYoutubeEmbedUrl

getYoutubeEmbedUrl(url): string

Return Youtube embed URL.

Parameters

NameTypeDescription
urlstringlink to youtube video.

Returns

string


mulVec

mulVec(x, y): number[]

Apply multiplication to arrays or numbers, padding out any reminder in length with the default value 1.

Parameters

NameTypeDescription
xnumber | number[]multiplicand
ynumber | number[]multiplier

Returns

number[]

resulting array of products.

Example

const currentPos = [0, 10, 0];
const dimensions = [5, 2, 3];
const normal = [1, 0, 0]
const nextPos = addVec(currentPos, mulVec(normal, dimensions)); // [5, 10, 3]

orbitTimeFromWheelRotation

orbitTimeFromWheelRotation(radiusOrbit, wheelRadius, wheelRotationDuration): number

Calculates the duration of a full orbit around a circle, given the radius of the circle, the radius of the wheel, and the duration it takes for the wheel to make a full rotation. Good for cars with spinning wheels orbiting around a circle.

Parameters

NameTypeDescription
radiusOrbitnumberThe radius of the circle
wheelRadiusnumberThe radius of the wheel
wheelRotationDurationnumberThe duration it takes for the wheel to make a full rotation

Returns

number


placeInCircle

placeInCircle<T>(opt): T[]

Distribute objects around a point.

Type parameters

Name
T

Parameters

NameType
optPlaceInCircleOptions<T>

Returns

T[]

Array of returned objects

Example

 root.add(...placeInCircle({
   radius: 4,
   numberOfItems: 10,
   onEach: (data: PlaceInCircleOnEachProps) => {
     return create({transform: data});
   },
 }));

scaleVec3

scaleVec3(vec, scale): Vec3

Convenience function to scale a Vec3 uniformly using vector multiplication

Parameters

NameType
vecVec3
scalenumber

Returns

Vec3


subVec

subVec(x, y): number[]

Apply subtraction to arrays or numbers, padding out any reminder in length with the default value 0.

Parameters

NameTypeDescription
xnumber | number[]minuend
ynumber | number[]subtrahend

Returns

number[]

resulting array of differences.

Example

const currentPos = [1, 2, 3];
const descend = [0, 2, 0]
const nextPos = subVec(currentPos, descend); // [1, 0, 3]

timeline

timeline<Keys>(n, objOrFn): Keys

This lets you create a timeline of values to be used with create().animate()

Type parameters

NameType
Keysextends object

Parameters

NameTypeDescription
nnumbernumber of frames
objOrFnPartial<TimelineFns<Keys>> | TimelineFn<Keys>object of functions which return a value to be animated or a function which returns an object of values to be animated

Returns

Keys


transformPropsToVec3

transformPropsToVec3(props, position, rotation, scale): Object

Convert single transform props to Vec3

Parameters

NameType
propsDeepPartial<VectorProperties & RotationProperties & ScaleProperties>
positionundefined | Vec3
rotationundefined | Vec3
scaleundefined | number | Vec3

Returns

Object

NameType
positionundefined | Vec3
rotationundefined | Vec3
scaleundefined | number | Vec3